:root {
  --ink: #11110f;
  --paper: #f3f2ed;
  --white: #fff;
  --accent: #d64b2a;
  --line: rgba(17, 17, 15, .22);
  --pad: clamp(1.25rem, 4vw, 4.5rem);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: "DM Sans", sans-serif; font-size: 16px; line-height: 1.45; }
img { display: block; width: 100%; height: 100%; object-fit: cover; }
a { color: inherit; text-decoration: none; }
h1, h2, h3, p, figure { margin: 0; }

.site-header { position: absolute; z-index: 10; top: 0; left: 0; width: 100%; height: 6.5rem; padding: 0 var(--pad); display: flex; align-items: center; justify-content: space-between; color: white; text-shadow: 0 1px 14px rgba(0,0,0,.55); }
.brand { font-family: Manrope, sans-serif; font-size: clamp(1.6rem, 2.5vw, 2.25rem); font-weight: 600; letter-spacing: -.08em; line-height: 1; }
.brand span { color: var(--accent); }
nav { display: flex; align-items: center; gap: clamp(1.25rem, 3vw, 3rem); font-size: .88rem; }
nav a { transition: opacity .2s ease; }
nav a:hover { opacity: .55; }
.nav-cta { border-bottom: 1px solid currentColor; padding-bottom: .2rem; }
.language-switch { display: flex; align-items: center; gap: .18rem; margin-left: .25rem; padding: .28rem; border: 1px solid rgba(255,255,255,.42); border-radius: 999px; background: rgba(17,17,15,.84); box-shadow: 0 6px 24px rgba(0,0,0,.2); color: white; font-size: .76rem; text-shadow: none; backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); }
.language-label { padding: 0 .5rem 0 .6rem; color: rgba(255,255,255,.72); font-size: .68rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.language-switch button { min-height: 2rem; padding: .42rem .62rem; border: 1px solid transparent; border-radius: 999px; background: transparent; color: inherit; font: inherit; font-weight: 600; cursor: pointer; opacity: .72; transition: opacity .2s ease, background-color .2s ease, border-color .2s ease; }
.language-switch button:hover { opacity: 1; border-color: rgba(255,255,255,.32); }
.language-switch button:focus-visible { outline: 2px solid white; outline-offset: 2px; }
.language-switch button[aria-pressed="true"] { border-color: rgba(255,255,255,.86); background: var(--accent); opacity: 1; }
.menu-toggle { display: none; border: 0; background: none; color: inherit; font: inherit; }

.hero { min-height: 100svh; display: grid; grid-template-columns: .93fr 1.07fr; background: var(--ink); color: white; }
.hero-copy { min-height: 100svh; padding: clamp(8rem, 15vh, 11rem) var(--pad) 3rem; display: flex; flex-direction: column; justify-content: flex-end; }
.eyebrow, .section-label { font-size: .72rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }
.brand-code b { color: var(--accent); font-weight: 600; }
.hero h1 { margin: auto 0 2.4rem; font-family: Manrope, sans-serif; font-size: clamp(3.3rem, 7vw, 7.8rem); font-weight: 400; line-height: .89; letter-spacing: -.07em; }
.hero h1 em, .contact h2 em { color: var(--accent); font-family: Georgia, serif; font-weight: 400; }
.hero-intro { max-width: 30rem; color: rgba(255,255,255,.68); font-size: clamp(1rem, 1.2vw, 1.2rem); }
.text-link { width: max-content; margin-top: 2.5rem; padding-bottom: .4rem; border-bottom: 1px solid rgba(255,255,255,.5); font-size: .82rem; text-transform: uppercase; letter-spacing: .08em; }
.text-link span { margin-left: 2rem; }
.hero-media { min-height: 100svh; position: relative; overflow: hidden; }
.hero-media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.2), transparent 40%, rgba(0,0,0,.25)); pointer-events: none; }
.hero-media img { transform: scale(1.02); animation: settle 1.6s cubic-bezier(.2,.8,.2,1) both; }
.hero-media figcaption { position: absolute; z-index: 1; right: 2rem; bottom: 2rem; left: 2rem; display: flex; justify-content: space-between; font-size: .75rem; letter-spacing: .06em; text-transform: uppercase; }
@keyframes settle { from { opacity: 0; transform: scale(1.09); } to { opacity: 1; transform: scale(1.02); } }

