:root{color-scheme: dark;--bg: #0d0e13;--surface: #15161e;--surface-alt: #181920;--line: #2c2d39;--text: #f5f3fa;--muted: #adabb9;--accent: #ac95ff;--light: #eeeaf6;}*{box-sizing: border-box;}html{scroll-behavior: smooth;scroll-padding-top: 84px;}body{margin: 0;background: var(--bg);color: var(--text);font-family: 'DM Sans', system-ui, Arial, sans-serif;-webkit-font-smoothing: antialiased;}button, a{font: inherit;}button{cursor: pointer;}a{color: inherit;text-decoration: none;}img{display: block;max-width: 100%;}button:focus-visible, a:focus-visible{outline: 2px solid var(--accent);outline-offset: 4px;}::selection{background: #8875d7;color: #fff;}.container{width: min(1180px, calc(100% - 84px));margin-inline: auto;}.skip-link{position: fixed;top: -80px;left: 14px;z-index: 100;padding: 11px 16px;background: white;color: #12131b;}.skip-link:focus{top: 10px;}.site-header{height: 72px;position: sticky;top: 0;z-index: 50;background: rgba(13,14,19,.95);border-bottom: 1px solid #282934;backdrop-filter: blur(16px);}.nav-inner{height: 100%;display: flex;align-items: center;justify-content: space-between;}.logo{display: inline-flex;align-items: center;gap: 9px;}.logo img{width: 37px;height: 37px;object-fit: contain;}.logo-type{display: flex;flex-direction: column;gap: 3px;}.logo-type strong{font-size: 17px;letter-spacing: .15em;line-height: 1;font-weight: 700;}.logo-type span{color: #b59eff;font-size: 7px;letter-spacing: .46em;font-weight: 700;}.main-nav{display: flex;align-items: center;gap: 33px;font-size: 13px;font-weight: 600;}.main-nav > a:not(.nav-contact){color: #c4c1cf;transition: color .18s ease;}.main-nav > a:not(.nav-contact):hover{color: #fff;}.nav-contact{display: inline-flex;align-items: center;gap: 24px;background: #eeeaf7;padding: 12px 18px;border-radius: 7px;color: #18151f;transition: background .18s ease;}.nav-contact:hover{background: #fff;}.menu-button{display: none;}.hero{display: grid;grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);align-items: center;gap: 55px;min-height: 515px;padding-top: 52px;padding-bottom: 56px;}.hero-copy{min-width: 0;}.eyebrow{font-size: 12px;font-weight: 700;color: #c0b1ff;margin: 0 0 20px;}.hero h1{font-size: clamp(46px, 4.75vw, 64px);font-weight: 700;letter-spacing: -.057em;line-height: 1.095;max-width: 560px;margin: 0 0 23px;}.hero h1 span{color: #b29bff;}.hero-description{max-width: 495px;font-size: 16px;line-height: 1.7;color: #b7b5c2;margin: 0;}.hero-actions{display: flex;align-items: center;flex-wrap: wrap;gap: 25px;margin: 29px 0 0;}.button{display: inline-flex;align-items: center;justify-content: space-between;gap: 24px;padding: 12px 19px;min-height: 46px;border-radius: 7px;font-size: 13px;font-weight: 700;transition: background .18s, transform .18s;}.button:hover{transform: translateY(-2px);}.button-primary{color: #191323;background: #af97ff;}.button-primary:hover{background: #c5b6ff;}.text-link{font-size: 13px;font-weight: 700;border-bottom: 1px solid #817b8a;padding: 10px 0;}.text-link:hover{border-color: #e5dfff;}.text-link span{margin-left: 9px;}.hero-visual{display: block;width: 100%;border: 1px solid #3b3b4c;background: #181924;text-align: left;padding: 9px;border-radius: 14px;box-shadow: 0 22px 45px rgba(0,0,0,.18);transition: border-color .2s, transform .2s;overflow: hidden;}.hero-visual:hover{border-color: #8176b4;transform: translateY(-2px);}.hero-image{display: block;aspect-ratio: 1.57;overflow: hidden;border-radius: 7px;background: #f2f3f5;}.hero-image img{width: 100%;height: 100%;object-fit: cover;object-position: top;}.hero-visual-caption{display: flex;align-items: center;justify-content: space-between;padding: 14px 6px 4px 8px;}.hero-visual-caption strong{font-size: 14px;display: block;}.hero-visual-caption small{font-size: 12px;color: #aaa8b7;display: block;margin-top: 3px;}.hero-open{display: grid;place-items: center;width: 31px;height: 31px;border: 1px solid #515064;border-radius: 7px;font-size: 16px;}.section{padding: 66px 0;}.services-section{border-top: 1px solid var(--line);border-bottom: 1px solid var(--line);background: #111219;}.section-label{color: #b69cff;font-size: 12px;font-weight: 700;margin: 0 0 12px;}.section-intro{display: flex;align-items: end;justify-content: space-between;gap: 50px;margin-bottom: 28px;}.section-intro h2{font-size: clamp(29px, 3.2vw, 40px);line-height: 1.18;font-weight: 700;letter-spacing: -.045em;max-width: 620px;margin: 0;}.section-intro > p{font-size: 14px;line-height: 1.65;color: #aaa9b9;max-width: 360px;margin: 0 0 3px;}.service-grid{display: grid;grid-template-columns: repeat(2, minmax(0,1fr));border-top: 1px solid var(--line);}.service{display: flex;align-items: flex-start;min-width: 0;gap: 17px;padding: 24px 28px 23px 0;border-bottom: 1px solid var(--line);}.service:nth-child(2n){padding-left: 29px;border-left: 1px solid var(--line);}.service-icon{width: 40px;height: 40px;display: grid;place-items: center;flex: 0 0 auto;background: #252139;border: 1px solid #514568;border-radius: 10px;}.service-icon svg{width: 20px;height: 20px;stroke: #bbabff;stroke-width: 1.4;stroke-linecap: round;stroke-linejoin: round;fill: none;}.service h3{margin: 1px 0 6px;font-size: 16px;letter-spacing: -.015em;}.service p{margin: 0;max-width: 400px;font-size: 13px;line-height: 1.62;color: #aaa8b7;}.projects-section{padding-top: 74px;padding-bottom: 58px;}.projects-intro{margin-bottom: 31px;}.featured-list{display: grid;gap: 17px;}.feature-project{background: #171820;border: 1px solid #333342;border-radius: 14px;display: grid;grid-template-columns: minmax(0,.86fr) minmax(0,1.14fr);min-height: 326px;overflow: hidden;}.feature-copy{padding: 42px 33px 34px 39px;display: flex;flex-direction: column;align-items: flex-start;justify-content: center;min-width: 0;}.feature-type{margin: 0 0 14px;color: #bbb0e9;font-size: 12px;font-weight: 700;}.feature-copy h3{margin: 0 0 14px;font-size: clamp(29px, 3vw, 38px);line-height: 1.13;letter-spacing: -.04em;}.feature-copy > p:not(.feature-type){margin: 0;font-size: 15px;line-height: 1.67;color: #b3b1be;max-width: 380px;}.feature-actions{display: flex;align-items: center;flex-wrap: wrap;column-gap: 27px;row-gap: 10px;margin-top: 24px;}.project-action, .simple-link{display: inline-flex;align-items: center;gap: 10px;border: 0;border-bottom: 1px solid #ad9aec;background: none;border-radius: 0;color: #d1c6ff;cursor: pointer;font-size: 13px;font-weight: 700;padding: 1px 0 5px;}.project-action:hover, .simple-link:hover{color: #fff;border-color: #fff;}.project-action.subtle{border-color: #686477;color: #c1bdcd;}.feature-preview{position: relative;border: 0;padding: 22px 0 0 16px;overflow: hidden;display: flex;align-items: flex-start;justify-content: flex-start;min-width: 0;min-height: 0;background: linear-gradient(125deg, #292535, #20212b);}.feature-preview img{border: 1px solid rgba(255,255,255,.13);border-bottom: none;border-radius: 10px 0 0 0;width: calc(100% + 12px);height: calc(100% + 12px);object-fit: cover;object-position: left top;box-shadow: -12px 0 30px rgba(0,0,0,.13);transition: transform .25s ease;}.feature-preview:hover img{transform: translateY(-3px);}.salud-preview{background: #1e3035;}.asc-preview{background: #292838;}.preview-control{position: absolute;right: 20px;bottom: 19px;display: grid;place-items: center;border-radius: 8px;width: 36px;height: 36px;background: #15151fcc;border: 1px solid #777083;color: #fff;font-size: 17px;}.feature-ascensores .feature-copy{grid-column: 2;grid-row: 1;}.feature-ascensores .feature-preview{grid-column: 1;grid-row: 1;padding: 22px 16px 0 0;}.feature-ascensores .feature-preview img{border-radius: 0 10px 0 0;object-position: top left;}.more-projects-heading{display: flex;justify-content: space-between;align-items: baseline;gap: 25px;padding: 45px 0 19px;}.more-projects-heading h3{font-size: 22px;letter-spacing: -.035em;margin: 0;}.more-projects-heading p{margin: 0;font-size: 13px;color: #9e9aa9;}.other-grid{display: grid;grid-template-columns: repeat(12,minmax(0,1fr));gap: 33px 22px;}.compact{grid-column: span 4;min-width: 0;}.compact:nth-child(n+4){grid-column: span 6;}.project-image{display: block;position: relative;width: 100%;aspect-ratio: 1.62;padding: 0;overflow: hidden;border: 1px solid #353443;background: #191a24;border-radius: 10px;transition: border-color .18s, transform .18s;}.project-image:hover{border-color: #7f70aa;transform: translateY(-2px);}.project-image > img{width: 100%;height: 100%;object-fit: cover;object-position: top left;}.image-arrow{position: absolute;right: 13px;bottom: 13px;width: 31px;height: 31px;display: grid;place-items: center;background: #17161fe0;border: 1px solid #5d5667;border-radius: 7px;font-size: 15px;}.compact .project-info{padding: 14px 1px 0;}.compact h3{font-size: 19px;letter-spacing: -.025em;margin: 0;}.compact .project-info p{color: #aaa8b5;line-height: 1.6;font-size: 13px;margin: 7px 0 10px;}.compact .mobile-preview{display: flex;align-items: flex-end;justify-content: center;gap: clamp(10px,2vw,26px);padding: 16px 18px 0;background: #211d30;}.compact .mobile-preview > img{width: auto;height: 116%;max-width: 40%;object-fit: contain;object-position: bottom;flex: 0 1 auto;box-shadow: 0 8px 28px #0004;border-radius: 9px 9px 0 0;}.compact .mobile-preview > img:nth-of-type(2){height: 104%;}.compact .aurel-preview{background: #242329;}.compact .oficina-preview{background: #162935;}.contact-section{padding: 22px 0 64px;}.contact-panel{background: #eeeaf5;color: #1d1927;border-radius: 13px;padding: 39px 46px;display: flex;align-items: center;justify-content: space-between;gap: 35px;}.contact-panel .section-label{color: #7158af;}.contact-copy h2{max-width: 500px;font-size: clamp(29px,3.2vw,38px);line-height: 1.12;letter-spacing: -.045em;margin: 0 0 12px;}.contact-copy p:not(.section-label){max-width: 510px;color: #5c5669;font-size: 14px;line-height: 1.65;margin: 0;}.contact-links{display: flex;flex-direction: column;align-items: flex-start;gap: 16px;flex: none;}.button-dark{min-width: 235px;background: #211d2d;color: #fff;}.button-dark:hover{background: #3b324e;}.contact-email{color: #5a4f69;border-bottom: 1px solid #b8accc;padding-bottom: 5px;font-size: 13px;}.footer{border-top: 1px solid var(--line);padding: 23px 0 29px;}.footer-inner{display: flex;align-items: center;justify-content: space-between;gap: 18px;font-size: 12px;color: #a09cab;}.footer-brand{font-size: 13px;font-weight: 700;letter-spacing: .16em;color: #f5f3fa;}.gallery-dialog{position: fixed;inset: 0;max-width: min(1050px, calc(100vw - 32px));max-height: min(870px, calc(100dvh - 30px));width: 100%;padding: 0;overflow: auto;background: #16171f;border: 1px solid #514c60;border-radius: 14px;color: var(--text);box-shadow: 0 28px 80px #000a;}.gallery-dialog::backdrop{background: rgba(0,0,0,.84);backdrop-filter: blur(5px);}.gallery-shell{padding: 21px;}.gallery-header{display: flex;align-items: flex-start;justify-content: space-between;gap: 15px;padding-bottom: 17px;}.gallery-header h2{margin: 0;font-size: 21px;letter-spacing: -.025em;}.gallery-header p{font-size: 13px;color: #a8a4b4;margin: 7px 0 0;}.gallery-close{width: 34px;height: 34px;border-radius: 8px;background: #2c2a38;border: 1px solid #575266;color: #fff;}.gallery-image-wrap{height: min(54vh, 520px);border-radius: 8px;background: #23242d;overflow: hidden;display: flex;justify-content: center;align-items: center;}.gallery-image-wrap img{width: 100%;height: 100%;object-fit: contain;}.gallery-image-wrap.mobile-shot img{width: auto;max-width: 100%;}.gallery-controls{display: flex;align-items: center;justify-content: space-between;gap: 10px;padding: 13px 0;color: #c0bacb;font-size: 12px;}.gallery-controls button{border: 0;background: none;font-weight: 700;color: #eee9f7;font-size: 13px;padding: 6px 0;}.gallery-thumbs{display: flex;gap: 8px;overflow-x: auto;padding: 3px 0 8px;overscroll-behavior-inline: contain;}.gallery-thumbs button{flex: none;width: 87px;height: 56px;border-radius: 6px;padding: 0;overflow: hidden;border: 2px solid transparent;background: #242532;}.gallery-thumbs button.active{border-color: #b4a0ff;}.gallery-thumbs button img{width: 100%;height: 100%;object-fit: cover;object-position: top left;}.gallery-footer{display: flex;justify-content: space-between;gap: 12px;padding-top: 12px;}.gallery-footer a{color: #d1c4ff;font-size: 13px;}.gallery-footer a:hover{color: #fff;}@media (max-width: 1100px){.container{width: calc(100% - 70px);}.hero{gap: 35px;}.hero h1{font-size: clamp(43px,5vw,57px);}.feature-project{min-height: 301px;}.feature-copy{padding: 31px;}}@media (max-width: 800px){.container{width: calc(100% - 44px);}.site-header{height: 67px;}.hero{grid-template-columns: 1fr;gap: 32px;min-height: 0;padding-top: 45px;padding-bottom: 46px;}.hero-copy{max-width: 680px;}.hero h1{max-width: 700px;font-size: clamp(42px, 7vw, 58px);}.hero-description{max-width: 620px;}.hero-visual{width: min(100%,680px);}.section{padding: 53px 0;}.section-intro{align-items: start;gap: 20px;}.section-intro > p{max-width: 280px;}.feature-project{grid-template-columns: minmax(0,.82fr) minmax(0,1.18fr);min-height: 280px;}.feature-copy{padding: 26px 22px;}.feature-copy h3{font-size: 29px;}.feature-preview{padding-top: 16px;}.feature-ascensores .feature-preview{padding-top: 16px;}.feature-actions{gap: 13px;}.contact-panel{padding: 30px 32px;}.other-grid{gap: 25px 15px;}.compact{grid-column: span 6;}.compact:nth-child(n+4){grid-column: span 6;}.compact:nth-child(5){grid-column: 4 / span 6;}}@media (max-width: 600px){.container{width: calc(100% - 36px);}.site-header{height: 65px;}.logo img{height: 33px;width: 33px;}.logo-type strong{font-size: 15px;}.menu-button{display: flex;flex-direction: column;align-items: center;justify-content: center;gap: 5px;width: 39px;height: 39px;padding: 7px;border: 1px solid #42404d;background: #191a22;border-radius: 7px;}.menu-button span{height: 1.5px;width: 19px;background: white;}.main-nav{display: none;position: absolute;left: 0;right: 0;top: 65px;background: #14151d;border-bottom: 1px solid #383543;padding: 15px 18px 19px;flex-direction: column;gap: 0;align-items: stretch;}.main-nav.open{display: flex;}.main-nav > a:not(.nav-contact){display: block;padding: 13px 4px;}.nav-contact{margin-top: 8px;justify-content: space-between;}.hero{padding-top: 37px;padding-bottom: 42px;gap: 28px;}.eyebrow{font-size: 11px;margin-bottom: 16px;}.hero h1{font-size: clamp(40px, 10vw, 50px);line-height: 1.1;margin-bottom: 16px;}.hero-description{font-size: 15px;line-height: 1.62;}.hero-actions{margin-top: 22px;gap: 19px;}.hero-visual{padding: 7px;}.hero-visual-caption{padding: 12px 5px 3px;}.hero-visual-caption strong{font-size: 13px;}.hero-visual-caption small{font-size: 11px;}.section{padding: 49px 0;}.section-intro{display: block;margin-bottom: 23px;}.section-intro h2{font-size: 32px;}.section-intro > p{max-width: 490px;margin-top: 12px;font-size: 13px;}.service-grid{grid-template-columns: 1fr;}.service{padding: 19px 0;}.service:nth-child(2n){border-left: 0;padding-left: 0;}.service-icon{width: 38px;height: 38px;}.projects-section{padding-top: 52px;}.featured-list{gap: 17px;}.feature-project{display: flex;flex-direction: column-reverse;min-height: 0;}.feature-copy{padding: 23px 23px 27px;}.feature-copy h3{font-size: 28px;margin-bottom: 8px;}.feature-type{margin-bottom: 10px;}.feature-copy > p:not(.feature-type){font-size: 14px;}.feature-actions{margin-top: 16px;}.feature-preview, .feature-ascensores .feature-preview{width: 100%;flex: none;height: 245px;min-height: 0;padding: 13px 0 0 13px;}.feature-preview img, .feature-ascensores .feature-preview img{border-radius: 8px 0 0 0;}.more-projects-heading{display: block;padding: 38px 0 19px;}.more-projects-heading p{margin-top: 7px;}.other-grid{grid-template-columns: 1fr;gap: 28px;}.compact, .compact:nth-child(n+4), .compact:nth-child(5){grid-column: 1;}.compact .project-image{aspect-ratio: 1.7;}.compact .mobile-preview img{max-width: 35%;}.contact-section{padding: 11px 0 45px;}.contact-panel{padding: 29px 23px;display: block;}.contact-copy h2{font-size: 30px;}.contact-links{margin-top: 22px;gap: 15px;}.footer-inner{flex-wrap: wrap;gap: 9px;}.footer-inner span:last-child{width: 100%;}.gallery-shell{padding: 14px;}.gallery-image-wrap{height: min(53vh,480px);}.gallery-thumbs button{width: 70px;height: 48px;}.gallery-footer{flex-wrap: wrap;}}@media (prefers-reduced-motion: reduce){html{scroll-behavior: auto;}*, *::before, *::after{transition-duration: 0s !important;animation-duration: 0s !important;}}