/* Constructora Araque · v1.0
   No frameworks, remote fonts or external dependencies. */
:root {
  --navy: #092b4b; --ink: #102a40; --night: #081c2e;
  --slate: #536e84; --blue: #7daace; --ice: #c4dced;
  --paper: #ffffff; --cloud: #f2f5f7; --line: #d6dfe6;
  --muted: #516474; --max: 1280px; --header: 91px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--header) + 22px); }
body { margin: 0; font-family: Inter, Aptos, 'Segoe UI', Arial, sans-serif; color: var(--ink); background: var(--paper); -webkit-font-smoothing: antialiased; }
body.modal-open { overflow: hidden; }
button, input, textarea, select { font: inherit; }
button, a, input, textarea, select, summary { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; height: auto; }
button { color: inherit; }
button, input, textarea, select { border-radius: 0; }
button:disabled { cursor: default; }
button, a, summary { touch-action: manipulation; }
[hidden] { display: none !important; }
h1, h2, h3, p { margin: 0; }
:focus-visible { outline: 3px solid #357fac; outline-offset: 5px; }
::selection { background: #bfd8ea; color: #08263f; }
.container { max-width: var(--max); width: calc(100% - 112px); margin-inline: auto; }
.icon { flex-shrink: 0; vertical-align: middle; }
.rotate-180 { transform: rotate(180deg); }
.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: 20px; top: -90px; padding: 14px 20px; background: white; color: var(--navy); z-index: 200; border: 2px solid var(--navy); }
.skip-link:focus { top: 16px; }
.button { min-height: 54px; display: inline-flex; gap: 28px; align-items: center; justify-content: space-between; padding: 16px 23px; font-size: 13px; font-weight: 600; border: 1px solid transparent; transition: background .2s, color .2s, transform .2s, border-color .2s; letter-spacing: .005em; line-height: 1.4; }
.button .icon { transition: transform .2s; }
.button:hover .icon { transform: translate(2px,-2px); }
.button-navy { background: var(--navy); color: #fff; }
.button-navy:hover { background: #174b73; }
.button-white { background: #fff; color: var(--navy); }
.button-white:hover { background: #d7e8f3; }
.button-outline { border-color: #9db0c0; background: transparent; color: var(--navy); }
.button-outline:hover { background: var(--navy); color: #fff; border-color: var(--navy); }
.eyebrow { display: flex; gap: 13px; align-items: center; font-size: 10px; line-height: 1.7; letter-spacing: .18em; font-weight: 650; color: var(--slate); }
.eyebrow > span { display: inline-block; width: 27px; height: 1px; background: currentColor; }
.eyebrow.light { color: #b2cddd; }
.section { padding: 112px 0; }
.section-compact { padding: 72px 0; }
h2 { font-size: clamp(34px, 3.55vw, 51px); font-weight: 450; line-height: 1.13; letter-spacing: -.045em; }
h2 em { color: var(--slate); font-style: normal; }
.section-heading { display: flex; align-items: flex-end; gap: 72px; justify-content: space-between; margin-bottom: 52px; }
.section-heading .eyebrow { margin-bottom: 23px; }
.section-intro { max-width: 355px; color: var(--muted); font-size: 15px; line-height: 1.85; padding-bottom: 3px; }
.section-footnote { color: var(--muted); font-size: 12px; line-height: 1.7; margin-top: 25px; }
/* Header */
.site-header { position: sticky; top: 0; height: var(--header); background: #fff; z-index: 40; border-bottom: 1px solid rgba(9,43,75,.08); transition: box-shadow .25s; }
.site-header.scrolled { box-shadow: 0 4px 20px rgba(0,18,36,.06); }
.header-inner { display: flex; align-items: center; height: 100%; gap: 45px; }
.brand { display: block; width: 239px; flex-shrink: 0; }
.brand img { width: 100%; }
.desktop-nav { display: flex; align-items: center; gap: 33px; margin-left: auto; }
.desktop-nav a { font-size: 12px; font-weight: 550; position: relative; padding: 15px 0; }
.desktop-nav a::after { content: ''; position: absolute; height: 1px; background: var(--navy); left: 0; right: 0; bottom: 7px; transform: scaleX(0); transform-origin: left; transition: transform .2s; }
.desktop-nav a:hover::after, .desktop-nav a.active::after { transform: scaleX(1); }
.header-cta { min-height: 45px; padding: 12px 20px; font-size: 12px; gap: 25px; }
.menu-toggle { display: none; border: 1px solid var(--line); background: transparent; width: 44px; height: 44px; align-items: center; justify-content: center; }
.mobile-nav { position: absolute; top: var(--header); width: 100%; background: white; padding: 10px 28px 24px; border-bottom: 1px solid var(--line); box-shadow: 0 16px 25px rgba(3,25,45,.12); }
.mobile-nav a { display: flex; padding: 20px 0; border-bottom: 1px solid var(--line); justify-content: space-between; font-size: 17px; }
/* Cinematic opening */
.hero { position: relative; overflow: hidden; isolation: isolate; color: #fff; min-height: 717px; background: #0a2339; }
.hero-visual, .hero-shade { position: absolute; inset: 0; z-index: -2; }
.hero-art { height: 100%; width: 100%; object-fit: cover; object-position: center; animation: architecture-drift 24s ease-in-out infinite alternate; }
#hero-video { height: 100%; width: 100%; object-fit: cover; position: absolute; inset: 0; filter: blur(.75px); }
.hero-shade { z-index: -1; background:var(--hero-overlay); }
.hero-layout { min-height: 717px; position: relative; display: flex; flex-direction: column; }
.hero-content { padding: 83px 0 65px; max-width: 755px; }
.hero .eyebrow { margin-bottom: 29px; }
.hero h1 { font-weight: 430; font-size: clamp(61px, 6.65vw, 95px); line-height: 1.02; letter-spacing: -.065em; }
.hero h1 em { font-style: normal; font-weight: 430; color: #b5d1e5; }
.hero-subline { margin: 20px 0 22px; font-size: 25px; letter-spacing: -.025em; color: #ecf4f8; font-weight: 350; }
.hero-description { font-size: 15px; line-height: 1.9; color: #c2cfda; font-weight: 400; }
.hero-actions { margin-top: 32px; display: flex; align-items: center; gap: 27px; }
.hero-actions .button { min-height: 56px; gap: 22px; }
.hero-secondary { display: inline-flex; align-items: center; gap: 13px; color: #dbe8f1; font-size: 12px; padding: 15px 0; border-bottom: 1px solid rgba(202,224,239,.4); transition: color .2s; }
.hero-secondary:hover { color: #fff; }
.hero-side { position: absolute; right: -8px; top: 118px; display: flex; align-items: center; flex-direction: column; gap: 30px; }
.hero-side span { writing-mode: vertical-rl; font-size: 8px; letter-spacing: .28em; color: #c4dce9; }
.hero-side i { width: 1px; height: 70px; background: rgba(198,225,240,.4); }
.hero-bottom { display: flex; justify-content: space-between; align-items: center; margin-top: auto; padding: 19px 0 24px; border-top: 1px solid rgba(162,193,216,.25); gap: 20px; }
.scroll-cue { display: flex; align-items: center; gap: 28px; color: #b6d0e0; font-size: 8px; letter-spacing: .2em; font-weight: 500; min-height: 40px; }
.scroll-cue:hover { color: #fff; }
.motion-panel { display: flex; align-items: center; gap: 18px; }
.motion-panel > span { font-size: 10px; color: #aac2d1; }
.motion-toggle { min-height: 40px; display: flex; gap: 9px; align-items: center; border: 1px solid rgba(184,211,230,.35); color: #d9e9f3; padding: 10px 14px; background: rgba(14,43,64,.25); font-size: 10px; }
.motion-toggle:hover { background: rgba(255,255,255,.12); }
.scan-line { position: absolute; top: 0; bottom: 0; left: 49%; right: 0; opacity: .13; background: linear-gradient(transparent 46%,#b3daf0 49.9%,transparent 50.1%); animation: scan 12s ease-in-out infinite; pointer-events: none; }
.motion-paused .hero-art, .motion-paused .scan-line { animation-play-state: paused; }
@keyframes architecture-drift { from { transform: scale(1.015) translate(0,0); } to { transform: scale(1.065) translate(-8px,3px); } }
@keyframes scan { 0%,100% { transform: translateY(-40%); opacity: 0; } 15%,70% { opacity: .11; } 90% { transform: translateY(50%); opacity: 0; } }
/* Trust line */
.trust-strip { background: #edf2f6; border-bottom: 1px solid #dce5ec; }
.trust-grid { display: grid; grid-template-columns: 1fr 1fr 1.28fr; padding-top: 29px; padding-bottom: 29px; }
.trust-grid > div { display: flex; align-items: flex-start; gap: 20px; padding: 3px 24px 3px 32px; border-left: 1px solid #cbd7e0; }
.trust-grid > div:first-child { padding-left: 0; border: 0; }
.trust-grid > div:last-child { padding-right: 0; }
.trust-number { font-size: 10px; color: #6e8ca2; padding-top: 4px; }
.trust-grid p { font-size: 12px; line-height: 1.9; color: #4d6578; }
.trust-grid strong { font-weight: 550; color: #18394f; }
/* Service architecture */
.services-grid { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 18px; }
.service-card { background: #f4f6f8; padding: 27px 28px 19px; grid-column: span 2; border: 1px solid #e5eaf0; display: flex; flex-direction: column; position: relative; transition: border-color .25s, box-shadow .25s; }
.service-card:hover { border-color: #89a9c0; box-shadow: 0 12px 30px rgba(7,38,65,.04); }
.service-primary { grid-column: span 3; background: #edf3f7; padding: 30px 34px 21px; }
.service-card:nth-child(2) { background: #f1f5f7; }
.service-top { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: 21px; }
.service-index { font-size: 10px; color: #637f94; letter-spacing: .08em; }
.service-icon { width: 43px; height: 43px; color: #486e8e; stroke-width: .85; }
.service-primary .service-icon { height: 62px; width: 62px; }
.service-kicker { font-size: 10px !important; letter-spacing: .01em; color: #59778e !important; margin-bottom: 11px; }
.service-copy h3 { font-size: 25px; font-weight: 450; letter-spacing: -.035em; line-height: 1.15; margin-bottom: 14px; max-width: 260px; }
.service-primary .service-copy h3 { font-size: 35px; }
.service-copy > p:not(.service-kicker) { font-size: 13px; line-height: 1.8; color: #50687b; max-width: 400px; }
.service-bottom { display: flex; align-items: flex-start; justify-content: space-between; border-top: 1px solid #cedce7; margin-top: 24px; padding-top: 9px; gap: 10px; }
.service-copy { flex: 1; }
.text-button { display: flex; align-items: center; gap: 18px; border: 0; background: none; font-size: 11px; font-weight: 600; padding: 12px 0; min-height: 44px; text-align: left; }
.text-button:hover { color: #376f99; }
.service-bottom details { flex: 0 0 38px; }
.service-bottom details[open] { position: static; }
.service-bottom summary { list-style: none; width: 38px; height: 44px; display: grid; place-items: center; cursor: pointer; }
.service-bottom summary::-webkit-details-marker { display: none; }
.service-bottom details[open] summary .icon { transform: rotate(45deg); }
.service-bottom details p { position: absolute; top: calc(100% - 8px); left: -1px; right: -1px; z-index: 5; padding: 24px 27px; background: #fff; border: 1px solid #b0c4d4; box-shadow: 0 10px 25px rgba(7,38,65,.12); font-size: 12px; line-height: 1.8; color: var(--muted); }
/* Portfolio */
.portfolio { background: #eef2f5; }
.portfolio-tools { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 30px; }
.filters { display: flex; gap: 7px; flex-wrap: wrap; }
.filter { border: 1px solid #c8d4de; background: transparent; min-height: 43px; padding: 11px 15px; color: #526b80; font-size: 10px; transition: background .2s,color .2s; }
.filter:hover { background: #dce6ee; }
.filter.active { color: #fff; background: var(--navy); border-color: var(--navy); }
.projects-count { flex-shrink: 0; font-size: 10px; color: var(--muted); }
.projects-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 38px 24px; }
.project-card { min-width: 0; }
.project-open { padding: 0; background: transparent; border: 0; text-align: left; width: 100%; }
.project-visual { position: relative; aspect-ratio: 1.42; overflow: hidden; background: #bacbd6; }
.project-visual::after { content: ''; position: absolute; inset: 55% 0 0; background: linear-gradient(transparent,rgba(15,38,59,.65)); pointer-events: none; }
.project-visual > img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s cubic-bezier(.2,.65,.2,1); }
.project-open:hover .project-visual > img { transform: scale(1.045); }
.project-num { position: absolute; left: 17px; top: 17px; font-size: 8px; letter-spacing: .14em; color: #183b54; }
.project-visual-note { position: absolute; bottom: 17px; left: 17px; font-size: 9px; color: #fff; z-index: 1; max-width: calc(100% - 68px); line-height: 1.5; }
.project-arrow { position: absolute; right: 15px; bottom: 13px; width: 35px; height: 35px; display: grid; place-items: center; color: #fff; border: 1px solid rgba(232,242,249,.45); z-index: 1; transition: color .2s,background .2s; }
.project-open:hover .project-arrow { color: var(--navy); background: white; }
.project-meta { display: flex; align-items: center; justify-content: space-between; gap: 12px; color: #537189; font-size: 9px; letter-spacing: .05em; margin: 20px 0 11px; }
.project-open h3 { font-size: 23px; font-weight: 500; letter-spacing: -.035em; line-height: 1.22; max-width: 95%; }
.project-description { color: #536d81; font-size: 11px; line-height: 1.7; margin-top: 9px; }
.portfolio-bottom { display: flex; align-items: center; justify-content: space-between; gap: 32px; margin-top: 44px; padding-top: 28px; border-top: 1px solid #cedae3; }
.portfolio-bottom > p { font-size: 11px; color: #5b7285; line-height: 1.8; }
.portfolio-bottom .button { font-size: 12px; min-width: 211px; }
/* Simple customer journey */
.working-layout { display: grid; grid-template-columns: .88fr 1.4fr; gap: 50px; align-items: start; }
.working .eyebrow { margin-bottom: 18px; }
.working h2 { font-size: 31px; line-height: 1.2; }
.working-steps { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; padding-top: 10px; }
.working-steps article { padding-top: 16px; border-top: 1px solid #c7d5df; }
.working-steps span { font-size: 9px; color: #67899f; }
.working-steps h3 { font-size: 15px; line-height: 1.3; letter-spacing: -.02em; font-weight: 550; margin: 19px 0 10px; }
.working-steps p { color: var(--muted); font-size: 11px; line-height: 1.85; }
/* Story */
.history { background: var(--night); color: white; position: relative; overflow: hidden; }
.history-grid-bg { position: absolute; inset: 0; background-image: linear-gradient(rgba(119,159,188,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(119,159,188,.05) 1px,transparent 1px); background-size: 90px 90px; mask-image: linear-gradient(90deg,#000,transparent 85%); }
.history-layout { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 130px; }
.history-main .eyebrow { margin-bottom: 28px; }
.history h2 { font-size: clamp(39px,3.55vw,51px); font-weight: 400; }
.history h2 em { color: #90b4ce; }
.history-main > p:not(.eyebrow) { margin-top: 27px; font-size: 13px; line-height: 1.85; color: #a9becf; max-width: 370px; }
.year-art { font-size: 123px; line-height: 1; letter-spacing: -.085em; font-weight: 400; color: transparent; -webkit-text-stroke: 1px #46667f; margin-top: 35px; }
.year-art span { display: block; font-size: 8px; letter-spacing: .2em; -webkit-text-stroke: 0; color: #a8bfce; margin-top: 13px; padding-left: 8px; }
.timeline { padding-top: 22px; }
.timeline article { position: relative; padding: 0 0 39px 37px; border-left: 1px solid #3c566c; }
.timeline article:last-child { padding-bottom: 0; border-left-color: transparent; }
.timeline-dot { position: absolute; top: 2px; left: -5px; width: 9px; height: 9px; border: 1px solid #7398b4; border-radius: 50%; background: var(--night); }
.timeline-label { color: #8cabbe; font-size: 8px; letter-spacing: .2em; margin-bottom: 16px; }
.timeline h3 { font-size: 24px; font-weight: 450; letter-spacing: -.03em; line-height: 1.2; margin-bottom: 14px; }
.timeline article > p:last-child { color: #a9becf; font-size: 13px; line-height: 1.85; max-width: 350px; }
.timeline-featured .timeline-dot { background: #9fc2dc; box-shadow: 0 0 0 6px rgba(116,164,194,.08); }
.timeline-featured h3 { color: #c2dded; }
.timeline-featured { padding-bottom: 39px; }
/* Conversion */
.contact-layout { display: grid; grid-template-columns: 1fr 1.05fr; gap: 105px; align-items: start; }
.contact-intro .eyebrow { margin-bottom: 27px; }
.contact-intro h2 { font-size: clamp(35px,3.45vw,50px); }
.contact-intro > p:not(.eyebrow) { font-size: 14px; line-height: 1.9; color: var(--muted); margin-top: 24px; }
.contact-note { display: flex; gap: 20px; border-top: 1px solid #c9d8e2; margin-top: 40px; padding-top: 25px; max-width: 380px; }
.small-cross { font-size: 33px; line-height: 1.1; font-weight: 200; color: #678aa4; }
.contact-note p { font-size: 11px; line-height: 1.8; color: #5c7384; }
.contact-direct { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 25px; }
.contact-direct a { border: 1px solid #c9d8e2; font-size: 12px; padding: 11px 16px; display: inline-flex; gap: 15px; align-items: center; }
.contact-form { background: #f1f5f7; border: 1px solid #e1e8ee; padding: 33px; }
.form-heading { display: flex; justify-content: space-between; gap: 14px; align-items: center; margin-bottom: 30px; }
.form-heading h3 { font-size: 20px; font-weight: 500; letter-spacing: -.035em; }
.form-tag { font-size: 7px; font-weight: 600; color: #53748d; border: 1px solid #b6cbd9; padding: 5px 6px; letter-spacing: .08em; flex-shrink: 0; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 21px 17px; }
.field { min-width: 0; }
.field-full { grid-column: 1 / -1; }
.field label { display: block; font-size: 10px; font-weight: 600; color: #3c5970; margin-bottom: 9px; line-height: 1.6; }
.field label span { color: #527791; }
.field label .optional { font-size: 9px; font-weight: 400; color: #657b8c; }
.field input, .field textarea, .field select { width: 100%; background: #fff; border: 1px solid #c9d8e3; font-size: 11px; color: #173e5b; line-height: 1.5; padding: 13px 12px; min-height: 44px; }
.field select { padding-right: 20px; }
.field textarea { resize: vertical; min-height: 122px; }
.field input::placeholder, .field textarea::placeholder { color: #768b9c; opacity: 1; }
.field input:focus, .field select:focus, .field textarea:focus { border-color: #4a7ca0; }
.form-submit { margin-top: 21px; width: 100%; }
.form-notice { margin-top: 13px; color: #5c7387; font-size: 9px; line-height: 1.7; }
.form-error { color: #8d3443; font-size: 11px; line-height: 1.6; margin-top: 10px; }
.form-error:empty { display: none; }
/* Footer */
.site-footer { padding: 50px 0 24px; background: #09263f; color: #c6d8e4; }
.footer-top { display: flex; align-items: center; justify-content: space-between; gap: 30px; padding-bottom: 35px; }
.footer-brand { background: #fff; padding: 12px 15px; width: 236px; }
.footer-brand img { width: 100%; }
.footer-top > p { font-size: 22px; font-weight: 350; line-height: 1.3; letter-spacing: -.025em; margin-left: auto; margin-right: 50px; }
.footer-top > p > span { color: #87a8bf; }
.back-top { width: 45px; height: 45px; display: grid; place-items: center; border: 1px solid #4b6c86; }
.back-top:hover { background: #143c59; }
.footer-bottom { border-top: 1px solid #355169; padding-top: 22px; display: flex; justify-content: space-between; align-items: center; gap: 20px; font-size: 9px; line-height: 1.6; color: #adc4d5; }
.footer-link { border: 0; background: none; padding: 11px 0; font-size: 9px; color: #adc4d5; min-height: 38px; text-decoration: underline; text-underline-offset: 4px; }
.preview-badge { position: fixed; bottom: 16px; left: 17px; z-index: 35; border: 1px solid #c5d5e0; border-radius: 24px; background: rgba(255,255,255,.96); color: #304e65; padding: 10px 13px; display: flex; align-items: center; gap: 8px; font-size: 9px; box-shadow: 0 3px 12px rgba(6,26,44,.08); min-height: 38px; }
.preview-badge > span { width: 5px; height: 5px; background: #6e9fbc; border-radius: 50%; }
/* Native, keyboard-accessible dialogs */
.modal { border: 1px solid #d3e0e9; padding: 0; width: min(740px,calc(100% - 36px)); max-height: calc(100dvh - 48px); background: #fff; color: var(--ink); box-shadow: 0 30px 100px rgba(0,12,26,.35); }
.modal::backdrop { background: rgba(3,19,34,.8); backdrop-filter: blur(4px); }
.modal-close { position: absolute; z-index: 2; right: 14px; top: 14px; background: white; border: 1px solid #afc4d5; width: 42px; height: 42px; display: grid; place-items: center; }
.modal-close:hover { background: #e7eff5; }
.modal-body { padding: 40px; }
.modal-body .eyebrow { margin-bottom: 19px; }
.modal-body h2 { font-size: 37px; margin-bottom: 18px; line-height: 1.12; padding-right: 10px; }
.modal-body > p { color: #546e83; font-size: 13px; line-height: 1.85; margin-bottom: 18px; }
.modal-body > h3 { margin: 25px 0 10px; font-size: 17px; font-weight: 550; }
.project-dialog-art { position: relative; height: 275px; overflow: hidden; background: #bacbd6; }
.project-dialog-art img { width: 100%; height: 100%; object-fit: cover; }
.project-dialog-art > span { position: absolute; bottom: 15px; left: 20px; background: #153e5d; color: #fff; padding: 7px 10px; font-size: 9px; }
.modal-body .project-role { font-size: 10px; text-transform: uppercase; letter-spacing: .05em; font-weight: 600; margin-bottom: 9px; padding-top: 20px; border-top: 1px solid #c7d8e5; color: #326486; }
.modal-body .modal-footnote { font-size: 10px; line-height: 1.8; padding: 15px 17px; background: #f0f5f8; color: #586f81; }
.modal-body .modal-project-subtitle { font-size: 12px; color: #57758a; }
.inquiry-dialog, .text-modal { max-width: 650px; }
.inquiry-dialog .modal-body, .text-modal .modal-body { padding-top: 59px; }
.inquiry-dialog textarea { width: 100%; padding: 18px; font-size: 12px; line-height: 1.8; border: 1px solid #c0d0dd; background: #f5f8fa; color: #294a64; resize: vertical; margin: 3px 0 20px; }
.inquiry-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 10px; }
.copy-status { min-height: 18px; margin: 14px 0 0 !important; font-size: 11px !important; }
.noscript-note { padding: 20px; background: #e8f1f7; color: var(--navy); font-size: 14px; line-height: 1.8; }
/* Responsive layouts */
@media (min-width: 1600px) { .hero { min-height: 770px; } .hero-layout { min-height: 770px; } .hero-content { padding-top: 104px; } }
@media (max-width: 1160px) {
 .container { width: calc(100% - 72px); }
 .header-inner { gap: 28px; } .brand { width: 215px; } .desktop-nav { gap: 23px; }
 .hero-content { max-width: 650px; } .hero h1 { font-size: 80px; }
 .hero-actions { gap: 19px; } .hero-actions .button { padding: 16px 19px; font-size: 12px; }
 .section { padding: 90px 0; }
 .section-heading { gap: 50px; } .section-intro { max-width: 315px; }
 .service-card { padding: 24px 23px 16px; } .service-primary { padding: 26px 28px 19px; }
 .service-copy h3 { font-size: 23px; } .service-primary .service-copy h3 { font-size: 32px; }
 .history-layout { gap: 75px; } .contact-layout { gap: 60px; } .contact-form { padding: 27px; }
 .contact-intro h2 { font-size: 40px; } .form-heading { flex-wrap: wrap; gap: 10px; }
 .working-layout { gap: 40px; grid-template-columns: .9fr 1.4fr; } .working-steps { gap: 17px; }
 .trust-grid > div { padding-left: 22px; gap: 15px; } .trust-grid p { font-size: 10px; }
 .filters { gap: 6px; } .filter { padding: 10px 11px; font-size: 9px; }
}
@media (max-width: 900px) {
 :root { --header: 80px; }
 .desktop-nav { display: none; } .header-cta { margin-left: auto; } .menu-toggle { display: flex; }
 .brand { width: 222px; } .header-inner { gap: 20px; }
 .hero, .hero-layout { min-height: 720px; }
 .hero-content { padding-top: 80px; } .hero h1 { font-size: 77px; }
 .hero-art { width: 140%; max-width: none; transform-origin: 80% center; margin-left: -30%; object-position: right; }
 .hero-shade { background:var(--hero-overlay); }
 .hero-side { display: none; }
 .trust-grid { gap: 0; } .trust-grid > div { padding-inline: 15px; gap: 10px; } .trust-grid > div:last-child { padding-right: 0; } .trust-number { display: none; }
 .section-heading { gap: 33px; } h2 { font-size: 38px; } .section-intro { max-width: 270px; font-size: 13px; }
 .services-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
 .service-card { grid-column: span 1; } .service-card:last-child { grid-column: span 2; }
 .service-card:last-child .service-copy h3 { max-width: none; } .service-card:last-child .service-copy > p { max-width: 580px; }
 .service-primary .service-copy h3 { font-size: 30px; }
 .portfolio-tools { display: block; } .projects-count { margin-top: 15px; }
 .projects-grid { gap: 28px 17px; } .project-open h3 { font-size: 19px; } .project-visual { aspect-ratio: 1.15; }
 .project-visual-note { font-size: 8px; left: 11px; bottom: 12px; }
 .project-num { left: 11px; font-size: 7px; }
 .working-layout { grid-template-columns: 1fr; gap: 25px; }
 .working-steps { gap: 25px; } .working h2 br { display: none; }
 .history-layout { gap: 50px; } .history h2 { font-size: 39px; } .timeline h3 { font-size: 21px; } .timeline article { padding-left: 26px; }
 .contact-layout { grid-template-columns: 1fr; gap: 43px; }
 .contact-intro h2 { font-size: 46px; } .contact-intro h2 br:nth-child(2) { display: none; }
 .contact-note { margin-top: 25px; } .contact-form { padding: 32px; } .form-heading { flex-wrap: nowrap; }
 .footer-bottom > span { display: none; }
 .field label { font-size: 11px; } .field input, .field select, .field textarea { font-size: 13px; }
}
@media (max-width: 640px) {
 :root { --header: 75px; }
 .container { width: calc(100% - 44px); }
 .section { padding: 67px 0; } .section-compact { padding: 50px 0; }
 .brand { width: 185px; } .header-inner { gap: 12px; } .header-cta { display: none; } .menu-toggle { margin-left: auto; }
 .button { min-height: 54px; padding: 15px 19px; font-size: 12px; }
 .eyebrow { font-size: 8px; letter-spacing: .15em; gap: 10px; }
 .eyebrow > span { width: 20px; }
 .hero, .hero-layout { min-height: 710px; }
 .hero-content { padding: 58px 0 27px; max-width: 100%; }
 .hero h1 { font-size: clamp(49px,11.55vw,69px); letter-spacing: -.064em; }
 .hero .eyebrow { margin-bottom: 25px; }
 .hero-subline { font-size: 23px; margin: 18px 0 22px; }
 .hero-description { font-size: 14px; line-height: 1.9; }
 .hero-art { width: 220%; margin-left: -99%; opacity: .76; }
 .hero-shade { background:var(--hero-overlay); }
 .hero-actions { margin-top: 27px; align-items: flex-start; flex-direction: column; gap: 5px; }
 .hero-actions .button { gap: 35px; }
 .hero-secondary { font-size: 11px; padding: 15px 0 12px; }
 .hero-bottom { padding: 16px 0 20px; align-items: center; gap: 12px; }
 .scroll-cue { font-size: 7px; gap: 12px; letter-spacing: .12em; }
 .motion-panel { gap: 8px; align-items: flex-end; }
 .motion-panel > span { display: none; } .motion-toggle { min-height: 38px; padding: 8px 10px; font-size: 9px; }
 .trust-grid { grid-template-columns: 1fr; padding-top: 15px; padding-bottom: 15px; }
 .trust-grid > div { border: none; padding: 11px 0; gap: 15px; align-items: flex-start; }
 .trust-grid > div + div { border-top: 1px solid #d3dfe7; }
 .trust-number { display: block; font-size: 9px; padding-top: 2px; }
 .trust-grid p { font-size: 11px; line-height: 1.8; }
 .trust-grid br { display: none; } .trust-grid strong { display: inline; margin-left: 3px; }
 .section-heading { display: block; margin-bottom: 32px; }
 .section-heading .eyebrow { margin-bottom: 21px; }
 h2 { font-size: 35px; line-height: 1.16; }
 .section-intro { margin-top: 22px; max-width: 100%; font-size: 13px; line-height: 1.85; }
 .services-grid { grid-template-columns: 1fr; gap: 14px; }
 .service-card, .service-card:last-child { grid-column: span 1; padding: 25px 26px 16px; }
 .service-top { margin-bottom: 14px; }
 .service-primary .service-icon { width: 56px; height: 56px; }
 .service-copy h3 { max-width: none; font-size: 27px; }
 .service-primary .service-copy h3 { font-size: 33px; }
 .service-copy > p:not(.service-kicker) { font-size: 13px; }
 .service-bottom { margin-top: 22px; } .service-kicker { margin-bottom: 10px; }
 .section-footnote { font-size: 10px; margin-top: 19px; }
 .filters { display: flex; flex-wrap: wrap; gap: 7px; }
 .filter { font-size: 9px; padding: 10px 12px; min-height: 43px; }
 .portfolio-tools { margin-bottom: 23px; }
 .projects-grid { grid-template-columns: 1fr; gap: 33px; }
 .project-visual { aspect-ratio: 1.45; }
 .project-open h3 { font-size: 25px; max-width: 100%; }
 .project-meta { margin-top: 17px; font-size: 9px; }
 .project-description { font-size: 12px; }
 .project-num { left: 17px; font-size: 8px; }
 .project-visual-note { left: 17px; bottom: 16px; font-size: 9px; }
 .portfolio-bottom { margin-top: 32px; padding-top: 25px; flex-direction: column-reverse; align-items: stretch; gap: 22px; }
 .portfolio-bottom p { font-size: 10px; }
 .working h2 { font-size: 29px; }
 .working-steps { grid-template-columns: 1fr; gap: 22px; }
 .working-steps article { position: relative; padding: 17px 0 0 35px; }
 .working-steps span { position: absolute; top: 20px; left: 0; }
 .working-steps h3 { margin-top: 0; font-size: 17px; } .working-steps p { font-size: 12px; }
 .history-layout { grid-template-columns: 1fr; gap: 47px; }
 .history h2 { font-size: 40px; } .history-main > p:not(.eyebrow) { max-width: 100%; }
 .year-art { font-size: 105px; margin-top: 24px; }
 .timeline { padding-top: 0; margin-left: 4px; }
 .timeline article { padding-left: 28px; padding-bottom: 34px; }
 .timeline h3 { font-size: 23px; }
 .timeline-label { margin-bottom: 14px; }
 .timeline article > p:last-child { font-size: 13px; }
 .contact-layout { gap: 33px; }
 .contact-intro h2 { font-size: 36px; }
 .contact-intro h2 br:nth-child(2) { display: block; }
 .contact-intro > p:not(.eyebrow) { font-size: 13px; }
 .contact-form { padding: 25px 20px; margin-inline: -3px; }
 .form-heading { display: block; margin-bottom: 24px; }
 .form-heading h3 { font-size: 22px; }
 .form-tag { display: inline-block; margin-top: 10px; font-size: 8px; }
 .form-grid { grid-template-columns: 1fr; gap: 20px; }
 .field label { font-size: 11px; }
 .field input, .field textarea, .field select { font-size: 16px; padding: 13px 12px; }
 .field input::placeholder, .field textarea::placeholder { font-size: 13px; }
 .field select { font-size: 13px; }
 .field label .optional { font-size: 10px; }
 .form-notice { font-size: 10px; }
 .site-footer { padding: 35px 0 67px; }
 .footer-top { flex-wrap: wrap; gap: 30px; padding-bottom: 28px; }
 .footer-brand { width: 201px; }
 .footer-top > p { font-size: 21px; order: 3; margin: 0; width: 100%; }
 .back-top { margin-left: auto; }
 .footer-bottom { flex-direction: column; align-items: flex-start; gap: 5px; padding-top: 20px; font-size: 10px; }
 .footer-link { font-size: 10px; }
 .preview-badge { left: 12px; bottom: 10px; }
 .modal { width: calc(100% - 24px); max-height: calc(100dvh - 30px); }
 .modal-body { padding: 26px 24px; }
 .modal-body h2 { font-size: 31px; }
 .project-dialog-art { height: 215px; }
 .inquiry-dialog .modal-body, .text-modal .modal-body { padding-top: 64px; }
 .modal-body > p { font-size: 12px; }
 .modal-body .modal-footnote { font-size: 10px; padding: 12px; }
 .inquiry-actions { flex-direction: column; }
}
@media (max-width: 360px) {
 .brand { width: 168px; } .container { width: calc(100% - 36px); }
 .hero h1 { font-size: 46px; } .hero .eyebrow { font-size: 7px; }
 .hero-description { font-size: 13px; } .hero-actions .button { font-size: 11px; gap: 22px; }
 .contact-intro h2 { font-size: 32px; } .history h2 { font-size: 36px; }
 .filter { font-size: 8px; padding: 10px; }
}
@media (prefers-reduced-motion: reduce) {
 html { scroll-behavior: auto; }
 *, *::before, *::after { animation: none !important; transition: none !important; }
 .scan-line { display: none; }
}
@media print {
 .site-header { position: static; } .preview-badge, .menu-toggle, .header-cta, .motion-toggle, .scan-line, dialog, .form-submit { display: none !important; }
 .hero, .hero-layout { min-height: 540px; } .hero-art { animation: none; }
 .container { width: 92%; } .section { padding: 40px 0; }
 .service-card, .project-card, .timeline article { break-inside: avoid; }
 body { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}

/* Constructora Araque · v2: five independent pages. */
html { scroll-behavior: auto; }
.site-header .header-inner { gap: 36px; }
.desktop-nav { gap: 28px; }
.desktop-nav a[aria-current="page"]::after { transform: scaleX(1); }
.header-cta[aria-current="page"] { background: #245877; }
.mobile-nav a[aria-current="page"] { color: #245877; font-weight: 650; }
.page-section { min-height: calc(100svh - var(--header) - 235px); }
.page-title { font-size: clamp(36px,3.65vw,53px); line-height: 1.13; letter-spacing: -.045em; font-weight: 450; }
.page-title em { font-style: normal; color: var(--slate); }
h1:focus:not(:focus-visible) { outline: none; }
main:focus { outline: none; }
/* Home stays compact and is not a summary of the entire website. */
.home-only, .home-only .hero-layout { min-height: min(760px,calc(100svh - var(--header))); }
.home-only .hero-content { padding: 75px 0 68px; max-width: 760px; position: relative; z-index: 2; }
.home-only .hero-description { max-width: 505px; font-size: 16px; line-height: 1.8; }
.home-only .hero-subline { margin-top: 22px; }
.home-only .hero-side { top: 95px; }
.home-only .hero-bottom { position: relative; z-index: 2; }
.hero-principles { display: flex; gap: 23px; align-items: center; color: #c4d9e8; }
.hero-principles span { font-size: 10px; letter-spacing: .04em; display: flex; gap: 23px; align-items: center; }
.hero-principles span + span::before { content: ''; width: 3px; height: 3px; background: #8baec6; }
.home-only .hero-art { opacity: .82; }
/* Small, living blueprint detail. It is not a project photograph. */
.live-blueprint { position: absolute; width: 345px; right: 15px; bottom: 110px; z-index: 1; color: #b7cedf; background: linear-gradient(135deg,rgba(15,43,64,.82),rgba(9,29,47,.38)); border: 1px solid rgba(185,214,235,.2); backdrop-filter: blur(6px); box-shadow: 0 25px 60px rgba(3,18,31,.18); }
.live-blueprint::before, .live-blueprint::after { position: absolute; content: ''; width: 11px; height: 11px; border-color: #bad3e5; }
.live-blueprint::before { top: -1px; left: -1px; border-top: 1px solid; border-left: 1px solid; }
.live-blueprint::after { bottom: -1px; right: -1px; border-right: 1px solid; border-bottom: 1px solid; }
.blueprint-caption { display: flex; gap: 9px; align-items: center; padding: 17px 17px 0; font-size: 8px; letter-spacing: .14em; }
.blueprint-caption > span:last-child { margin-left: auto; font-size: 7px; color: #96b3c8; }
.live-dot { width: 4px; height: 4px; border-radius: 50%; background: #c4e4fa; box-shadow: 0 0 10px rgba(151,207,245,.6); animation: blueprint-light 4s ease-in-out infinite; }
.site-drawing { display: block; width: 100%; margin-top: -5px; }
.plan-trace { stroke-dasharray: 1000; stroke-dashoffset: 1000; animation: blueprint-draw 14s ease-in-out infinite; }
.helmet-detail { transform-origin: 290px 220px; animation: helmet-float 7s ease-in-out infinite; }
.drawing-marker { animation: marker-glow 5s ease-in-out infinite; }
.blueprint-footer { display: flex; gap: 16px; align-items: center; padding: 0 22px 17px; font-size: 7px; letter-spacing: .18em; }
.blueprint-footer i { flex: 1; height: 1px; background: linear-gradient(90deg,#7596ac,rgba(117,150,172,.1)); }
@keyframes helmet-float { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-6px); } }
@keyframes blueprint-draw { 0% { stroke-dashoffset: 1000; opacity: .2; } 23%,86% { stroke-dashoffset: 0; opacity: .7; } 100% { stroke-dashoffset: 0; opacity: .2; } }
@keyframes blueprint-light { 50% { opacity: .45; } }
@keyframes marker-glow { 0%,100% { opacity: .4; } 50% { opacity: 1; } }
.motion-paused *, .ambient-paused .hero * { animation-play-state: paused !important; }
/* Six service stages, all at the same hierarchy. */
.construction-sequence { display: flex; align-items: center; justify-content: space-between; gap: 15px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 20px 0; margin: -6px 0 30px; }
.construction-sequence > span { display: flex; align-items: center; gap: 10px; font-size: 11px; position: relative; }
.construction-sequence > span + span::before { content: '→'; color: #7996ab; margin-right: 7px; }
.construction-sequence small { color: #7291a8; font-size: 9px; }
.services-six { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; }
.services-six .service-card, .services-six .service-card:last-child { grid-column: auto; padding: 30px 29px 18px; }
.services-six .service-card:nth-child(2) { background: #f4f6f8; }
.services-six .service-card:hover { background: #edf3f7; }
.services-six .service-top { margin-bottom: 26px; }
.services-six .service-icon { width: 53px; height: 53px; }
.services-six .service-copy h2 { font-size: 29px; margin-bottom: 16px; }
.services-six .service-copy > p:not(.service-kicker) { min-height: 92px; }
.services-six .service-kicker { font-size: 11px !important; }
.scope-band { margin-top: 38px; padding-top: 30px; display: flex; gap: 45px; align-items: center; justify-content: space-between; border-top: 1px solid var(--line); }
.scope-band > div { display: flex; align-items: flex-start; gap: 22px; max-width: 770px; }
.scope-mark { font-size: 32px; line-height: 1; color: #537b98; }
.scope-band p { font-size: 12px; color: #597084; line-height: 1.8; }
.scope-band strong { color: var(--navy); font-weight: 600; }
.scope-band .button { flex-shrink: 0; }
/* Independent history page. The former name has no invented change date. */
.history .page-title { color: #fff; }
.history .page-title em { color: #95b9d2; }
.history-main > p:not(.eyebrow) { max-width: 425px; font-size: 14px; }
.timeline h2 { font-size: 24px; font-weight: 450; letter-spacing: -.025em; margin: 10px 0 12px; }
.timeline strong { color: #e2edf5; font-weight: 550; }
.timeline article:last-child { padding-bottom: 0; }
.year-art span { max-width: 260px; line-height: 1.8; }
/* Contact sells the working relationship, not a single selected service. */
.contact .page-title { font-size: clamp(36px,3.6vw,51px); }
.contact-layout { gap: 85px; }
.contact-intro > p:not(.eyebrow) { max-width: 515px; font-size: 14px; }
.contact-intro > p strong { font-weight: 550; color: #25445a; }
.contact-value-lines { margin-top: 30px; border-top: 1px solid #d4e0e9; }
.contact-value-lines > div { display: flex; align-items: flex-start; gap: 18px; padding: 16px 0; border-bottom: 1px solid #d4e0e9; }
.contact-value-lines > div > span { font-size: 9px; color: #6b8a9f; margin-top: 4px; }
.contact-value-lines p { font-size: 12px; line-height: 1.7; color: #5c7384; }
.contact-value-lines strong { display: block; font-size: 13px; font-weight: 550; color: #193b53; margin-bottom: 1px; }
.contact .contact-note { border: 0; padding-top: 0; margin-top: 26px; }
.contact-form { position: sticky; top: calc(var(--header) + 32px); }
.form-heading h2 { font-size: 19px; letter-spacing: -.02em; font-weight: 550; }
.form-tag { font-size: 8px; }
.contact-form .field label { font-size: 12px; }
.contact-form .field input, .contact-form .field textarea { font-size: 14px; }
.contact-form .field textarea { line-height: 1.7; }
/* The original logo is rendered cleanly on blue through compositing, no white box. */
.footer-brand { background: transparent; border: 0; padding: 0; width: 236px; }
.footer-brand img { filter: grayscale(1) invert(1) brightness(1.5); mix-blend-mode: screen; }
.footer-top { isolation: isolate; }
.footer-top > p { font-size: 23px; }
.site-footer { padding: 40px 0 20px; }
.preview-badge { z-index: 45; }
.project-visual img { transition: transform .8s cubic-bezier(.2,.65,.3,1); }
.project-open:hover .project-visual img { transform: scale(1.045); }
@media (min-width: 1600px) { .home-only .hero-content { padding-top: 98px; } .live-blueprint { width: 355px; } }
@media (max-width: 1200px) {
 .site-header .header-inner { gap: 23px; } .desktop-nav { gap: 22px; }
 .live-blueprint { width: 285px; right: 0; bottom: 115px; }
 .home-only .hero-description { max-width: 455px; }
 .hero-principles { gap: 16px; } .hero-principles span { gap: 16px; }
 .contact-layout { gap: 54px; }
 .scope-band { gap: 28px; }
}
@media (max-width: 1020px) {
 .site-header .header-inner { gap: 20px; } .desktop-nav { gap: 18px; }
 .site-header .brand { width: 195px; }
 .header-cta { gap: 17px; padding-inline: 16px; }
 .home-only .hero-content { max-width: 670px; }
 .home-only .hero-description { max-width: 470px; }
 .live-blueprint { width: 245px; right: 0; bottom: 136px; }
 .hero-principles span { font-size: 9px; }
 .construction-sequence > span { font-size: 10px; gap: 7px; }
 .construction-sequence > span + span::before { margin-right: 0; }
 .services-six .service-card { padding: 25px 21px 16px; }
 .services-six .service-copy h2 { font-size: 25px; }
}
@media (max-width: 900px) {
 .site-header .brand { width: 222px; }
 .home-only, .home-only .hero-layout { min-height: 730px; }
 .home-only .hero-content { padding-top: 77px; }
 .live-blueprint { width: 220px; bottom: 112px; opacity: .85; }
 .home-only .hero-description { max-width: 455px; }
 .hero-principles { flex-wrap: wrap; gap: 9px 18px; }
 .hero-principles span { gap: 18px; }
 .home-only .motion-panel { flex-shrink: 0; }
 .home-only #visual-label { display: none; }
 .services-six { grid-template-columns: repeat(2,minmax(0,1fr)); }
 .services-six .service-copy h2 { font-size: 29px; }
 .construction-sequence { flex-wrap: wrap; justify-content: flex-start; gap: 14px 25px; }
 .construction-sequence > span { font-size: 11px; }
 .construction-sequence > span + span::before { display: none; }
 .scope-band { align-items: flex-start; flex-direction: column; }
 .contact-form { position: static; }
 .contact-layout { gap: 40px; }
 .contact .page-title { font-size: 46px; }
 .contact .page-title br:last-of-type { display: none; }
 .contact-intro > p:not(.eyebrow) { max-width: 680px; }
}
@media (max-width: 760px) and (min-width: 641px) { .live-blueprint { width: 174px; bottom: 120px; right: -9px; } .blueprint-caption { font-size: 6px; padding-inline: 10px; gap: 5px; } .blueprint-caption > span:last-child { display: none; } }
@media (max-width: 640px) {
 .site-header .brand { width: 185px; } .site-header .header-inner { gap: 12px; }
 .home-only, .home-only .hero-layout { min-height: 0; }
 .home-only .hero-layout { padding-top: 0; }
 .home-only .hero-content { padding: 50px 0 15px; }
 .home-only .hero-description { max-width: 400px; font-size: 14px; line-height: 1.8; }
 .home-only .hero-subline { font-size: 23px; margin: 18px 0 20px; }
 .home-only .hero-actions { margin-top: 25px; }
 .home-only .hero h1 { font-size: clamp(46px,11vw,65px); }
 .live-blueprint { position: relative; width: 188px; right: auto; bottom: auto; align-self: flex-end; margin: 0 0 20px; opacity: .95; }
 .blueprint-caption { padding: 12px 12px 0; font-size: 6px; gap: 6px; }
 .blueprint-caption > span:last-child { font-size: 5px; }
 .blueprint-footer { padding: 0 13px 12px; font-size: 6px; gap: 11px; }
 .home-only .hero-bottom { padding-top: 17px; padding-bottom: 21px; align-items: center; }
 .hero-principles { flex-direction: column; align-items: flex-start; gap: 6px; }
 .hero-principles span { font-size: 10px; line-height: 1.6; }
 .hero-principles span + span::before { display: none; }
 .home-only .motion-panel { align-self: flex-end; }
 .page-title { font-size: 38px; }
 .services-six { grid-template-columns: 1fr; }
 .services-six .service-card, .services-six .service-card:last-child { padding: 27px 26px 18px; }
 .services-six .service-copy > p:not(.service-kicker) { min-height: 0; }
 .services-six .service-copy h2 { font-size: 31px; }
 .construction-sequence { gap: 15px 24px; margin-top: 0; margin-bottom: 25px; }
 .construction-sequence > span { font-size: 10px; }
 .scope-band > div { gap: 16px; }
 .scope-band p { font-size: 12px; }
 .history .page-title { font-size: 41px; }
 .timeline h2 { font-size: 23px; }
 .contact .page-title { font-size: 37px; }
 .contact .page-title br:last-of-type { display: block; }
 .contact-intro > p:not(.eyebrow) { font-size: 13px; }
 .form-heading { align-items: flex-start; }
 .form-heading h2 { font-size: 19px; }
 .footer-brand { width: 205px; }
 .site-footer { padding: 35px 0 67px; }
 .footer-top > p { font-size: 22px; }
}
@media (max-width: 360px) {
 .home-only h1 { font-size: 44px; }
 .home-only .hero-content { padding-top: 40px; }
 .page-title { font-size: 34px; }
 .contact .page-title { font-size: 33px; }
 .history .page-title { font-size: 37px; }
 .hero-principles span { font-size: 9px; }
 .form-heading h2 { font-size: 17px; }
 .form-heading { flex-wrap: wrap; }
 .construction-sequence { gap: 14px 17px; }
}
@media (prefers-reduced-motion: reduce) {
 *,*::before,*::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
 .plan-trace { stroke-dashoffset: 0; opacity: .7; }
 .project-open:hover .project-visual img { transform: none; }
}
@media print {
 .live-blueprint { display: none; }
 .footer-brand img { filter: none; mix-blend-mode: normal; }
 .page-view[hidden] { display: none !important; }
}
/* Let the logo composite against the actual navy footer, not a transparent group. */
.footer-top { isolation: auto; }
.preview-badge { left: auto; right: 16px; bottom: 16px; }
/* Review status belongs to the footer so it never covers navigation or pause. */
.preview-badge { position: static; margin-left: 10px; flex-shrink: 0; box-shadow: none; }
@media (max-width: 640px) { .preview-badge { margin-left: 0; margin-top: 14px; } }


/* V3: actualización editorial y visual, conservando navegación de cinco páginas. */
h1[tabindex="-1"]:focus{outline:none!important}
:root{--orange:#f47b35;--orange-dark:#d75c21;--pale-blue:#f4f8fb;--mist:#e6f2f9}
.eyebrow>span{background:var(--orange);width:29px;height:2px}
.desktop-nav a::after{height:2px;background:var(--orange)}
.mobile-nav a[aria-current="page"]{color:var(--navy);border-left:3px solid var(--orange);padding-left:12px}
.orange-stop{color:var(--orange)}
.button-orange{background:var(--orange);color:white;border-color:var(--orange);box-shadow:0 7px 25px rgba(163,72,27,.12)}
.button-orange:hover{background:var(--orange-dark);border-color:var(--orange-dark)}
.footer-brand{width:240px}
.footer-brand img{filter:none!important;mix-blend-mode:normal!important;width:100%;height:auto}
.site-footer{background:#08233c}
.section-v3{padding:76px 0}
.section-v3 .eyebrow{margin-bottom:19px}
.section-v3 h2{font-weight:580;font-size:clamp(29px,3vw,45px)}
.section-v3 h2 em{font-style:normal;color:#5989ab}
.section-v3 p{line-height:1.72}
.block-heading{display:flex;gap:30px;align-items:end;justify-content:space-between;margin-bottom:26px}
.block-heading .simple-link{margin-bottom:7px}
.simple-link{display:inline-flex;align-items:center;gap:13px;color:var(--navy);font-size:13px;font-weight:650;text-decoration:underline;text-underline-offset:6px;white-space:nowrap}
.simple-link .icon{width:19px;height:19px}
.visual-disclaimer{color:#697f91;font-size:11px;line-height:1.65;margin-top:15px}
/* Cinematic hero: conceptual image panel with subdued background blueprint. */
.v3-hero{min-height:660px;background:#092943}
.v3-hero .hero-layout{min-height:660px}
.v3-hero .hero-photo-reference{position:absolute;right:0;top:0;width:59%;height:100%;object-fit:cover;object-position:center;opacity:.92;filter:saturate(.85)}
.v3-hero .hero-shade{background:var(--hero-overlay)}
.v3-hero .hero-art{opacity:.2;object-position:0 40%}
.v3-hero .hero-content{padding:88px 0 60px;max-width:800px}
.v3-hero h1{font-size:clamp(56px,6.4vw,88px);line-height:1.05;font-weight:580;letter-spacing:-.06em}
.v3-hero h1 em{color:#a8d5f6;font-weight:580}
.v3-hero .hero-description{max-width:548px;margin-top:22px;color:#ecf5fc;font-size:16px;line-height:1.75}
.v3-hero .hero-actions{gap:20px;margin-top:32px}
.v3-hero .hero-secondary{padding:16px 20px;border:1px solid rgba(232,244,254,.7);color:white;font-weight:550;background:rgba(0,20,40,.14)}
.v3-hero .hero-secondary:hover{background:rgba(255,255,255,.11)}
.v3-hero .live-blueprint{width:185px;right:0;bottom:100px;opacity:.63;backdrop-filter:blur(3px)}
.v3-hero .blueprint-caption{font-size:6px;padding:10px 10px 0}
.v3-hero .blueprint-footer{font-size:6px;padding:0 12px 10px}
.v3-hero .hero-side{top:45%;opacity:.45}
.v3-hero .hero-bottom{border-top-color:rgba(255,255,255,.26)}
/* Reasons: carefully scaled cards rather than filler. */
.why-section{background:linear-gradient(110deg,#f7fafc 0%,#edf5fb 100%)}
.why-layout{display:grid;grid-template-columns:270px minmax(0,1fr);gap:35px;align-items:start}
.why-heading h2{color:var(--navy);line-height:1.12;margin-bottom:19px}
.why-heading>p:last-child{color:#5b7082;font-size:13px}
.value-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.value-card{padding:27px 19px 23px;border:1px solid #dae6ee;background:#fff;min-height:226px;box-shadow:0 8px 26px rgba(8,46,77,.025);transition:transform .3s,box-shadow .3s,border-color .3s}
.value-card:hover{transform:translateY(-4px);box-shadow:0 12px 27px rgba(4,45,73,.09);border-color:#a8bed0}
.value-card .icon{width:38px;height:38px;color:#17476b;margin-bottom:17px}
.value-card h3{font-size:15px;line-height:1.27;min-height:40px;color:#12324f;margin-bottom:10px;font-weight:650}
.value-card p{font-size:11.5px;color:#597085;line-height:1.7}
/* Home portfolio previews: conceptual art is explicitly marked. */
.home-featured{background:#fff}
.home-projects-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px}
.home-project{border:1px solid #dce5eb;background:#fff;min-width:0;transition:box-shadow .25s,transform .25s}
.home-project:hover{box-shadow:0 15px 40px rgba(9,39,61,.11);transform:translateY(-4px)}
.home-project-image{height:194px;position:relative;overflow:hidden;background:#e9f2f7}
.home-project-image img{width:100%;height:100%;object-fit:cover;transition:transform .7s}
.home-project:hover img{transform:scale(1.05)}
.home-project-image>span{position:absolute;bottom:7px;left:9px;color:#eaf5fc;font-size:8px;background:rgba(5,31,50,.83);padding:5px 8px;letter-spacing:.04em}
.home-project-text{min-height:114px;position:relative;padding:17px 47px 20px 18px}
.home-project-text small{color:#6a8da3;letter-spacing:.08em;text-transform:uppercase;font-size:9px}
.home-project-text h3{font-size:17px;line-height:1.28;letter-spacing:-.02em;margin-top:8px;font-weight:600;color:#092e4b}
.home-project-arrow{position:absolute;right:14px;bottom:17px;border:1px solid #a8bfce;display:grid;place-items:center;width:29px;height:29px;border-radius:50%;color:#0c3755}
.home-project-arrow .icon{width:18px;height:18px}
/* Four transparent stages of work. */
.method-section{background:linear-gradient(125deg,#f0f7fb,#eaf3f9)}
.method-layout{display:grid;grid-template-columns:268px minmax(0,1fr);gap:48px}
.method-heading>p:last-child{font-size:13px;color:#647b8d;margin-top:16px}
.method-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.method-step{border-left:1px solid #c7dbe9;padding:4px 12px 8px 19px;position:relative}
.method-step .icon{color:#174b73;width:29px;height:29px}
.method-num{color:#537c98;font-size:19px;font-weight:650;display:inline-block;margin-left:11px}
.method-step h3{font-size:13px;line-height:1.3;color:#103853;margin:17px 0 9px;font-weight:700}
.method-step p{font-size:10.5px;color:#60788a}
.conversion-band{background:linear-gradient(110deg,rgba(5,30,53,.97),rgba(15,72,111,.9)),url('assets/hero-arquitectura.svg') center / cover; color:#fff;padding:44px 0;border-top:2px solid rgba(249,138,75,.65)}
.conversion-inner{display:flex;justify-content:space-between;align-items:center;gap:45px}
.conversion-inner h2{font-size:clamp(24px,2.6vw,39px);font-weight:600;line-height:1.22;margin-top:13px}
.conversion-inner h2 em{color:#b7daee;font-style:normal}
.conversion-inner .button{flex-shrink:0}
/* SERVICES: header with photography and orange cues. */
.v3-services{padding-top:0}
.v3-services>.container{width:100%;max-width:none}
.service-intro{position:relative;overflow:hidden;min-height:300px;display:flex;gap:24px;flex-direction:column;align-items:stretch;justify-content:center;padding:60px max(56px,calc((100% - var(--max))/2)) 54px;background:linear-gradient(90deg,#f0f7fc 0%,#f6fbff 70%,#dbeaf3);margin-bottom:0}
.service-intro>div:not(.services-hero-picture){position:relative;z-index:2}
.service-intro h1{font-size:clamp(42px,4.2vw,65px);font-weight:600;line-height:1.1;color:#0b2a46}
.service-intro h1 em{color:#5a819e}
.service-intro .eyebrow{color:#4f7792;margin-bottom:18px}
.service-intro .section-intro{position:relative;z-index:2;max-width:525px;font-size:15px;line-height:1.7;color:#314d64;margin-top:20px}
.services-hero-picture{position:absolute;right:0;top:0;bottom:0;width:55%;z-index:0}
.services-hero-picture::before{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,#f1f8fc 0%,rgba(241,248,252,.93) 21%,rgba(241,248,252,.22) 80%)}
.services-hero-picture img{width:100%;height:100%;object-fit:cover;object-position:50% 43%}
.scope-band-v3,.services-cards-heading,.v3-services .services-grid,.services-caption,.capability-band,.services-next{max-width:var(--max);width:calc(100% - 112px);margin-left:auto;margin-right:auto}
.scope-band-v3{margin-top:27px;margin-bottom:38px;padding:26px 28px;background:linear-gradient(110deg,#e7f1f8,#f8fbfd);border:1px solid #d6e4ef;border-left:4px solid var(--orange)}
.scope-band-v3>div{max-width:900px}
.scope-band-v3 .scope-mark{color:var(--orange)}
.scope-band-v3 p{font-size:14px;color:#455f74}
.scope-band-v3 strong{font-size:18px;line-height:1.6;color:#092d49}
.services-cards-heading{display:flex;justify-content:space-between;gap:45px;align-items:end;margin-bottom:28px}
.services-cards-heading h2{font-size:clamp(29px,3vw,44px);font-weight:600}
.services-cards-heading>p{max-width:265px;font-size:12px;color:#627789}
.v3-services .services-grid{gap:20px}
.v3-services .service-photo-card{background:#fff!important;padding:0!important;overflow:hidden;border:1px solid #dce7ee;min-height:0;transition:box-shadow .3s,transform .3s}
.v3-services .service-photo-card:hover{transform:translateY(-4px);box-shadow:0 14px 32px rgba(9,43,75,.12)}
.service-media{position:relative;height:155px;overflow:hidden;background:#dce9f2}
.service-media img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.service-photo-card:hover .service-media img{transform:scale(1.07)}
.service-media>span{position:absolute;bottom:9px;left:11px;background:rgba(6,29,48,.76);color:#e6f1f9;padding:4px 7px;font-size:8px;letter-spacing:.04em}
.v3-services .service-photo-card .service-top{padding:16px 22px 0;margin-bottom:5px;align-items:center}
.v3-services .service-photo-card .service-icon{height:39px;width:39px;color:#1e5476}
.v3-services .service-photo-card .service-copy{padding:0 22px 10px}
.v3-services .service-photo-card .service-copy h2{font-size:25px;font-weight:650;margin:6px 0 12px}
.v3-services .service-photo-card .service-copy>p:not(.service-kicker){min-height:86px;font-size:12px;line-height:1.62}
.v3-services .service-photo-card .service-kicker{margin-bottom:0;font-size:10px!important}
.v3-services .service-photo-card .service-bottom{padding:13px 22px 19px;margin-top:auto;border-top:1px solid #e4ebf0}
.v3-services .service-photo-card .service-bottom a{font-size:12px;color:#134464}
.v3-services .service-photo-card .service-bottom .icon{width:18px;height:18px}
.services-caption{margin-top:18px;margin-bottom:58px}
.capability-band{display:grid;grid-template-columns:1.25fr .75fr;background:#082f52;color:#fff;min-height:297px;margin-top:20px;position:relative;overflow:hidden}
.capability-band>div:first-child{padding:41px 38px;position:relative;z-index:2}
.capability-band .eyebrow{color:#b3d1e3}
.capability-band h2{font-size:clamp(30px,3vw,43px);font-weight:650;margin:12px 0 19px}
.capability-band h2 em{font-style:normal;color:#9dc8e6}
.capability-band p:not(.eyebrow){font-size:13px;line-height:1.73;color:#d7e6f1;max-width:620px}
.capability-visual{position:relative;min-height:298px}
.capability-visual::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#082f52 0%,rgba(8,47,82,.2) 50%,transparent 100%);z-index:1}
.capability-visual img{width:100%;height:100%;object-fit:cover}
.capability-pills{display:flex;flex-wrap:wrap;gap:12px;margin-top:21px}
.capability-pills span{padding:7px 11px;border:1px solid #5d92b3;color:#dbeaf3;font-size:10px}
.services-next{display:flex;gap:25px;align-items:center;justify-content:space-between;margin-top:20px;margin-bottom:65px;background:#f2f7fa;border:1px solid #dce6ed;border-left:3px solid var(--orange);padding:22px 30px}
.services-next h2{font-size:clamp(20px,2.3vw,30px);font-weight:600}
.services-next .button{flex-shrink:0}
/* PROJECTS: retain filters and content, add clear, richer header. */
.v3-projects{padding-top:0}
.v3-projects>.container{max-width:none;width:100%}
.projects-v3-head{position:relative;min-height:275px;background:linear-gradient(120deg,#f0f7fb,#e3eff7 67%,#a9c6d8);padding:64px max(56px,calc((100% - var(--max))/2)) 58px;margin:0;align-items:center;overflow:hidden}
.projects-v3-head>div:not(.projects-visual-mark),.projects-v3-head>.section-intro{position:relative;z-index:1}
.projects-v3-head .page-title{font-weight:600;font-size:clamp(42px,4vw,62px)}
.projects-v3-head .section-intro{color:#49667c;max-width:370px;font-size:14px;line-height:1.75}
.projects-visual-mark{position:absolute;z-index:0;inset:0;display:flex;align-items:flex-end;justify-content:flex-end;gap:30px;padding:30px 40px;opacity:.13;color:#0f4769;pointer-events:none}
.projects-visual-mark>span{font-size:clamp(30px,5vw,75px);line-height:.9;font-weight:750;writing-mode:vertical-rl;letter-spacing:.02em}
.project-intro-strip,.v3-projects .portfolio-tools,.v3-projects .projects-grid,.v3-projects .section-footnote,.v3-projects #show-projects{max-width:var(--max);width:calc(100% - 112px);margin-left:auto;margin-right:auto}
.project-intro-strip{display:flex;justify-content:space-between;align-items:center;gap:20px;background:linear-gradient(90deg,#0a385c,#164d77);color:white;padding:19px 27px;margin-top:22px;margin-bottom:25px;border-left:4px solid var(--orange)}
.project-intro-strip p{font-size:13px;line-height:1.65}
.project-intro-strip strong{font-weight:700;color:#d3eafa}
.project-intro-strip>span{font-size:8px;letter-spacing:.14em;white-space:nowrap;color:#b1d1e7}
.v3-projects .portfolio-tools{margin-top:20px}
.v3-projects .project-card{border-bottom:2px solid transparent;transition:border-color .25s,box-shadow .25s}
.v3-projects .project-card:hover{border-bottom-color:var(--orange);box-shadow:0 12px 30px rgba(8,42,67,.07)}
/* HISTORY: photo-accent hero and mission/vision cards. */
.history-hero-v3{background:#082c4a;min-height:350px;color:white;position:relative;isolation:isolate;overflow:hidden}
.history-hero-img{position:absolute;inset:0;z-index:-2}
.history-hero-img img{display:block;position:absolute;right:0;top:0;width:63%;height:100%;object-fit:cover;object-position:center 42%}
.history-hero-img::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#062846 0%,#092f50 35%,rgba(9,45,75,.68) 68%,rgba(7,43,71,.2) 100%)}
.history-hero-inner{padding-top:75px;padding-bottom:68px;position:relative}
.history-hero-inner h1{font-size:clamp(39px,4.7vw,69px);letter-spacing:-.047em;line-height:1.11;font-weight:650;margin:20px 0 18px;max-width:830px}
.history-hero-inner h1 em{font-style:normal;color:#b6d9f1}
.history-hero-inner>p:not(.eyebrow){max-width:540px;font-size:17px;color:#dfecf5;line-height:1.62}
.history-hero-tag{font-size:9px;letter-spacing:.17em;color:#b1d2e5;margin-top:30px;display:inline-block;border-left:2px solid var(--orange);padding-left:14px}
.split-heading{display:flex;justify-content:space-between;gap:65px;align-items:center;margin-bottom:39px}
.split-heading>p{font-size:14px;color:#5e7588;max-width:425px}
.history-timeline-v3{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;text-align:center}
.history-timeline-v3 article{padding:0 26px}
.history-node{width:68px;height:68px;border-radius:50%;background:#edf4f8;color:#195277;display:grid;place-items:center;margin:0 auto 17px;border:1px solid #dce8f0;position:relative}
.history-timeline-v3 article:not(:last-child) .history-node::after{content:'→';position:absolute;left:calc(100% + 23px);width:180px;text-align:center;font-size:25px;color:#7fa0b7;font-weight:300;top:15px;pointer-events:none}
.history-timeline-v3 h3{font-size:18px;color:#13374f;margin-bottom:7px;font-weight:700}
.history-timeline-v3 article>strong{display:block;color:#557e99;letter-spacing:.12em;font-size:10px;margin-bottom:8px}
.history-timeline-v3 article>p{font-size:13px;color:#596f80;line-height:1.75}
.history-timeline-v3 article>p strong{color:#092b4b}
.purpose-section{background:#f3f8fb;padding-top:30px;padding-bottom:65px}
.purpose-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.purpose-card{display:grid;grid-template-columns:146px 1fr;gap:24px;min-height:285px;align-items:stretch;padding:15px;background:#fff;border:1px solid #dfeaf1;box-shadow:0 5px 18px rgba(9,42,66,.03)}
.purpose-image{width:100%;height:100%;object-fit:cover;min-height:258px}
.purpose-card>div{align-self:center;padding:7px 10px 7px 0}
.purpose-card .eyebrow{font-size:9px;line-height:1.65}
.purpose-card h2{margin:8px 0 17px;color:#082f4a}
.purpose-card p:not(.eyebrow){font-size:12px;color:#516d80;line-height:1.8}
.values-section{background:linear-gradient(90deg,#fff,#f2f7fb)}
.values-layout{display:grid;grid-template-columns:265px 1fr;gap:45px}
.values-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:13px}
.values-grid article{border-left:1px solid #d5e3eb;padding:5px 16px 5px 20px}
.values-grid .icon{color:#1b5073;margin-bottom:13px}
.values-grid h3{font-size:14px;color:#0b3855;font-weight:700;margin-bottom:11px}
.values-grid p{font-size:11px;color:#5c7284;line-height:1.7}
/* Other pages receive the same orange micro-accent to keep the system consistent. */
.v3-contact .eyebrow{color:#517a97}
.v3-contact .form-submit{background:var(--orange);color:#fff}
.v3-contact .form-submit:hover{background:var(--orange-dark)}
/* Accessibility and flexible screens. */
@media(max-width:1170px){
 .why-layout{grid-template-columns:225px 1fr;gap:25px}.value-card{padding:23px 15px 18px}
 .method-layout{grid-template-columns:205px 1fr;gap:23px}
 .history-timeline-v3 article:not(:last-child) .history-node::after{width:125px}
 .purpose-card{grid-template-columns:115px 1fr;gap:17px}
}
@media(max-width:950px){
 .v3-hero .hero-photo-reference{width:78%;opacity:.8}
 .v3-hero .live-blueprint{opacity:.4}
 .why-layout,.method-layout,.values-layout{grid-template-columns:1fr}
 .value-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .value-card{min-height:183px}
 .method-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
 .home-projects-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .service-intro{padding:50px 56px}
 .services-cards-heading{align-items:start}
 .history-timeline-v3 article:not(:last-child) .history-node::after{width:60px}
 .purpose-grid{grid-template-columns:1fr}
 .purpose-card{min-height:200px;grid-template-columns:155px 1fr}
 .purpose-image{min-height:220px}
 .values-grid{grid-template-columns:repeat(4,1fr)}
}
@media(max-width:720px){
 .container{width:calc(100% - 36px)}
 .section-v3{padding:52px 0}
 .block-heading,.split-heading,.services-cards-heading{flex-direction:column;align-items:start;gap:18px}
 .value-grid,.home-projects-grid{gap:12px}
 .v3-hero .hero-layout{min-height:670px}
 .v3-hero .hero-content{padding:67px 0 26px}
 .v3-hero .hero-photo-reference{width:100%;opacity:.55;object-position:70% center}
 .v3-hero .hero-shade{background:var(--hero-overlay)}
 .v3-hero h1{font-size:clamp(43px,10vw,63px)}
 .v3-hero .hero-description{font-size:14px}
 .v3-hero .hero-actions{flex-wrap:wrap;gap:12px}
 .v3-hero .hero-secondary{padding:14px 15px}
 .v3-hero .live-blueprint{width:142px;margin-top:0;opacity:.65}
 .v3-hero .hero-bottom{padding:14px 0 15px}
 .why-heading h2,.method-heading h2{font-size:clamp(31px,8vw,46px)}
 .value-card{min-height:200px}
 .conversion-inner{flex-direction:column;align-items:flex-start;gap:24px}
 .service-intro{padding:45px 18px 48px;min-height:335px}
 .service-intro h1{font-size:clamp(39px,8.5vw,55px)}
 .service-intro .section-intro{font-size:14px;max-width:450px}
 .services-hero-picture{width:100%;opacity:.35}
 .services-hero-picture::before{background:linear-gradient(90deg,#f1f8fc 0%,rgba(241,248,252,.65) 90%)}
 .scope-band-v3,.services-cards-heading,.v3-services .services-grid,.services-caption,.capability-band,.services-next{width:calc(100% - 36px)}
 .scope-band-v3{padding:20px 17px}
 .scope-band-v3 .button{margin-top:5px}
 .scope-band-v3 strong{font-size:16px}
 .v3-services .service-media{height:170px}
 .capability-band{grid-template-columns:1fr}
 .capability-band>div:first-child{padding:31px 25px}
 .capability-visual{height:170px;min-height:0}
 .capability-visual::before{background:linear-gradient(0deg,#082f52 0%,rgba(8,47,82,.1))}
 .services-next{flex-direction:column;align-items:flex-start;padding:23px}
 .projects-v3-head{padding:51px 18px;min-height:290px;display:block}
 .projects-v3-head .section-intro{margin-top:20px}
 .projects-visual-mark{opacity:.07;gap:5px}
 .project-intro-strip,.v3-projects .portfolio-tools,.v3-projects .projects-grid,.v3-projects .section-footnote,.v3-projects #show-projects{width:calc(100% - 36px)}
 .project-intro-strip{padding:17px 18px;flex-direction:column;align-items:flex-start;gap:7px}
 .history-hero-inner{padding-top:62px;padding-bottom:50px}
 .history-hero-img img{width:100%;opacity:.55}
 .history-hero-img::after{background:linear-gradient(90deg,rgba(5,33,54,.95),rgba(5,33,54,.64))}
 .history-hero-inner h1{font-size:clamp(38px,8.5vw,60px)}
 .history-timeline-v3{grid-template-columns:1fr;gap:30px;text-align:left}
 .history-timeline-v3 article{padding:0 0 0 60px;position:relative}
 .history-node{position:absolute;left:0;top:0;width:45px;height:45px;margin:0}
 .history-node .icon{width:24px;height:24px}
 .history-timeline-v3 article:not(:last-child) .history-node::after{content:'';height:calc(100% + 29px);width:1px;background:#acc7d8;position:absolute;top:44px;left:22px}
 .purpose-card{grid-template-columns:115px 1fr;gap:15px}
 .purpose-image{min-height:265px}
 .values-grid{grid-template-columns:repeat(2,1fr);gap:25px 5px}
}
@media(max-width:420px){
 .v3-hero .hero-actions .button{width:100%;justify-content:center}
 .v3-hero .hero-secondary{width:100%;justify-content:center}
 .v3-hero .live-blueprint{display:none}
 .v3-hero .hero-layout{min-height:700px}
 .value-grid{grid-template-columns:1fr}
 .value-card{min-height:0;padding:20px}
 .home-projects-grid{grid-template-columns:1fr}
 .home-project-image{height:185px}
 .method-grid{grid-template-columns:1fr 1fr;gap:22px 7px}
 .method-step{padding-left:13px}
 .method-step .icon{width:25px;height:25px}
 .v3-services .service-photo-card .service-top{padding:16px 15px 0}
 .v3-services .service-photo-card .service-copy{padding:0 15px 10px}
 .v3-services .service-photo-card .service-bottom{padding:12px 15px 19px}
 .purpose-card{grid-template-columns:1fr;gap:0}
 .purpose-image{height:132px;min-height:0}
 .purpose-card>div{padding:18px 6px}
 .history-hero-tag{font-size:7px}
}
@media(prefers-reduced-motion:reduce){.value-card,.home-project,.service-photo-card,.service-media img{transform:none!important;transition:none!important}}

/* v4: footer de Proyectos sin bloque defensivo; botón alineado a la derecha. */
.portfolio-bottom-clean{justify-content:flex-end}
.portfolio-bottom-clean>.button{margin-left:auto}
@media(max-width:720px){.portfolio-bottom-clean>.button{margin-left:auto}}

/* Fichas documentadas: fechas legibles sin alterar el catálogo. */
.project-dates{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:17px 0 21px}
.project-dates>div{border-top:2px solid #ca6b29;background:#edf4f8;padding:12px 15px;min-width:0}
.project-dates dt{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:#385a72;margin-bottom:6px;font-weight:700}
.project-dates dd{margin:0;color:var(--navy);font-weight:700;line-height:1.45;font-size:14px}
@media(max-width:500px){.project-dates{grid-template-columns:1fr;gap:8px}}

/* Fase 1: legibilidad y controles sin alterar la identidad de v4. */
.project-gallery{display:flex;flex-wrap:wrap;gap:8px;margin:15px 0}
#project-dialog-image.project-detail-photo{object-fit:contain}
.gallery-select{min-height:44px;padding:10px 14px;background:#fff;color:var(--navy);border:1px solid #8aa8bc}
.gallery-select[aria-pressed="true"]{background:var(--navy);color:#fff}
.filter,.motion-toggle,.footer-link{min-height:44px}
.button-orange,.v3-contact .form-submit{background:#c45212;border-color:#c45212;color:#fff}
.button-orange:hover,.v3-contact .form-submit:hover{background:#a8410b;border-color:#a8410b}
.home-project-text small{color:#47677e}
.value-card p,.method-step p,.values-grid p{font-size:13px}
.method-step h3,.values-grid h3{font-size:14px}
.service-media>span,.home-project-image>span{font-size:10px}
.form-notice,.form-error,.footer-bottom,.footer-link{font-size:12px}
.contact-form .field input,.contact-form .field textarea{font-size:16px}
.form-tag{font-size:10px}
.history-hero-inner>.history-media-note{color:#dcebf5;font-size:12px;margin-top:18px;line-height:1.6}
.visual-disclaimer{color:#4e6577;font-size:12px}
.home-project-text h3,.project-open h3{overflow-wrap:anywhere}
.home-only #visual-label{display:inline;font-size:11px;max-width:220px;line-height:1.5}
:focus-visible{outline:3px solid #b84a0e;outline-offset:4px}
.site-footer :focus-visible,.hero :focus-visible{outline-color:#ffb580}
.no-js .menu-toggle{display:none}
.noscript-nav{display:flex;flex-wrap:wrap;gap:4px 12px;padding:12px 18px;background:#edf4f8;color:var(--navy)}
.noscript-nav a{display:flex;align-items:center;min-height:44px;font-size:13px;text-decoration:underline}
@media(min-width:901px){.noscript-nav{display:none}}
@media(max-width:720px){
 .motion-panel{max-width:55%;align-items:flex-end;text-align:right}
 .home-only #visual-label{font-size:10px;max-width:170px}
 .footer-bottom{flex-wrap:wrap}
}
@media(min-width:641px) and (max-width:900px){.method-grid{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:24px}}

/* Portafolio corporativo: la experiencia documentada guía el catálogo. */
.v3-projects .corporate-project{position:relative;isolation:isolate;display:flex;flex-direction:column;min-width:0;background:#fff;border:1px solid #cddce7;border-bottom:2px solid #b7cad8;padding:27px 27px 0;overflow:hidden;transition:transform .25s,border-color .25s,box-shadow .25s}
.corporate-project::before{content:'';position:absolute;top:0;right:0;width:92px;height:92px;border-left:1px solid #e1ebf2;border-bottom:1px solid #e1ebf2;background:repeating-linear-gradient(135deg,transparent 0 14px,#edf3f7 14px 15px);z-index:-1;opacity:.7;pointer-events:none}
.corporate-project::after{content:'';position:absolute;top:0;left:27px;width:34px;height:3px;background:var(--orange);transition:width .3s;pointer-events:none}
.v3-projects .corporate-project:hover,.v3-projects .corporate-project:focus-within{border-color:#668aa5;box-shadow:0 16px 35px rgba(8,42,67,.09);transform:translateY(-4px)}
.corporate-project:hover::after{width:74px}
.corporate-project-top{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:45px}
.corporate-index{font-size:25px;font-weight:350;letter-spacing:-.04em;color:#365e7b;font-variant-numeric:tabular-nums}
.corporate-index small{font-size:8px;letter-spacing:.12em;margin-left:4px;color:#526f84}
.corporate-category{text-transform:uppercase;font-size:9px;letter-spacing:.09em;text-align:right;color:#41657e;max-width:160px;line-height:1.6}
.corporate-project-body{padding:29px 0 26px;flex:1}
.corporate-project h3{font-size:clamp(22px,2vw,28px);font-weight:600;line-height:1.18;letter-spacing:-.035em;color:var(--navy);margin:0 0 18px;overflow-wrap:anywhere}
.corporate-scope{font-size:14px;color:#4e6679;line-height:1.75}
.corporate-date{border-top:1px solid #dbe5ec;padding:17px 0 22px;display:flex;flex-direction:column;gap:5px}
.corporate-date>span{font-size:9px;letter-spacing:.09em;text-transform:uppercase;color:#5c7385}
.corporate-date>strong{font-size:14px;color:#163d59;font-weight:600}
.corporate-project .corporate-open{display:flex;align-items:center;justify-content:space-between;gap:15px;min-height:59px;border-top:1px solid #cfdee9;color:#153e5c;font-size:13px;font-weight:650;transition:color .2s}
.corporate-open::after{content:'';position:absolute;inset:0;cursor:pointer}
.corporate-open .icon{color:#b84a0e;width:21px;transition:transform .25s}
.corporate-open:hover .icon{transform:translate(3px,-3px)}
.corporate-open:focus-visible{outline:none}
.corporate-project:has(.corporate-open:focus-visible){outline:3px solid #b84a0e;outline-offset:4px}
.experience-section{background:linear-gradient(130deg,#f5f9fc,#fff 70%)}
.experience-section .block-heading{align-items:end;margin-bottom:34px}
.experience-section h2{max-width:730px}
.experience-section .home-projects-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.experience-project{background:#fff;border:1px solid #cddde7;box-shadow:0 8px 24px rgba(5,35,57,.035)}
.experience-project>a{display:flex;height:100%;flex-direction:column}
.experience-project .home-project-image{height:330px;isolation:isolate}
.experience-project .home-project-image::after{content:'';position:absolute;inset:60% 0 0;background:linear-gradient(transparent,rgba(4,28,48,.62));pointer-events:none;z-index:0}
.experience-project .home-project-image>.home-visual-note{z-index:1;bottom:14px;left:15px;font-size:10px;line-height:1.5;max-width:calc(100% - 30px);background:#0a2f4c;padding:5px 8px}
.experience-project .home-project-image>.experience-index{top:17px;left:17px;bottom:auto;z-index:1;background:#fff;color:var(--navy);font-size:14px;padding:7px 9px}
.experience-project .home-project-text{padding:25px 25px 20px;min-height:182px;display:flex;flex:1;flex-direction:column;border-top:3px solid #c3682b}
.experience-project .home-project-text small{font-size:10px;letter-spacing:.1em;line-height:1.6}
.experience-project .home-project-text h3{font-size:25px;line-height:1.2;margin:10px 0 25px;max-width:310px}
.experience-link{margin-top:auto;display:flex;align-items:center;justify-content:space-between;font-size:12px;font-weight:650;color:#184662}
.experience-link .icon{width:20px;color:#b84a0e}
.experience-section .visual-disclaimer{max-width:850px;margin-top:21px}
.project-detail .modal-body{padding:36px 42px 40px}
.project-detail.project-text-only .modal-body{padding-top:61px;border-top:4px solid #cc682e;background:linear-gradient(135deg,#eef5fa 0,white 160px)}
.project-detail-kicker{display:flex;flex-wrap:wrap;align-items:center;gap:17px;border-bottom:1px solid #cfdee9;padding-bottom:20px;margin-bottom:25px}
#project-dialog-number{font-size:10px;letter-spacing:.13em;color:#5b7386;white-space:nowrap}
.project-detail-kicker .eyebrow{margin:0;font-size:10px}
.project-detail .project-dates{grid-template-columns:1fr;margin:22px 0 26px}
.project-detail .modal-body h2{font-weight:600;font-size:clamp(30px,3.3vw,43px);max-width:620px;letter-spacing:-.04em}
.project-detail #project-dialog-scope{font-size:16px;line-height:1.85;color:#36546b}
.project-detail .project-role{font-size:11px;line-height:1.7}
.project-detail.project-text-only .modal-footnote{padding-left:15px;border-left:2px solid #b9d0e0;background:#f1f6f9}
.project-detail .project-dialog-art{height:340px;background:#e8f0f5}
@media(max-width:1050px){
 .v3-projects .corporate-project{padding:22px 21px 0}.corporate-project h3{font-size:24px}
 .experience-project .home-project-image{height:285px}.experience-project .home-project-text{padding:21px 19px 19px}.experience-project .home-project-text h3{font-size:22px}
}
@media(max-width:760px){
 .experience-section .home-projects-grid{grid-template-columns:1fr;gap:24px}
 .experience-project .home-project-image{height:clamp(270px,65vw,430px)}
 .experience-project .home-project-text{min-height:0;padding:23px}.experience-project .home-project-text h3{max-width:none;font-size:27px;margin-bottom:25px}
 .experience-section .block-heading{flex-direction:column;align-items:start;gap:20px}
 .project-detail .modal-body{padding:28px 25px 31px}.project-detail.project-text-only .modal-body{padding-top:61px}
 .project-detail .project-dialog-art{height:270px}.project-detail-kicker{gap:11px}
}
@media(max-width:640px){.v3-projects .projects-grid{gap:19px}.corporate-project h3{font-size:27px}.corporate-project-body{padding-top:24px}.corporate-scope{font-size:14px}}
@media(prefers-reduced-motion:reduce){.v3-projects .corporate-project:hover,.experience-project:hover{transform:none}.corporate-open .icon{transform:none!important}}

/* Ajustes de lectura: conservar escala tipográfica y jerarquía. */
:root{--ink:#102a40;--muted:#3d566c;--slate:#3d5b72}
.history-media-caption{background:#f2f6f9;border-bottom:1px solid #dce6ed;padding:8px 0}
.history-media-caption .history-media-note{font-size:11px;line-height:1.55;color:#435a6c;margin:0;max-width:none}
.project-detail .project-dates{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:500px){.project-detail .project-dates{grid-template-columns:1fr}}
/* Mantener los píxeles y el encuadre de las referencias disponibles, sin ampliarlas artificialmente. */
.v3-services .service-media{height:auto;aspect-ratio:760/235}
.v3-services .service-media img{width:100%;height:100%;object-fit:contain;filter:none;transform:none;image-rendering:auto}
.v3-services .service-photo-card:hover .service-media img{transform:none}
.services-hero-picture{opacity:1;filter:none}
.services-hero-picture img,.capability-visual img{filter:none}
@media(max-width:720px){
 .service-intro>.services-hero-picture{position:relative;order:3;width:100%;height:190px;opacity:1;flex-shrink:0;margin-top:6px}
 .services-hero-picture::before{display:none}
 .services-hero-picture img{object-fit:cover;object-position:center 43%}
}
.why-heading>p:last-child,.value-card p,.method-heading>p:last-child,.method-step p,
.services-cards-heading>p,.split-heading>p,.history-timeline-v3 article>p,
.purpose-card p:not(.eyebrow),.values-grid p,.contact-note p,.contact-value-lines p,
.form-notice,.field label .optional,.modal-body>p{color:var(--muted)}
.method-num,.service-index,.contact-value-lines>div>span,.history-timeline-v3 article>strong,
.field label span,.service-intro .eyebrow,.v3-contact .eyebrow{color:var(--slate)}
.service-kicker{color:var(--slate)!important}
.section-v3 h2 em,.service-intro h1 em{color:#3d5b72}
.projects-v3-head .section-intro{color:#26465e}
.field input::placeholder,.field textarea::placeholder{color:#526779;opacity:1}
.orange-stop,.v3-services .scope-mark{color:#b84a0e}
.filter{color:#3d566c}
.form-tag{color:#3d5b72}

/* Inicio: una sola capa uniforme; los archivos audiovisuales no se oscurecen. */
:root{--hero-overlay:rgba(5,27,49,.64)}
.hero-visual,.hero-shade{pointer-events:none}
.v3-hero .hero-shade{background:var(--hero-overlay);background-image:none;animation:none;transform:none;opacity:1}
.v3-hero .hero-photo-reference,.v3-hero #hero-video{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;object-position:50% 50%;filter:none;opacity:1;animation:none;transform:none}
.v3-hero .eyebrow.light,.v3-hero .hero-principles,.v3-hero #visual-label,.v3-hero .motion-toggle{color:#f1f7fc}
.v3-hero .scan-line{display:none}
@media(max-width:640px){.v3-hero .hero-photo-reference,.v3-hero #hero-video{object-position:56% 50%}}