.statement, .process { padding: clamp(6rem, 12vw, 11rem) var(--pad); display: grid; grid-template-columns: 1fr 3fr; gap: 4rem; }
.section-label { padding-top: .7rem; color: #686862; }
.statement h2, .section-head h2, .services h2, .process h2, .bim h2 { max-width: 64rem; font-family: Manrope, sans-serif; font-size: clamp(2.8rem, 6vw, 6.8rem); font-weight: 400; line-height: .98; letter-spacing: -.06em; }
.statement-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; max-width: 58rem; margin-top: clamp(3rem, 7vw, 7rem); }
.statement-columns p { color: #464640; font-size: clamp(1rem, 1.35vw, 1.28rem); }

.projects { padding: 0 var(--pad) clamp(6rem, 12vw, 11rem); }
.section-head { display: grid; grid-template-columns: 1fr 3fr; gap: 4rem; margin-bottom: clamp(3rem, 6vw, 6rem); }
.project-image { overflow: hidden; background: #c9c6bd; }
.project-featured .project-image { aspect-ratio: 16 / 8.5; }
.project-grid { display: grid; grid-template-columns: 1.25fr .75fr; align-items: start; gap: clamp(1.25rem, 3vw, 3.5rem); margin-top: clamp(3rem, 7vw, 7rem); }
.project-grid .project-image { aspect-ratio: 4 / 5; }
.project-crop { margin-top: 9rem; }
.project-crop img { object-position: 78% center; transform: scale(1.15); }
.project img { transition: transform .7s cubic-bezier(.2,.8,.2,1); }
.project:hover img { transform: scale(1.035); }
.project-crop:hover img { transform: scale(1.19); }
.project-meta { display: grid; grid-template-columns: 1fr auto; padding-top: 1rem; border-top: 1px solid var(--ink); margin-top: .8rem; }
.project-meta h3 { font-family: Manrope, sans-serif; font-size: 1.15rem; font-weight: 500; }
.project-meta p, .project-meta span { color: #66665f; font-size: .78rem; }
.project-meta p { grid-column: 1; margin-top: .35rem; }
.project-meta span { grid-column: 2; grid-row: 1; text-transform: uppercase; letter-spacing: .08em; }

.services { background: var(--ink); color: white; padding: clamp(6rem, 12vw, 11rem) var(--pad); }
.services .section-head { margin-bottom: 5rem; }
.services .section-label { color: rgba(255,255,255,.5); }
.service-list { margin: 0; padding: 0; list-style: none; border-top: 1px solid rgba(255,255,255,.25); }
.service-list li { display: grid; grid-template-columns: .5fr 1.2fr 1fr; gap: 2rem; align-items: baseline; padding: 2.5rem 0; border-bottom: 1px solid rgba(255,255,255,.25); }
.service-list li > span { color: var(--accent); font-size: .75rem; }
.service-list h3 { font-family: Manrope, sans-serif; font-size: clamp(1.6rem, 3vw, 3.5rem); font-weight: 400; letter-spacing: -.04em; }
.service-list p { max-width: 30rem; color: rgba(255,255,255,.6); }

.morse-case { padding: clamp(5rem, 10vw, 10rem) var(--pad); background: var(--ink); color: white; }
.morse-intro { display: grid; grid-template-columns: 1fr 3fr; gap: 3rem; margin-bottom: clamp(3rem, 6vw, 6rem); }
.morse-intro h2 { margin-bottom: 2rem; font-family: Manrope, sans-serif; font-size: clamp(2.8rem, 6vw, 6.5rem); font-weight: 400; line-height: .96; letter-spacing: -.06em; }
.morse-intro h2 em { color: var(--accent); font-family: Georgia, serif; font-weight: 400; }
.morse-intro > div > p { max-width: 42rem; color: rgba(255,255,255,.66); font-size: clamp(1rem, 1.25vw, 1.18rem); }
.morse-visuals { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.morse-stage { position: relative; min-width: 0; aspect-ratio: 3 / 2; overflow: hidden; background: #242421; }
.morse-stage::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 45%, rgba(0,0,0,.82)); pointer-events: none; }
.morse-stage img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s cubic-bezier(.2,.8,.2,1); }
.morse-stage:hover img { transform: scale(1.025); }
.morse-stage figcaption { position: absolute; z-index: 1; right: 0; bottom: 0; left: 0; display: grid; grid-template-columns: 2.5rem 1fr; gap: 1rem; align-items: end; padding: clamp(1.25rem, 3vw, 2.25rem); }
.morse-stage figcaption > span { color: var(--accent); font-family: Georgia, serif; font-size: 1.6rem; }
.morse-stage figcaption p { margin-bottom: .25rem; color: rgba(255,255,255,.62); font-size: .72rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.morse-stage h3 { margin-bottom: .4rem; font-family: Manrope, sans-serif; font-size: clamp(1.4rem, 2.4vw, 2.35rem); font-weight: 500; letter-spacing: -.04em; }
.morse-stage small { color: rgba(255,255,255,.7); font-size: .82rem; }
.document-flow { display: flex; align-items: center; justify-content: center; gap: 1rem; margin-top: 2rem; color: rgba(255,255,255,.55); font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; }
.document-flow i { width: clamp(2rem, 5vw, 5rem); height: 1px; background: rgba(255,255,255,.3); }
.document-flow b { color: white; font-weight: 500; }
.document-flow strong { color: var(--accent); font-weight: 600; }

.bim { padding: clamp(6rem, 12vw, 11rem) var(--pad); background: #d9d7d0; }
.bim-intro { display: grid; grid-template-columns: 1fr 3fr; gap: 4rem; }
.bim h2 { font-size: clamp(2.7rem, 5.5vw, 6.2rem); }
.bim h2 em { color: var(--accent); font-family: Georgia, serif; font-weight: 400; }
.bim-intro > div > p { max-width: 47rem; margin-top: 2.5rem; color: #4c4c47; font-size: clamp(1rem, 1.25vw, 1.2rem); }
.bim-gallery { display: grid; grid-template-columns: 1.15fr .85fr; gap: clamp(1rem, 2.5vw, 2.5rem); margin-top: clamp(4rem, 8vw, 8rem); align-items: start; }
.bim-card { margin: 0; }
.bim-card img { aspect-ratio: 16 / 9; object-fit: cover; }
.bim-card-dark { margin-top: 5rem; }
.bim-card figcaption { display: flex; justify-content: space-between; gap: 1rem; padding-top: .8rem; border-top: 1px solid var(--ink); margin-top: .65rem; color: #565650; font-size: .72rem; text-transform: uppercase; letter-spacing: .06em; }
.bim-card figcaption span:last-child { text-align: right; }
.bim-gallery-real { grid-template-columns: 1.25fr .75fr; align-items: end; }
.bim-gallery-real .bim-card:nth-child(2) img { object-position: center; }
.site-sequence { display: grid; grid-template-columns: 1.15fr .85fr .85fr; gap: clamp(.75rem, 1.5vw, 1.5rem); margin-top: clamp(2rem, 4vw, 4rem); align-items: stretch; }
.site-sequence figure { position: relative; min-height: 31rem; overflow: hidden; background: #b9b7af; }
.site-sequence img { position: absolute; inset: 0; }
.site-sequence figure:first-child img { object-position: center; }
.site-sequence figcaption { position: absolute; left: .8rem; bottom: .8rem; padding: .45rem .6rem; background: rgba(17,17,15,.82); color: white; font-size: .7rem; text-transform: uppercase; letter-spacing: .08em; }
.bim-capabilities { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: clamp(4rem, 8vw, 8rem); border-top: 1px solid var(--ink); }
.bim-capabilities span { min-height: 7rem; display: flex; align-items: flex-end; padding: 1rem 1rem 1rem 0; border-right: 1px solid var(--line); font-size: .82rem; }
.bim-capabilities span:last-child { border-right: 0; }

.process { background: var(--white); }
.process h2 { font-size: clamp(2.7rem, 5vw, 5.8rem); }
.process-steps { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 6rem; border-top: 1px solid var(--ink); }
.process-steps div { min-height: 9rem; padding: 1rem 1rem 1rem 0; display: flex; flex-direction: column; justify-content: space-between; border-right: 1px solid var(--line); }
.process-steps div:last-child { border-right: 0; }
.process-steps b { color: var(--accent); font-size: .72rem; }
.process-steps span { font-size: .92rem; }

.contact { min-height: 85vh; padding: clamp(6rem, 12vw, 11rem) var(--pad); background: var(--accent); color: var(--ink); display: flex; flex-direction: column; justify-content: center; }
.contact h2 { margin: clamp(2rem, 5vw, 5rem) 0; font-family: Manrope, sans-serif; font-size: clamp(3.5rem, 9vw, 10rem); font-weight: 400; line-height: .88; letter-spacing: -.075em; }
.contact h2 em { color: white; }
.contact-link { width: 100%; display: flex; justify-content: space-between; padding: 1.4rem 0; border-top: 1px solid currentColor; border-bottom: 1px solid currentColor; font-size: clamp(1rem, 2vw, 1.6rem); }
.contact-link span { transition: transform .2s ease; }
.contact-link:hover span { transform: translate(5px, -5px); }
.contact-lines { display: grid; }
.contact-lines .contact-link + .contact-link { border-top: 0; }

footer { padding: 4rem var(--pad); display: grid; grid-template-columns: 2fr 1fr 1.45fr auto auto; align-items: end; gap: 2rem; background: var(--ink); color: white; }
.brand-light { align-self: start; }
footer p, footer a { color: rgba(255,255,255,.62); font-size: .8rem; }
footer > div { display: flex; flex-direction: column; gap: .35rem; }
.social-links { flex-direction: row; gap: .65rem; }
.social-links a { width: 2.6rem; height: 2.6rem; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.24); border-radius: 50%; transition: color .2s ease, border-color .2s ease, background .2s ease, transform .2s ease; }
.social-links a:hover, .social-links a:focus-visible { color: white; border-color: var(--accent); background: var(--accent); transform: translateY(-2px); outline: none; }
.social-links svg { width: 1.15rem; height: 1.15rem; fill: currentColor; }
.social-links svg rect, .social-links svg circle:not(.instagram-dot) { fill: none; stroke: currentColor; stroke-width: 1.8; }
.social-links .instagram-dot { fill: currentColor; stroke: none; }
.copyright { text-align: right; }

.reveal { opacity: 0; transform: translateY(24px); transition: opacity .75s ease, transform .75s cubic-bezier(.2,.8,.2,1); }
.reveal.visible { opacity: 1; transform: none; }

@media (max-width: 800px) {
  .site-header { height: 5rem; }
  .menu-toggle { display: block; z-index: 2; cursor: pointer; }
  nav { position: fixed; inset: 0; padding: 8rem var(--pad) 3rem; background: var(--ink); color: white; flex-direction: column; align-items: flex-start; justify-content: center; font-size: 2rem; transform: translateX(100%); transition: transform .35s ease; }
  nav.open { transform: none; }
  .language-switch { margin: 1rem 0 0; font-size: .9rem; }
  .language-label { font-size: .72rem; }
  .hero { grid-template-columns: 1fr; }
  .hero-copy { min-height: 76svh; padding-top: 7rem; }
  .hero h1 { font-size: clamp(3.5rem, 16vw, 6rem); margin-top: 4rem; }
  .hero-media { min-height: 68svh; }
  .statement, .process, .section-head, .bim-intro, .morse-intro { grid-template-columns: 1fr; gap: 2rem; }
  .statement-columns { grid-template-columns: 1fr; gap: 1.5rem; }
  .project-grid { grid-template-columns: 1fr; }
  .project-featured .project-image { aspect-ratio: 4 / 5; }
  .project-crop { margin-top: 2rem; }
  .service-list li { grid-template-columns: 2.5rem 1fr; gap: 1rem; }
  .service-list p { grid-column: 2; }
  .morse-visuals { grid-template-columns: 1fr; }
  .document-flow { gap: .55rem; }
  .bim-gallery { grid-template-columns: 1fr; }
  .bim-card-dark { margin-top: 0; }
  .site-sequence { grid-template-columns: 1fr; }
  .site-sequence figure { min-height: 70svh; }
  .bim-capabilities { grid-template-columns: 1fr 1fr; }
  .bim-capabilities span:nth-child(2) { border-right: 0; }
  .bim-capabilities span { min-height: 5rem; border-bottom: 1px solid var(--line); }
  .process-steps { grid-template-columns: 1fr 1fr; margin-top: 3rem; }
  .process-steps div:nth-child(2) { border-right: 0; }
  .process-steps div { border-bottom: 1px solid var(--line); }
  footer { grid-template-columns: 1fr 1fr; }
  .brand-light { grid-column: 1 / -1; margin-bottom: 2rem; }
  .social-links { align-self: end; }
  .copyright { text-align: left; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation: none !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
}

/* Industrial concept and direct business contact */
.industrial-jump {margin-top:1.1rem;font-size:.875rem;color:#cccac3;text-decoration:underline;text-underline-offset:5px;}
.industrial {padding:clamp(4rem,8vw,8rem) var(--pad);background:#e6e5df;scroll-margin-top:1rem;}
.industrial-intro {display:grid;grid-template-columns:1fr 3fr;gap:4rem;margin-bottom:3.5rem;}
.industrial .section-label {font-size:.875rem;}
.industrial h2 {font-family:Manrope,sans-serif;font-size:clamp(3rem,6.5vw,7rem);font-weight:400;line-height:1;letter-spacing:-.06em;}
.industrial h2 em {font-family:Georgia,serif;font-weight:400;color:#ad351b;}
.industrial-lead {max-width:44rem;margin-top:2rem;font-size:clamp(1rem,1.5vw,1.25rem);color:#464640;line-height:1.6;}
.industrial-image img {height:auto;aspect-ratio:16/9;object-fit:cover;}
.industrial-image figcaption {padding:.8rem 0;color:#54544f;font-size:.875rem;}
.industrial-meta {display:flex;justify-content:space-between;gap:1.5rem;border-top:1px solid #85857b;padding-top:1rem;margin-top:.5rem;}
.industrial-meta h3 {font-size:clamp(1.1rem,2vw,1.6rem);font-weight:500;}
.industrial-meta p {font-size:.875rem;color:#54544f;}
.industrial-principles {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2.5rem;margin:4rem 0;}
.industrial-principles article {border-top:1px solid #99988f;padding-top:1rem;}
.industrial-principles article>span {font-size:.875rem;color:#ad351b;}
.industrial-principles h3 {font-size:1.3rem;font-weight:500;margin:1.5rem 0 1rem;}
.industrial-principles p,.industrial-next p {font-size:1rem;line-height:1.65;color:#464640;}
.industrial-next {border-top:1px solid #99988f;padding-top:2rem;display:flex;align-items:center;justify-content:space-between;gap:3rem;}
.industrial-next h3 {font-size:1.6rem;font-weight:500;margin-bottom:.8rem;}
.industrial-next p {max-width:43rem;}
.industrial-button {display:inline-flex;align-items:center;justify-content:center;gap:.7rem;flex-shrink:0;min-height:3.5rem;padding:.9rem 1.3rem;background:var(--ink);color:white;font-size:1rem;}
.industrial-button svg {width:1.4rem;height:1.4rem;}
.industrial-button:hover {background:#33332c;}
.industrial-note {font-size:.875rem;color:#54544f;max-width:55rem;margin-top:2.5rem;}
.whatsapp-float {position:fixed;right:1.5rem;bottom:max(1.5rem,env(safe-area-inset-bottom));z-index:9;display:flex;align-items:center;gap:.65rem;min-height:3.5rem;padding:.85rem 1.2rem;border-radius:999px;background:#136f42;color:white;box-shadow:0 5px 24px #0004;border:1px solid #ffffff55;font-size:1rem;font-weight:500;transition:background .2s,transform .2s;}
.whatsapp-float svg {width:1.65rem;height:1.65rem;}
.whatsapp-float:hover {background:#0d5834;transform:translateY(-2px);}
.whatsapp-float:focus-visible,.industrial-button:focus-visible,.industrial-jump:focus-visible {outline:3px solid #d64b2a;outline-offset:5px;}
@media(min-width:801px) and (max-width:1100px){nav{gap:1rem;} .language-label{display:none;}}
@media(max-width:800px){
.industrial-intro{grid-template-columns:1fr;gap:2rem;}
.industrial-meta,.industrial-next{flex-direction:column;align-items:flex-start;gap:1rem;}
.industrial-principles{grid-template-columns:1fr;gap:2rem;margin:2.5rem 0;}
.industrial-image img{aspect-ratio:4/3;}
.industrial-button{width:100%;margin-top:.75rem;}
.whatsapp-float{right:1rem;bottom:max(1rem,env(safe-area-inset-bottom));padding:.9rem;min-width:3.5rem;justify-content:center;}
.whatsapp-float>span{display:none;}
footer{padding-bottom:6rem;}
}
