@font-face {font-family: "Geist";src: url("../fonts/Geist-Regular.woff2") format("woff2");font-style: normal;font-weight: 400;font-display: swap;}
@font-face {font-family: "Geist";src: url("../fonts/Geist-Medium.woff2") format("woff2");font-style: normal;font-weight: 500;font-display: swap;}
@font-face {font-family: "Geist";src: url("../fonts/Geist-SemiBold.woff2") format("woff2");font-style: normal;font-weight: 600;font-display: swap;}
@font-face {font-family: "Geist Mono";src: url("../fonts/GeistMono-Regular.woff2") format("woff2");font-style: normal;font-weight: 400;font-display: swap;}
@font-face {font-family: "Geist Mono";src: url("../fonts/GeistMono-Medium.woff2") format("woff2");font-style: normal;font-weight: 500;font-display: swap;}
:root {--font-sans: "Geist", "Segoe UI", Arial, sans-serif;--font-mono: "Geist Mono", Consolas, monospace;--content-max: 1320px;--color-bg: #fdf9f2;--color-bg-rgb: 253, 249, 242;--color-surface: #f8f1e6;--color-surface-rgb: 248, 241, 230;--color-tint: #fcf6ec;--color-card: #fffefb;--color-dark: #2e2620;--color-dark-surface: #3a312a;--color-dark-surface-rgb: 58, 49, 42;--color-text: #4f4339;--color-muted: #6b5d4f;--color-footer: #24211e;--color-footer-rgb: 36, 33, 30;--color-brand: #b9853a;--color-brand-hover: #94652a;--color-brand-light: #d9b978;--color-border: rgba(79, 67, 57, 0.2);--color-border-strong: rgba(79, 67, 57, 0.38);--color-focus: #165fc6;--color-success: #27613b;--color-error: #8c2f25;--shadow-sm: 0 10px 28px rgba(46, 38, 32, 0.08);--shadow-lg: 0 22px 52px rgba(46, 38, 32, 0.16);--header-height: 70px;--radius-sm: 8px;--radius: 14px;--radius-lg: 20px;--section-space: clamp(72px, 8vw, 112px);}
*, *::before, *::after {box-sizing: border-box;}
html {max-width: 100%;scroll-behavior: smooth;background: var(--color-bg);}
body {min-width: 0;max-width: 100%;margin: 0;overflow-x: clip;color: var(--color-text);background: var(--color-bg);font-family: var(--font-sans);font-size: 16px;line-height: 1.6;-webkit-font-smoothing: antialiased;text-rendering: optimizeLegibility;}
body.menu-open, body.lightbox-open {overflow: hidden;}
[hidden] {display: none !important;}
img {display: block;max-width: 100%;height: auto;}
button, input, select, textarea {font: inherit;}
button, a {-webkit-tap-highlight-color: transparent;}
a {color: inherit;text-decoration: none;}
p, figure {margin: 0;}
h1, h2, h3, h4 {margin: 0;color: var(--color-dark);font-weight: 600;line-height: 1.08;letter-spacing: -0.025em;text-wrap: balance;}
strong, b {font-weight: 600;}
:focus-visible {outline: 3px solid var(--color-focus);outline-offset: 4px;}
.skip-link {position: fixed;top: 10px;left: 10px;z-index: 500;padding: 10px 14px;border-radius: var(--radius-sm);color: #fff;background: var(--color-footer);transform: translateY(-160%);transition: transform 160ms ease;}
.skip-link:focus {transform: translateY(0);}
.container {width: min(calc(100% - 48px), var(--content-max));margin-inline: auto;}
.section {padding-block: var(--section-space);scroll-margin-top: calc(var(--header-height) + 16px);}
.eyebrow {display: inline-flex;align-items: center;color: var(--color-brand-hover);font-family: var(--font-mono);font-size: 13px;font-weight: 500;letter-spacing: 0.14em;text-transform: uppercase;}
.eyebrow::before {display: none;content: none;}
.section-heading {max-width: 760px;}
.section-heading h2 {margin-top: 16px;font-size: clamp(36px, 4.4vw, 56px);}
.section-heading p {max-width: 660px;margin-top: 18px;color: var(--color-muted);font-size: clamp(16px, 1.5vw, 19px);}
.button {display: inline-flex;min-height: 46px;align-items: center;justify-content: center;gap: 10px;padding: 11px 20px;border: 1px solid transparent;border-radius: var(--radius-sm);cursor: pointer;font-weight: 600;line-height: 1.25;text-align: center;transition: color 180ms ease, background-color 180ms ease, border-color 180ms ease,box-shadow 180ms ease, transform 180ms ease;}
.button:hover {transform: translateY(-2px);}
.button-primary {color: var(--color-dark);background: var(--color-brand);box-shadow: 0 8px 18px rgba(148, 101, 42, 0.24);}
.button-primary:hover {color: #fff;background: var(--color-brand-hover);}
.button-secondary {border-color: var(--color-border-strong);color: var(--color-dark);background: transparent;}
.button-secondary:hover {border-color: var(--color-brand-hover);color: var(--color-brand-hover);}
.button-light {color: var(--color-dark);background: var(--color-bg);}
.button-light:hover {background: #fff;}
.button[disabled], .button[aria-disabled="true"] {cursor: not-allowed;opacity: 0.58;transform: none;}
.button-icon {width: 17px;height: 17px;flex: 0 0 auto;fill: currentColor;}
.icon-sprite {position: absolute;width: 0;height: 0;overflow: hidden;}
.motion-ready.can-animate [data-reveal] {transform: translateY(18px);transition: transform 650ms cubic-bezier(0.22, 1, 0.36, 1);}
.motion-ready.can-animate [data-reveal].is-visible {transform: none;}
.site-header {position: sticky;top: 0;z-index: 100;min-height: var(--header-height);border-bottom: 1px solid transparent;background: rgba(var(--color-surface-rgb), 0.9);backdrop-filter: blur(14px) saturate(135%);transition: border-color 180ms ease, box-shadow 180ms ease;}
.site-header.is-scrolled {border-bottom-color: var(--color-border);box-shadow: 0 8px 24px rgba(46, 38, 32, 0.1);}
.header-inner {display: flex;min-height: var(--header-height);align-items: center;justify-content: space-between;gap: 24px;}
.brand, .footer-brand {display: inline-flex;align-items: center;gap: 8px;border-radius: 6px;}
.brand-symbol {width: 31px;height: 27px;}
.brand-wordmark {width: 104px;height: 46px;object-fit: contain;}
.site-header .brand-symbol {width: 48px;height: 41px;}
.site-header .brand-wordmark {width: 152px;height: 67px;}
.desktop-nav {display: flex;align-items: center;gap: clamp(16px, 2vw, 28px);font-size: 13px;font-weight: 500;}
.desktop-nav a:not(.button) {position: relative;padding-block: 8px;}
.desktop-nav a:not(.button)::after {position: absolute;right: 0;bottom: 3px;left: 0;height: 1px;background: var(--color-brand);content: "";transform: scaleX(0);transform-origin: left;transition: transform 180ms ease;}
.desktop-nav a:hover::after,.desktop-nav a[aria-current="location"]::after {transform: scaleX(1);}
.desktop-nav .button {min-height: 40px;padding: 9px 17px;}
.menu-button {display: none;width: 44px;height: 44px;align-items: center;justify-content: center;border: 1px solid var(--color-border-strong);border-radius: var(--radius-sm);color: var(--color-dark);background: rgba(var(--color-bg-rgb), 0.72);cursor: pointer;}
.menu-icon {width: 22px;height: 22px;fill: currentColor;}
.menu-icon-x {display: none;}
.menu-button[aria-expanded="true"] .menu-icon-list {display: none;}
.menu-button[aria-expanded="true"] .menu-icon-x {display: block;}
.mobile-menu {position: fixed;inset: var(--header-height) 0 auto;z-index: 95;max-height: calc(100svh - var(--header-height));overflow-y: auto;border-block: 1px solid var(--color-border);background: var(--color-bg);box-shadow: var(--shadow-lg);}
.mobile-menu-inner {display: grid;padding-block: 12px 24px;}
.mobile-menu a {padding: 13px 2px;border-bottom: 1px solid var(--color-border);font-weight: 500;}
.mobile-menu .button {margin-top: 16px;border-bottom: 0;}
.hero {display: grid;min-height: min(680px, calc(100svh - var(--header-height)));grid-template-columns: repeat(2, minmax(0, 1fr));background: var(--color-bg);scroll-margin-top: var(--header-height);}
.hero-copy {display: flex;min-width: 0;align-items: center;padding: clamp(54px, 6vw, 88px) clamp(28px, 5vw, 76px);}
.hero-copy-inner {width: 100%;max-width: 580px;margin-left: auto;}
.hero h1 {max-width: 620px;margin-top: 20px;font-size: clamp(44px, 5vw, 68px);}
.hero h1 em {color: var(--color-brand);font-style: normal;}
.hero-lead {max-width: 570px;margin-top: 24px;color: var(--color-muted);font-size: clamp(17px, 1.45vw, 20px);}
.hero-actions {display: flex;flex-wrap: wrap;gap: 12px;margin-top: 32px;}
.concept-figure {position: relative;overflow: hidden;background: var(--color-surface);}
.hero-figure {min-height: 600px;}
.hero-figure picture, .hero-figure img {width: 100%;height: 100%;}
.hero-figure img {object-fit: cover;}
.concept-caption {position: absolute;right: 18px;bottom: 18px;left: 18px;width: fit-content;max-width: calc(100% - 36px);padding: 8px 11px;border: 1px solid rgba(255, 255, 255, 0.24);border-radius: 6px;color: #fff;background: rgba(var(--color-footer-rgb), 0.76);font-family: var(--font-mono);font-size: 10px;line-height: 1.45;backdrop-filter: blur(8px);}
.trust {color: #fff;background: var(--color-dark-surface);}
.trust-grid {display: grid;grid-template-columns: repeat(4, minmax(0, 1fr));}
.trust-item {display: flex;min-width: 0;align-items: flex-start;gap: 16px;padding: 34px 28px;border-right: 1px solid rgba(255, 255, 255, 0.1);}
.trust-item:last-child {border-right: 0;}
.trust-number, .process-step > span, .capability-card > span {color: var(--color-brand-light);font-family: var(--font-mono);font-size: 11px;letter-spacing: 0.06em;}
.marker-icon {display: block;width: 22px;height: 22px;flex: 0 0 auto;color: var(--color-brand-light);fill: currentColor;}
.trust-item .marker-icon {width: 26px;height: 26px;margin-top: 2px;}
.trust-item strong {display: block;color: #fff;font-size: 16px;line-height: 1.3;}
.trust-item p {margin-top: 6px;color: rgba(255, 255, 255, 0.7);font-size: 13px;line-height: 1.45;}
.philosophy {background: var(--color-surface);}
.philosophy-layout {display: grid;grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);align-items: stretch;gap: clamp(40px, 7vw, 92px);}
.philosophy-figure {min-height: 610px;border-radius: var(--radius-lg);}
.philosophy-figure picture, .philosophy-figure img {width: 100%;height: 100%;}
.philosophy-figure img {object-fit: cover;}
.philosophy-content {display: flex;min-width: 0;flex-direction: column;justify-content: center;}
.philosophy-content .section-heading h2 {font-size: clamp(34px, 3.55vw, 49px);}
.home-highlight {color: var(--color-brand-hover);}
.philosophy-principles {margin-top: 34px;border-top: 1px solid var(--color-border);}
.philosophy-principles article {display: grid;grid-template-columns: 44px minmax(0, 1fr);gap: 18px;padding-block: 20px;border-bottom: 1px solid var(--color-border);}
.philosophy-principles .marker-icon {width: 26px;height: 26px;margin-top: 1px;color: var(--color-brand);}
.philosophy-principles h3 {font-size: 20px;}
.philosophy-principles p {margin-top: 7px;color: var(--color-muted);}
.optional {color: var(--color-muted);font-weight: 400;}
.projects {background: var(--color-bg);}
.projects-heading {display: flex;align-items: end;justify-content: space-between;gap: 28px;}
.projects-heading .section-heading {max-width: 720px;}
.projects-note {display: inline-flex;flex: 0 0 auto;align-items: center;gap: 9px;padding-block: 8px;color: var(--color-brand-hover);font-weight: 600;}
.projects-note:hover {color: var(--color-brand);}
.projects-groups {display: grid;gap: clamp(92px, 9vw, 132px);margin-top: clamp(58px, 6vw, 80px);}
.project-group {min-width: 0;}
.project-group-heading {display: grid;grid-template-columns: auto minmax(0, 1fr) auto;align-items: end;gap: 10px 20px;}
.project-group-number {color: var(--color-brand-hover);font-family: var(--font-mono);font-size: clamp(34px, 3.4vw, 48px);font-weight: 500;letter-spacing: -0.05em;line-height: 0.9;}
.project-group-title {font-size: clamp(32px, 3.2vw, 44px);}
.project-group-count {align-self: end;padding-bottom: 2px;color: var(--color-muted);font-family: var(--font-mono);font-size: 12px;font-weight: 500;letter-spacing: 0.09em;line-height: 1.3;text-transform: uppercase;white-space: nowrap;}
.projects-mosaic {display: grid;align-items: stretch;gap: clamp(20px, 2vw, 28px);margin-top: clamp(30px, 3vw, 42px);}
.projects-mosaic--exteriors {grid-template-columns: repeat(6, minmax(0, 1fr));}
.projects-mosaic--exteriors .project-card {grid-column: span 2;}
.projects-mosaic--exteriors .project-card:nth-child(n + 4) {grid-column: span 3;aspect-ratio: 16 / 10;}
.projects-mosaic--interiors {grid-template-columns: repeat(6, minmax(0, 1fr));}
.projects-mosaic--interiors .project-card {grid-column: span 2;}
.projects-mosaic--interiors .project-card--landscape {grid-column: span 3;aspect-ratio: 16 / 10;}
.project-card {position: relative;display: block;min-width: 0;align-self: stretch;aspect-ratio: 4 / 3;overflow: hidden;border: 0;border-radius: 5px;color: #fff;background: var(--color-tint);box-shadow: none;cursor: zoom-in;}
.project-card::after {content: "";position: absolute;inset: auto 0 0;z-index: 1;height: 78%;background: linear-gradient(180deg, rgba(20, 18, 16, 0) 0%, rgba(20, 18, 16, 0.5) 46%, rgba(20, 18, 16, 0.9) 100%);pointer-events: none;}
.project-card picture {display: block;width: 100%;height: 100%;overflow: hidden;border-radius: inherit;background: var(--color-tint);}
.project-card img {display: block;width: 100%;height: 100%;object-fit: cover;transition: opacity 180ms ease;}
.project-zoom {position: absolute;top: 14px;right: 14px;z-index: 3;display: grid;width: 38px;height: 38px;place-items: center;border: 1px solid rgba(255, 255, 255, 0.34);border-radius: 50%;color: #fff;background: rgba(var(--color-footer-rgb), 0.5);backdrop-filter: blur(10px);transition: background-color 180ms ease, border-color 180ms ease, transform 180ms ease;}
.project-zoom-icon {width: 19px;height: 19px;fill: none;stroke: currentColor;stroke-linecap: round;stroke-linejoin: round;stroke-width: 2;}
.project-expand-icon {position: absolute;}
.project-expand-arrow--light {stroke: #fff;}
.project-expand-arrow--brand {stroke: var(--color-brand);}
.project-card:is(:hover, :focus-visible) .project-zoom {border-color: rgba(217, 185, 120, 0.78);background: rgba(var(--color-footer-rgb), 0.72);transform: translate(1px, -1px);}
.project-copy {position: absolute;inset: auto 1px 1px;z-index: 2;display: grid;grid-template-columns: 1fr;align-items: end;gap: 10px;padding: 0 clamp(20px, 2vw, 24px) clamp(18px, 2vw, 22px);color: #fff;}
.project-index {display: inline-flex;width: fit-content;align-items: center;border-radius: 3px;padding: 5px 8px 4px;background: var(--color-brand-hover);color: #fff;font-family: var(--font-mono);font-size: 12px;font-weight: 600;letter-spacing: 0.08em;line-height: 1;text-transform: uppercase;}
.project-copy h4 {max-width: 18ch;margin: 0;color: #fff;font-size: clamp(22px, 1.8vw, 28px);line-height: 1.08;text-shadow: 0 1px 16px rgba(0, 0, 0, 0.42);transition: color 180ms ease;}
.project-meta {display: flex;flex-wrap: wrap;align-items: center;color: rgba(255, 255, 255, 0.84);font-family: var(--font-mono);font-size: 11px;font-weight: 500;letter-spacing: 0.02em;line-height: 1.35;text-shadow: 0 1px 12px rgba(0, 0, 0, 0.42);}
.project-meta span {display: inline-flex;align-items: center;white-space: nowrap;}
.project-meta span:not(:last-child)::after {margin-inline: 8px;color: rgba(255, 255, 255, 0.52);content: "·";}
.project-card:is(:hover, :focus-visible) img {opacity: 0.92;}
.project-card:is(:hover, :focus-visible) h4 {color: #fff;}
.project-lightbox {width: min(calc(100% - 32px), 1180px);max-height: min(920px, calc(100dvh - 32px));padding: 0;border: 0;border-radius: 8px;color: #fff;background: transparent;box-shadow: none;}
.project-lightbox::backdrop {background: rgba(var(--color-footer-rgb), 0.86);backdrop-filter: blur(6px);}
.project-lightbox-inner {position: relative;display: grid;max-height: min(920px, calc(100dvh - 32px));}
.project-lightbox-close {position: absolute;top: 14px;right: 14px;z-index: 2;display: grid;width: 44px;height: 44px;place-items: center;border: 1px solid rgba(255, 255, 255, 0.28);border-radius: 50%;color: #fff;background: rgba(var(--color-footer-rgb), 0.72);cursor: pointer;backdrop-filter: blur(10px);}
.project-lightbox-close svg {width: 20px;height: 20px;fill: currentColor;}
.project-lightbox-figure {position: relative;display: grid;max-height: inherit;overflow: hidden;border-radius: 8px;background: var(--color-footer);}
.project-lightbox-blur {position: absolute;inset: -30px;background-size: cover;background-position: center;filter: blur(24px) brightness(0.8);pointer-events: none;}
.project-lightbox-image {position: relative;width: 100%;height: min(78dvh, 760px);max-height: calc(100dvh - 32px);object-fit: contain;background: transparent;}
.project-lightbox-caption {position: absolute;right: 0;bottom: 0;left: 0;display: grid;gap: 8px;padding: 70px clamp(20px, 4vw, 40px) clamp(20px, 3vw, 30px);background: linear-gradient(180deg, rgba(20, 18, 16, 0), rgba(20, 18, 16, 0.9));pointer-events: none;}
.project-lightbox-caption span {display: inline-flex;width: fit-content;border-radius: 3px;padding: 5px 8px 4px;background: var(--color-brand-hover);font-family: var(--font-mono);font-size: 12px;font-weight: 600;letter-spacing: 0.08em;line-height: 1;text-transform: uppercase;}
.project-lightbox-caption h2 {max-width: 18ch;color: #fff;font-size: clamp(28px, 4vw, 50px);}
.project-lightbox-caption p {color: rgba(255, 255, 255, 0.82);font-family: var(--font-mono);font-size: 12px;font-weight: 500;letter-spacing: 0.03em;text-transform: uppercase;}
#retos {background: var(--color-bg);}
#retos .section-heading {max-width: 760px;}
.capabilities-grid {display: grid;grid-template-columns: repeat(3, minmax(0, 1fr));gap: 18px;margin-top: 44px;}
.challenges-grid {grid-template-columns: repeat(2, minmax(0, 1fr));gap: 0 44px;}
.capability-card {min-width: 0;padding: 30px;border: 1px solid var(--color-border);border-radius: var(--radius);background: rgba(255, 255, 255, 0.26);transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;}
.capability-card:hover {border-color: var(--color-brand);box-shadow: var(--shadow-sm);transform: translateY(-3px);}
.capability-card > span {color: var(--color-brand-hover);font-size: 13px;}
.capability-card h3 {margin-top: 18px;font-size: 23px;}
.capability-card p {margin-top: 12px;color: var(--color-muted);}
.challenges-grid .capability-card {display: grid;min-height: 0;grid-template-columns: 42px minmax(0, 1fr);grid-template-areas: "num title" ". copy";gap: 8px 16px;padding: 26px 0;border: 0;border-top: 1px solid var(--color-border);border-radius: 0;background: transparent;}
.challenges-grid .capability-card:hover {box-shadow: none;transform: none;}
.num {display: grid;width: 30px;height: 30px;align-items: center;justify-content: center;border: 1.5px solid var(--color-brand);border-radius: 50%;color: var(--color-brand);font-family: var(--font-mono);font-size: 14px;font-weight: 500;letter-spacing: 0;}
.challenges-grid .num {display: block;width: 30px;height: auto;grid-area: num;margin-top: 0;padding-top: 1px;border: 0;border-radius: 0;background: transparent;font-size: 15px;line-height: 1.6;}
.challenges-grid h3 {grid-area: title;margin: 0;font-size: 19px;}
.challenges-grid p {grid-area: copy;margin: 0;font-size: 15px;}
.process {background: var(--color-bg);}
#servicio {background: var(--color-surface);}
.process-layout {display: grid;grid-template-columns: minmax(0, 0.78fr) minmax(0, 1.22fr);gap: clamp(44px, 7vw, 92px);align-items: start;}
.process-intro h2 {margin-top: 16px;font-size: clamp(36px, 4.2vw, 54px);}
.process-intro p {margin-top: 18px;color: var(--color-muted);font-size: 18px;}
.process-intro .button {margin-top: 26px;}
.process-steps {display: grid;}
.process-step {display: grid;grid-template-columns: 58px minmax(0, 1fr);gap: 18px;padding-block: 24px;border-top: 1px solid var(--color-border);}
.process-step:last-of-type {border-bottom: 1px solid var(--color-border);}
.process-step h3 {font-size: 22px;}
.process-step p {margin-top: 7px;color: var(--color-muted);}
#servicio .process-layout {display: block;}
#servicio .process-intro {max-width: 760px;}
#servicio .process-steps {grid-template-columns: repeat(3, minmax(0, 1fr));margin-top: 44px;overflow: hidden;border: 1px solid var(--color-border);border-radius: var(--radius);background: rgba(255, 255, 255, 0.22);}
#servicio .process-step {display: block;min-height: 230px;padding: 28px;border-top: 0;border-right: 1px solid var(--color-border);border-bottom: 1px solid var(--color-border);background: var(--color-card);}
#servicio .process-step > span {color: var(--color-brand-hover);font-size: 13px;}
#servicio .process-step:nth-child(3n) {border-right: 0;}
#servicio .process-step:nth-last-child(-n + 3) {border-bottom: 0;}
#servicio .phase-icon {display: grid;width: 44px;height: 44px;place-items: center;margin-bottom: 2px;border-radius: 11px;color: var(--color-brand);background: var(--color-tint);}
#servicio .phase-icon .marker-icon {width: 22px;height: 22px;color: inherit;}
#servicio .process-step h3 {margin-top: 34px;}
.direction-band {position: relative;min-height: 360px;overflow: hidden;color: #fff;background: var(--color-footer);isolation: isolate;scroll-margin-top: calc(var(--header-height) + 16px);}
.direction-band::after {position: absolute;inset: 0;z-index: -1;background: linear-gradient(90deg, rgba(var(--color-footer-rgb), 0.88), rgba(var(--color-footer-rgb), 0.38));content: "";}
.direction-band-media {position: absolute;inset: 0;z-index: -2;}
.direction-band-media, .direction-band-media img {width: 100%;height: 100%;}
.direction-band-media img {object-fit: cover;}
.direction-band-inner {display: flex;min-height: 360px;align-items: center;}
.direction-band-inner > div {max-width: 650px;padding-block: 64px;}
.direction-band h2 {color: #fff;font-size: clamp(34px, 4vw, 50px);}
.direction-band p {margin-top: 16px;color: rgba(255, 255, 255, 0.82);font-size: 17px;}
.direction-band .button {margin-top: 24px;}
#sistemas {background: var(--color-bg);}
#sistemas .section-heading {max-width: 790px;}
#sistemas .capability-card {background: var(--color-card);}
#sistemas .scope-note {color: var(--color-text);background: var(--color-tint);}
#sistemas .system-icon {display: grid;width: 50px;height: 50px;place-items: center;margin-bottom: 20px;border-radius: 12px;color: var(--color-brand-light);background: var(--color-dark-surface);}
#sistemas .system-icon .marker-icon {width: 25px;height: 25px;color: inherit;}
.scope-note {display: grid;grid-template-columns: auto minmax(0, 1fr);gap: 18px;margin-top: 20px;padding: 22px 24px;border: 1px solid rgba(185, 133, 58, 0.3);border-radius: var(--radius);}
.scope-note > strong {display: inline-flex;width: 40px;height: 40px;align-items: center;justify-content: center;border-radius: 8px;color: #fff;background: var(--color-brand);font-family: var(--font-mono);}
.scope-note > .note-icon {width: 40px;height: 40px;padding: 8px;border-radius: 8px;color: #fff;background: var(--color-brand);}
.scope-note p {color: var(--color-muted);}
#precio {background: var(--color-surface);}
.price-grid {display: grid;grid-template-columns: repeat(2, minmax(0, 1fr));align-items: start;gap: 60px;}
.price-points {display: grid;gap: 22px;margin-top: 34px;}
.price-point {display: flex;align-items: flex-start;gap: 16px;padding: 0;border: 0;}
.price-point:last-of-type {border: 0;}
.price-point .num {margin-top: 1px;flex: 0 0 auto;border-color: var(--color-brand-hover);color: var(--color-brand-hover);}
.price-point p {margin: 0;color: var(--color-muted);font-size: 15.5px;}
.price-point strong {color: var(--color-dark);}
.price-card {position: sticky;top: 96px;overflow: hidden;padding: 42px 40px;border-radius: 18px;color: #fff;background: var(--color-dark-surface);box-shadow: var(--shadow-lg);}
.price-card::before {position: absolute;top: -90px;right: -90px;width: 260px;height: 260px;border-radius: 50%;background: radial-gradient(circle, rgba(185, 133, 58, 0.24), transparent 70%);content: "";pointer-events: none;}
.price-estimate {position: relative;display: grid;}
.price-label {color: var(--color-brand-light);font-family: var(--font-mono);font-size: 12px;letter-spacing: 0.14em;text-transform: uppercase;}
.price-card h3 {margin-top: 14px;color: #fff;font-size: 25px;line-height: 1.28;letter-spacing: -0.01em;}
.price-card ul {display: grid;gap: 15px;margin: 28px 0 0;padding: 0;list-style: none;}
.price-card li {display: flex;align-items: flex-start;gap: 12px;color: rgba(255, 255, 255, 0.84);font-size: 15px;}
.price-card .check-icon {width: 19px;height: 19px;margin-top: 1px;color: var(--color-brand-light);}
.price-card .button {width: 100%;margin-top: 32px;}
.faq {background: var(--color-surface);}
.faq-layout {display: grid;grid-template-columns: minmax(0, 0.68fr) minmax(0, 1.32fr);gap: clamp(44px, 7vw, 96px);align-items: start;}
.faq-list {border-top: 1px solid var(--color-border);}
.faq-item {border-bottom: 1px solid var(--color-border);}
.faq-question {display: grid;width: 100%;grid-template-columns: minmax(0, 1fr) 34px;align-items: center;gap: 18px;padding: 22px 0;border: 0;color: var(--color-dark);background: transparent;cursor: pointer;font-weight: 600;text-align: left;}
.faq-symbol {display: inline-flex;width: 30px;height: 30px;align-items: center;justify-content: center;justify-self: end;border: 1px solid var(--color-border);border-radius: 50%;color: var(--color-brand-hover);transition: transform 180ms ease;}
.faq-question[aria-expanded="true"] .faq-symbol {transform: rotate(45deg);}
.faq-answer {max-width: 680px;padding: 0 48px 22px 0;color: var(--color-muted);}
.contact {color: var(--color-text);background: var(--color-bg);}
.contact-layout {display: grid;grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);gap: clamp(44px, 6vw, 84px);align-items: center;}
.contact-copy h2 {margin-top: 16px;font-size: clamp(38px, 4.4vw, 56px);}
.contact-copy > p {margin-top: 18px;color: var(--color-muted);font-size: 18px;}
.contact-points {display: grid;gap: 0;margin: 28px 0 0;padding: 0;list-style: none;}
.contact-points li {display: grid;grid-template-columns: 42px 82px minmax(0, 1fr);gap: 13px;align-items: center;padding-block: 12px;border-top: 1px solid var(--color-border);}
.contact-points li:last-child {border-bottom: 1px solid var(--color-border);}
.contact-points span {color: var(--color-muted);font-family: var(--font-mono);font-size: 11px;}
.contact-icon-box {display: grid;width: 42px;height: 42px;place-items: center;border-radius: 11px;color: var(--color-brand);background: var(--color-tint);}
.contact-icon {width: 20px;height: 20px;color: inherit;}
.contact-points a {color: var(--color-dark);font-weight: 500;overflow-wrap: anywhere;}
.contact-points a:hover {color: var(--color-brand-hover);}
.contact-copy .contact-coverage {margin-top: 20px;color: var(--color-brand-hover);font-family: var(--font-mono);font-size: 12px;}
.form-card {padding: clamp(26px, 3vw, 38px);border: 1px solid var(--color-border);border-radius: var(--radius);background: var(--color-bg);box-shadow: var(--shadow-lg);}
#contactForm {display: grid;gap: 16px;}
.honeypot {position: absolute !important;width: 1px !important;height: 1px !important;overflow: hidden !important;clip: rect(0, 0, 0, 0) !important;white-space: nowrap !important;}
.form-row {display: grid;grid-template-columns: repeat(2, minmax(0, 1fr));gap: 16px;}
.form-field {display: grid;gap: 7px;}
.form-field label {color: var(--color-dark);font-size: 13px;font-weight: 600;}
.form-field input, .form-field select, .form-field textarea {width: 100%;min-width: 0;border: 1px solid var(--color-border-strong);border-radius: 7px;color: var(--color-text);background: var(--color-card);}
.form-field input, .form-field select {min-height: 47px;padding: 10px 13px;}
.form-field textarea {min-height: 118px;padding: 12px 13px;resize: vertical;}
.form-field input:focus, .form-field select:focus, .form-field textarea:focus {border-color: var(--color-brand);outline: 3px solid rgba(22, 95, 198, 0.2);outline-offset: 1px;}
.privacy-row {display: grid;grid-template-columns: 20px minmax(0, 1fr);gap: 9px;align-items: start;color: var(--color-muted);font-size: 13px;}
.privacy-row input {width: 18px;height: 18px;margin: 2px 0 0;accent-color: var(--color-brand);}
.privacy-link {color: var(--color-brand-hover);text-decoration: underline;text-underline-offset: 3px;}
.form-status {min-height: 22px;color: var(--color-muted);font-size: 13px;}
.form-status[data-state="success"] {color: var(--color-success);}
.form-status[data-state="error"] {color: var(--color-error);}
.form-step-actions .button {width: 100%;}
.form-note {color: var(--color-muted);font-size: 12px;text-align: center;}
.site-footer {padding-block: 64px 26px;color: rgba(255, 255, 255, 0.74);background: var(--color-footer);}
.footer-grid {display: grid;grid-template-columns: minmax(0, 1.3fr) repeat(2, minmax(170px, 0.7fr));gap: clamp(34px, 6vw, 84px);}
.footer-brand .brand-symbol {width: 31px;height: 27px;}
.footer-brand .brand-wordmark {width: 104px;height: 46px;}
.footer-description {max-width: 340px;margin-top: 18px;}
.footer-col {display: grid;align-content: start;gap: 9px;}
.footer-col h3 {margin-bottom: 6px;color: #fff;font-family: var(--font-mono);font-size: 11px;letter-spacing: 0.08em;text-transform: uppercase;}
.footer-col a:hover, .legal-links a:hover, .cookie-settings-button:hover {color: var(--color-brand-light);}
.legal-links {display: grid;gap: 9px;}
.cookie-settings-button {width: fit-content;margin-top: 5px;padding: 0;border: 0;color: var(--color-brand-light);background: transparent;cursor: pointer;text-align: left;text-decoration: underline;text-underline-offset: 4px;}
.footer-social {display: flex;gap: 10px;margin-top: 22px;}
.footer-social a {display: inline-flex;width: 44px;height: 44px;align-items: center;justify-content: center;border: 1px solid rgba(255, 255, 255, 0.24);border-radius: 50%;color: #fff;transition: border-color 180ms ease, color 180ms ease, opacity 180ms ease;}
.footer-social a:hover {border-color: var(--color-brand-light);color: var(--color-brand-light);}
.footer-social a.is-pending {opacity: 0.56;}
.social-icon {width: 21px;height: 21px;fill: none;stroke: currentColor;stroke-linecap: round;stroke-linejoin: round;stroke-width: 1.7;}
#footerTikTokLink .social-icon {fill: currentColor;stroke: none;}
.footer-bottom {display: flex;justify-content: space-between;margin-top: 48px;padding-top: 22px;border-top: 1px solid rgba(255, 255, 255, 0.16);font-size: 13px;}
.cookie-banner {position: fixed;right: 18px;bottom: 18px;left: 18px;z-index: 300;color: #fff;}
.cookie-banner-inner {display: flex;width: min(100%, 1080px);align-items: center;justify-content: space-between;gap: 24px;margin-inline: auto;padding: 20px 22px;border: 1px solid rgba(255, 255, 255, 0.22);border-radius: var(--radius);background: rgba(var(--color-footer-rgb), 0.96);box-shadow: var(--shadow-lg);}
.cookie-banner h2, .cookie-dialog h2 {color: inherit;font-size: 22px;}
.cookie-banner p {max-width: 610px;margin-top: 5px;color: rgba(255, 255, 255, 0.72);font-size: 13px;}
.cookie-banner p a, .cookie-dialog p a {text-decoration: underline;text-underline-offset: 3px;}
.cookie-actions, .dialog-actions {display: flex;flex-wrap: wrap;gap: 9px;}
.cookie-ghost {min-height: 44px;padding: 9px 13px;border: 1px solid rgba(255, 255, 255, 0.26);border-radius: var(--radius-sm);color: #fff;background: transparent;cursor: pointer;}
.cookie-dialog {width: min(calc(100% - 32px), 540px);padding: 0;border: 0;border-radius: var(--radius);color: var(--color-text);background: var(--color-bg);box-shadow: var(--shadow-lg);}
.cookie-dialog::backdrop {background: rgba(var(--color-footer-rgb), 0.6);backdrop-filter: blur(4px);}
.cookie-dialog-inner {display: grid;gap: 20px;padding: 28px;}
.cookie-choice {display: flex;align-items: center;justify-content: space-between;gap: 20px;padding: 16px;border: 1px solid var(--color-border);border-radius: var(--radius-sm);}
.cookie-choice span {display: grid;}
.cookie-choice small {color: var(--color-muted);}
.cookie-choice input {width: 22px;height: 22px;accent-color: var(--color-brand);}
.dialog-actions {justify-content: flex-end;}
.whatsapp-float {position: fixed;right: 20px;bottom: 20px;z-index: 180;display: inline-flex;width: 54px;height: 54px;align-items: center;justify-content: center;border-radius: 50%;color: #fff;background: #1f9d55;box-shadow: 0 10px 28px rgba(20, 19, 17, 0.24);transform: translateY(calc(20px - var(--whatsapp-bottom, 20px)));transition: transform 180ms ease;}
.whatsapp-float svg {width: 27px;height: 27px;}
.whatsapp-mark {fill: currentColor;}
@media (max-width: 1120px) {.desktop-nav {display: none;}
.menu-button {display: inline-flex;}
}
@media (max-width: 980px) {.projects-mosaic {grid-template-columns: repeat(2, minmax(0, 1fr));}
.projects-mosaic--exteriors .project-card,.projects-mosaic--exteriors .project-card:nth-child(n + 4),.projects-mosaic--interiors .project-card,.projects-mosaic--interiors .project-card--landscape {grid-column: auto;}
.projects-mosaic--exteriors .project-card:nth-child(n + 4),.projects-mosaic--interiors .project-card--landscape {aspect-ratio: 4 / 3;}
.projects-mosaic .project-card:last-child:nth-child(odd) {width: calc(50% - 10px);grid-column: 1 / -1;justify-self: center;}
}
@media (max-width: 900px) {.hero {min-height: auto;grid-template-columns: 1fr;}
.hero-figure {min-height: clamp(420px, 74vw, 620px);order: -1;}
.hero-copy {padding: 58px 24px 70px;}
.hero-copy-inner {max-width: 720px;margin-inline: auto;}
.hero h1 {font-size: clamp(44px, 8vw, 64px);}
.trust-grid {grid-template-columns: repeat(2, minmax(0, 1fr));}
.trust-item:nth-child(2) {border-right: 0;}
.trust-item:nth-child(-n + 2) {border-bottom: 1px solid rgba(255, 255, 255, 0.16);}
.philosophy-layout, .process-layout, .price-grid, .faq-layout, .contact-layout {grid-template-columns: 1fr;}
.price-card {position: relative;top: auto;}
.philosophy-figure {min-height: clamp(390px, 72vw, 590px);}
#servicio .process-steps {grid-template-columns: repeat(2, minmax(0, 1fr));}
#servicio .process-step:nth-child(n) {border-right: 1px solid var(--color-border);border-bottom: 1px solid var(--color-border);}
#servicio .process-step:nth-child(2n) {border-right: 0;}
#servicio .process-step:nth-last-child(-n + 2) {border-bottom: 0;}
.capabilities-grid {grid-template-columns: 1fr;}
#sistemas .capabilities-grid {grid-template-columns: repeat(2, minmax(0, 1fr));}
#sistemas .capability-card:last-child {grid-column: 1 / -1;}
.contact-copy {max-width: 720px;}
.form-card {max-width: 720px;}
.footer-grid {grid-template-columns: 1.1fr 0.9fr;}
.footer-grid > :last-child {grid-column: 2;}
}
@media (max-width: 620px) {:root {--section-space: 64px;}
.container {width: min(calc(100% - 32px), var(--content-max));}
.header-inner {min-height: 66px;}
.site-header {min-height: 66px;--header-height: 66px;}
.site-header .brand-symbol {width: 40px;height: 34px;}
.site-header .brand-wordmark {width: 128px;height: 56px;}
.mobile-menu {inset-block-start: 66px;}
.hero-figure {min-height: 360px;}
.hero-copy {padding: 48px 16px 58px;}
.hero h1 {font-size: clamp(39px, 12.2vw, 52px);}
.hero-actions {display: grid;}
.hero-actions .button {width: 100%;}
.trust-grid {grid-template-columns: 1fr;}
.trust-item {border-right: 0;border-bottom: 1px solid rgba(255, 255, 255, 0.16);}
.trust-item:last-child {border-bottom: 0;}
.philosophy-figure {min-height: 340px;}
.philosophy-content .section-heading h2,.section-heading h2,.process-intro h2,.contact-copy h2 {font-size: clamp(32px, 10vw, 42px);}
.projects-heading {align-items: start;flex-direction: column;}
.projects-mosaic {grid-template-columns: 1fr;gap: 14px;}
.projects-groups {gap: 72px;margin-top: 48px;}
.project-group-heading {grid-template-columns: auto minmax(0, 1fr);align-items: start;gap: 8px 14px;}
.project-group-title {font-size: clamp(28px, 8vw, 36px);}
.project-group-count {grid-column: 2;align-self: start;padding: 0;}
.projects-mosaic--interiors .project-card,.projects-mosaic--interiors .project-card--landscape,.projects-mosaic .project-card:last-child:nth-child(odd) {width: 100%;grid-column: auto;justify-self: stretch;}
.project-copy {inset: auto 1px 1px;padding: 0 16px 16px;}
.project-copy h4 {font-size: 19px;}
.project-zoom {top: 10px;right: 10px;width: 34px;height: 34px;}
.project-zoom-icon {width: 17px;height: 17px;}
.project-lightbox {width: calc(100% - 20px);max-height: calc(100dvh - 20px);}
.project-lightbox-inner {max-height: calc(100dvh - 20px);}
.project-lightbox-image {height: calc(100dvh - 20px);}
.project-lightbox-caption {padding: 80px 18px 18px;}
.project-lightbox-caption h2 {font-size: 28px;}
.challenges-grid {grid-template-columns: 1fr;}
.challenges-grid .capability-card {grid-template-columns: 34px minmax(0, 1fr);padding-block: 22px;}
#servicio .process-steps, #sistemas .capabilities-grid {grid-template-columns: 1fr;}
#servicio .process-step:nth-child(n) {min-height: 0;border-right: 0;border-bottom: 1px solid var(--color-border);}
#servicio .process-step:last-child {border-bottom: 0;}
#sistemas .capability-card:last-child {grid-column: auto;}
.direction-band, .direction-band-inner {min-height: 420px;}
.direction-band::after {background: linear-gradient(rgba(var(--color-footer-rgb), 0.48), rgba(var(--color-footer-rgb), 0.9));}
.direction-band h2 {font-size: 34px;}
.process-step {grid-template-columns: 44px minmax(0, 1fr);gap: 12px;}
.scope-note {grid-template-columns: 1fr;}
.price-card {padding: 32px 24px;}
.form-row {grid-template-columns: 1fr;}
.form-card {padding: 24px 18px;}
.footer-grid, .footer-grid > :last-child {grid-template-columns: 1fr;grid-column: auto;}
.cookie-banner {right: 10px;bottom: 10px;left: 10px;}
.cookie-banner-inner {align-items: stretch;flex-direction: column;padding: 18px;}
.cookie-actions {display: grid;}
.cookie-actions > * {width: 100%;}
.whatsapp-float {right: 14px;bottom: 14px;transform: translateY(calc(14px - var(--whatsapp-bottom, 14px)));}
}
@media (prefers-reduced-motion: reduce) {html {scroll-behavior: auto;}
*, *::before, *::after {scroll-behavior: auto !important;transition-duration: 0.01ms !important;animation-duration: 0.01ms !important;animation-iteration-count: 1 !important;}
.motion-ready.can-animate [data-reveal] {opacity: 1 !important;transform: none !important;}
.magnetic {transform: none !important;}
}

/* Answers stay readable if scripts are unavailable or fail to initialize. */
html:not(.faq-ready) .faq-answer[hidden] {display: block !important;}
.cookie-banner {max-height: calc(100dvh - 20px);overflow-y: auto;}
