:root{--white:#fff;--oxford:#272b2e;--muted:#697176;--accent:#0099a1;--line:#dce1e2}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#fff;color:var(--oxford);font-family:"DM Sans",Arial,sans-serif}body,button{font-family:"DM Sans",Arial,sans-serif}a{color:inherit;text-decoration:none}button{color:inherit}h1,h2,h3,.detail-subtitle,.line-nav strong{font-family:"Urbanist",Arial,sans-serif}em{color:var(--accent);font-style:normal}.section{padding:130px 6vw}.kicker{display:flex;align-items:center;gap:10px;text-transform:uppercase;letter-spacing:.17em;font-size:10px;font-weight:700;color:var(--muted)}.kicker span{width:28px;height:2px;background:var(--accent)}.section-number{display:block;color:var(--accent);font-size:12px;font-weight:700;margin-bottom:24px}.section-heading{display:grid;grid-template-columns:28% 72%;align-items:start;margin-bottom:80px}.section-heading h2,.section-main>h2{font-size:clamp(48px,6vw,92px);line-height:.96;letter-spacing:normal;margin:0;font-weight:500}.lead{font-size:22px;line-height:1.55;letter-spacing:-.015em}
.nav{height:92px;padding:0 4vw;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:white;position:sticky;top:0;z-index:40}.header-brand{height:68px;display:flex;align-items:center}.header-brand img{display:block;width:auto;height:58px;max-width:260px;object-fit:contain}.nav nav{display:flex;align-items:center;gap:28px;text-transform:uppercase;letter-spacing:.1em;font-size:10px;font-weight:700}.nav nav>a:hover{color:var(--accent)}.nav-cta{background:var(--accent);color:white!important;padding:15px 20px}.menu-button{display:none;border:0;background:none;width:40px;height:40px;padding:10px}.menu-button span{display:block;height:1px;background:var(--oxford);margin:7px 0}
.hero{display:grid;grid-template-columns:47% 53%;min-height:calc(100svh - 92px)}.hero-copy{padding:10vh 5vw 8vh 6vw;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.hero h1{font-size:clamp(60px,6.8vw,112px);font-weight:500;line-height:.87;letter-spacing:normal;margin:7vh 0 5vh}.hero-intro{max-width:480px;color:var(--muted);font-size:17px;line-height:1.6}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:50px;padding:18px 22px;text-transform:uppercase;letter-spacing:.12em;font-size:10px;font-weight:700}.primary{background:var(--accent);color:white;margin-top:25px;transition:.25s}.primary:hover{background:#007e85;transform:translateY(-2px)}.hero-visual{position:relative;overflow:hidden;background:#e8eaea}.hero-visual>img{width:100%;height:100%;object-fit:cover;filter:saturate(.65);transition:1s}.hero-visual:hover>img{transform:scale(1.025);filter:saturate(.85)}.vertical-tag{position:absolute;right:22px;top:35px;color:white;writing-mode:vertical-rl;font-size:9px;letter-spacing:.25em}.hero-stat{position:absolute;left:0;bottom:0;background:white;padding:30px 38px;display:flex;align-items:center;gap:16px}.hero-stat strong{font:500 52px/1 "Urbanist",sans-serif;color:var(--accent)}.hero-stat span{font-size:11px;line-height:1.4;text-transform:uppercase;letter-spacing:.08em}
.about{display:grid;grid-template-columns:28% 72%;border-bottom:1px solid var(--line)}.about-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:10vw;margin-top:75px}.about-grid>div>p:not(.lead){color:var(--muted);line-height:1.75}.trust h3{font-size:22px;margin:0 0 25px}.trust>div{display:flex;gap:30px;padding:18px 0;border-top:1px solid var(--line)}.trust>div span{font-size:10px;color:var(--accent)}.trust>div strong{font-size:14px}.trust>a{display:flex;justify-content:space-between;border-bottom:1px solid var(--oxford);padding:20px 0;text-transform:uppercase;letter-spacing:.12em;font-size:10px;font-weight:700}
.business{background:#f7f9f9}.line-nav{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--oxford)}.line-nav a{min-height:260px;padding:30px;border-right:1px solid var(--line);display:flex;flex-direction:column;transition:.25s}.line-nav .line-siac:hover{background:var(--accent);color:white;transform:translateY(-6px)}.line-nav .line-elements:hover{background:#e72a7a;color:white;transform:translateY(-6px)}.line-nav .line-wood:hover{background:var(--oxford);color:white;transform:translateY(-6px)}.line-nav a>span{font-size:11px;color:var(--accent)}.line-nav a:hover>span{color:white}.line-nav strong{font:500 36px/1 "Space Grotesk",sans-serif;margin-top:50px}.line-nav small{color:var(--muted);margin-top:13px;line-height:1.5}.line-nav a:hover small{color:white}.line-nav b{margin-top:auto;font-size:20px;font-weight:400}
.business-detail{padding:130px 0;border-bottom:1px solid var(--line);scroll-margin-top:92px}.detail-hero,.detail-copy,.gallery-head{margin-left:6vw;margin-right:6vw}.detail-hero{display:grid;grid-template-columns:18% 1fr auto;align-items:end;padding-bottom:65px;border-bottom:1px solid var(--oxford)}.giant-number{font:400 clamp(80px,11vw,170px)/.7 "Space Grotesk",sans-serif;color:#e8eced;letter-spacing:-.08em}.detail-hero h2{font-size:clamp(60px,8vw,125px);line-height:.8;letter-spacing:normal;margin:45px 0 20px}.detail-subtitle{font-size:14px;text-transform:uppercase;letter-spacing:.13em;color:var(--accent);font-weight:700}.elements-color{color:#e72a7a}.oxford-color{color:var(--oxford)}.years{color:var(--accent);font-size:14px;text-transform:uppercase;letter-spacing:.1em}.detail-copy{display:grid;grid-template-columns:1fr 1.15fr;gap:10vw;padding:75px 0 120px}.detail-copy>.lead{margin:0}.mission{display:grid;grid-template-columns:1fr 1fr;gap:35px}.mission article{border-top:3px solid var(--accent);padding-top:20px}.mission article>span{text-transform:uppercase;color:var(--accent);font-size:10px;font-weight:700;letter-spacing:.15em}.mission p{color:var(--muted);font-size:14px;line-height:1.7}.gallery-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:45px}.gallery-head h3{font-size:40px;margin:18px 0 0}.gallery-head>p{font-size:13px;color:var(--muted)}
.mosaic{display:grid;grid-template-columns:repeat(5,1fr);grid-auto-rows:190px;gap:8px;padding:0 8px}.tile{position:relative;overflow:hidden;border:0;padding:0;background:#e9eeee;cursor:zoom-in}.tile-0,.tile-6{grid-column:span 2;grid-row:span 2}.tile-3{grid-row:span 2}.tile img{width:100%;height:100%;object-fit:cover;filter:saturate(.6);transition:transform .65s ease,filter .65s}.tile:hover img{transform:scale(1.06);filter:saturate(.95)}.tile span{position:absolute;right:12px;bottom:12px;background:white;padding:9px 11px;font-size:8px;text-transform:uppercase;letter-spacing:.1em;opacity:0;transform:translateY(8px);transition:.25s}.tile:hover span{opacity:1;transform:none}
.services{background:white}.service-list{margin-left:28%;border-top:1px solid var(--oxford)}.service-list>div{display:grid;grid-template-columns:70px 1fr auto;align-items:center;padding:27px 5px;border-bottom:1px solid var(--line);transition:.2s}.service-list>div:hover{padding-left:18px;color:var(--accent)}.service-list span{color:var(--accent);font-size:10px}.service-list h3{margin:0;font-size:24px;font-weight:500}.service-list b{font-weight:400}
.projects{background:#f7f9f9}.project{padding:40px 0 80px;border-top:1px solid var(--oxford)}.project-title{display:flex;gap:35px;align-items:start;margin-bottom:30px}.project-title>span{font-size:11px;color:var(--accent)}.project-title h3{font-size:36px;font-weight:500;margin:0 0 8px}.project-title p{margin:0;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.12em}.project-photos{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:10px;height:420px}.project-photos button{border:0;padding:0;position:relative;overflow:hidden;cursor:zoom-in;background:#ddd}.project-photos img{width:100%;height:100%;object-fit:cover;filter:saturate(.6);transition:.6s}.project-photos button:hover img{transform:scale(1.05);filter:saturate(.9)}.project-photos button span{position:absolute;right:15px;top:15px;width:30px;height:30px;display:grid;place-items:center;background:white;color:var(--accent)}
.contact{display:grid;grid-template-columns:1.3fr .7fr;gap:10vw;border-top:8px solid var(--accent);align-items:end}.contact h2{font-size:clamp(52px,6vw,92px);line-height:.94;letter-spacing:-.055em;margin:40px 0 0}.contact-actions>p{color:var(--muted);line-height:1.7}.contact-actions .button{width:100%;margin:25px 0 20px}.mail{font-size:13px;border-bottom:1px solid var(--oxford);padding-bottom:8px}.mail:hover{color:var(--accent)}
footer{padding:70px 6vw 30px;background:var(--oxford);color:white;display:grid;grid-template-columns:1.4fr 1fr auto;gap:50px;align-items:start}.footer-brand img{height:60px;width:auto;filter:brightness(0) invert(1)}.footer-info{display:grid;grid-template-columns:1fr 2fr;gap:35px;color:#c5c9cb;font-size:12px;line-height:1.8}.socials{display:flex;gap:10px}.socials a{width:42px;height:42px;border:1px solid #62686b;display:grid;place-items:center;transition:.2s;font-weight:700}.socials a:hover{background:var(--accent);border-color:var(--accent)}footer>small{grid-column:1/-1;border-top:1px solid #484d50;padding-top:25px;color:#8f9699;font-size:10px;margin-top:25px}
.lightbox{position:fixed;inset:0;background:rgba(16,19,20,.94);z-index:100;display:none;align-items:center;justify-content:center;padding:5vh 5vw;cursor:zoom-out}.lightbox.open{display:flex}.lightbox img{max-width:90vw;max-height:82vh;object-fit:contain;box-shadow:0 20px 70px rgba(0,0,0,.35)}.lightbox button{position:absolute;top:22px;right:30px;color:white;background:none;border:0;font-size:40px;cursor:pointer}.lightbox>span{position:absolute;bottom:22px;color:white;font-size:10px;text-transform:uppercase;letter-spacing:.15em}
@media(max-width:900px){.section{padding:85px 24px}.nav{height:74px;padding:0 20px}.header-brand{height:56px}.header-brand img{height:48px;max-width:205px}.menu-button{display:block;position:relative;z-index:2}.nav nav{display:none;position:absolute;left:0;top:73px;width:100%;background:white;padding:25px 20px;flex-direction:column;align-items:stretch;border-bottom:1px solid var(--line)}.nav nav.open{display:flex}.nav-cta{text-align:center}.hero{grid-template-columns:1fr;min-height:auto}.hero-copy{min-height:72svh;padding:70px 24px}.hero h1{margin:50px 0 35px}.hero-visual{height:65svh}.hero-stat{padding:22px}.about,.section-heading{grid-template-columns:1fr;gap:40px}.about-grid{grid-template-columns:1fr;gap:50px;margin-top:50px}.line-nav{grid-template-columns:1fr}.line-nav a{min-height:190px;border-right:0;border-bottom:1px solid var(--line)}.line-nav strong{margin-top:30px}.business-detail{padding:85px 0;scroll-margin-top:74px}.detail-hero{grid-template-columns:1fr;padding-bottom:40px}.giant-number{margin-bottom:55px}.years{margin-top:25px}.detail-copy{grid-template-columns:1fr;gap:50px;padding:55px 0 80px}.mission{grid-template-columns:1fr}.gallery-head{align-items:start;flex-direction:column}.mosaic{grid-template-columns:repeat(2,1fr);grid-auto-rows:170px}.tile-0,.tile-6{grid-column:span 2}.tile-3{grid-row:span 1}.service-list{margin-left:0}.service-list>div{grid-template-columns:50px 1fr auto}.service-list h3{font-size:19px}.project-title h3{font-size:28px}.project-photos{grid-template-columns:1fr 1fr;height:600px}.contact{grid-template-columns:1fr;gap:50px}footer{grid-template-columns:1fr}.footer-info{grid-template-columns:1fr}footer>small{margin-top:0}}
@media(max-width:520px){.mosaic{grid-auto-rows:145px}.project-photos{height:500px}.section-main>h2,.section-heading h2{font-size:44px}.detail-hero h2{font-size:54px}.contact .button{gap:15px;padding:17px 14px}.mail{font-size:11px}.hero-stat strong{font-size:40px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Correcciones de ancho, navegación fija y visor móvil — v2 */
html,body{width:100%;max-width:100%;overflow-x:hidden}body{padding-top:92px}main,header,footer,section{max-width:100%}img,svg{max-width:100%}.nav{position:fixed;top:0;right:0;left:0;width:100%;max-width:none;margin:0;z-index:1000}.hero>*,.about>*,.section-heading>*,.detail-hero>*,.detail-copy>*,.contact>*,.project-photos>*,.line-nav>*{min-width:0}.detail-hero h2,.section-heading h2,.contact h2,.service-list h3,.mail{overflow-wrap:anywhere}.mosaic,.project-photos,.line-nav{width:100%;max-width:100%}.lightbox{top:0;right:0;bottom:0;left:0;width:100%;height:100%;height:100dvh;max-width:100%;padding:max(16px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(52px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));overflow:hidden;overscroll-behavior:contain}.lightbox img{display:block;max-width:calc(100vw - 32px);max-height:calc(100dvh - 100px);width:auto;height:auto}.lightbox button{position:fixed;top:max(10px,env(safe-area-inset-top));right:max(10px,env(safe-area-inset-right));width:46px;height:46px;padding:0;display:grid;place-items:center;background:rgba(39,43,46,.85);border:1px solid rgba(255,255,255,.5);border-radius:50%;font-size:34px;line-height:1;z-index:101}.lightbox>span{right:16px;left:16px;text-align:center;overflow-wrap:anywhere}
@media(max-width:900px){body{padding-top:74px}.nav{right:0;left:0;width:100%;padding-right:max(16px,env(safe-area-inset-right));padding-left:max(16px,env(safe-area-inset-left))}.header-brand{min-width:0;max-width:calc(100% - 52px)}.header-brand img{width:auto;max-width:100%;height:46px}.nav nav{position:fixed;top:74px;right:0;left:0;width:100%;max-width:100%;max-height:calc(100dvh - 74px);overflow-y:auto}.hero,.about,.business,.business-detail,.services,.projects,.contact,footer{width:100%}.mosaic{padding-right:6px;padding-left:6px}.detail-hero,.detail-copy,.gallery-head{margin-right:24px;margin-left:24px}.contact-actions,.contact-actions .button{max-width:100%}.contact-actions .button{gap:12px;white-space:normal}.lightbox button{top:max(8px,env(safe-area-inset-top));right:max(8px,env(safe-area-inset-right))}}
@media(max-width:520px){.detail-hero h2{font-size:clamp(42px,14vw,54px)}.service-list>div{grid-template-columns:38px minmax(0,1fr) 20px}.mail{display:block;max-width:100%;font-size:10px}.lightbox img{max-width:calc(100vw - 24px);max-height:calc(100dvh - 90px)}}

/* Identidad, equipo y galería — v3 */
.line-nav .line-astudillo:hover{background:#000;color:#fff;transform:translateY(-6px)}
.line-nav strong,.giant-number{font-family:"Urbanist",Arial,sans-serif}
.astudillo-color{color:#000}
.brand-logo-node{position:relative;z-index:2;width:150px;height:150px;margin:-35px 0 0 6vw;border:7px solid #fff;border-radius:50%;display:grid;place-items:center;overflow:hidden;box-shadow:0 12px 30px rgba(39,43,46,.14)}
.brand-logo-node img{width:82%;height:82%;object-fit:contain;background:#fff;border-radius:50%;padding:6px}
.brand-logo-node span{padding:12px;color:#fff;text-align:center;text-transform:uppercase;letter-spacing:.1em;font-size:9px;font-weight:700;line-height:1.35}
.node-siac{background:var(--accent)}.node-elements{background:#e72a7a}.node-wood{background:var(--oxford)}.node-astudillo{background:#000}
.team{background:#fff}.team-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:48px 20px}.team-grid article{margin:0;min-width:0}.team-grid article>img{display:block;width:100%;aspect-ratio:3/4;object-fit:cover;background:#e8eaea;filter:grayscale(1);transition:transform .55s ease,filter .55s ease}.team-grid article:hover>img{transform:scale(1.025);filter:grayscale(.82)}.team-grid h3{margin:20px 0 6px;font-size:24px;font-weight:600}.team-grid p{margin:0;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.12em}
.contact-phone,.mail{display:flex;flex-direction:column;gap:5px;width:100%;padding:16px 0;border-bottom:1px solid var(--oxford);font-family:"Urbanist",Arial,sans-serif;font-size:clamp(24px,2.2vw,36px);font-weight:600;line-height:1.1;overflow-wrap:anywhere}.contact-phone{color:var(--accent)}.contact-phone:hover,.mail:hover{color:var(--accent)}.contact-phone small,.mail small{font-family:"DM Sans",Arial,sans-serif;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.15em;color:var(--muted)}
.back-to-top{position:fixed;right:max(20px,env(safe-area-inset-right));bottom:max(20px,env(safe-area-inset-bottom));z-index:80;width:54px;height:54px;border:0;border-radius:50%;background:var(--accent);color:#fff;font-size:24px;box-shadow:0 12px 30px rgba(0,153,161,.3);cursor:pointer;opacity:0;pointer-events:none;transform:translateY(12px);transition:.25s}.back-to-top.visible{opacity:1;pointer-events:auto;transform:none}.back-to-top:hover{background:#007e85;transform:translateY(-3px)}
.lightbox .lightbox-close{position:fixed;top:max(10px,env(safe-area-inset-top));right:max(10px,env(safe-area-inset-right));z-index:103}
.lightbox .lightbox-arrow{position:fixed;top:50%;z-index:102;width:54px;height:54px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.55);border-radius:50%;background:rgba(39,43,46,.82);color:#fff;font-size:29px;line-height:1;transform:translateY(-50%)}
.lightbox .lightbox-prev{left:max(16px,env(safe-area-inset-left));right:auto}.lightbox .lightbox-next{right:max(16px,env(safe-area-inset-right));left:auto}.lightbox .lightbox-arrow:hover{background:var(--accent);border-color:var(--accent)}
.lightbox .lightbox-caption{bottom:max(22px,env(safe-area-inset-bottom));left:70px;right:70px}.lightbox .lightbox-counter{position:fixed;top:max(25px,env(safe-area-inset-top));left:50%;right:auto;bottom:auto;transform:translateX(-50%);color:#fff;font-size:10px;letter-spacing:.15em}
@media(max-width:900px){.brand-logo-node{width:120px;height:120px;margin:-26px 0 0 18px;border-width:2px}.team-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:36px 14px}.lightbox .lightbox-arrow{top:auto;bottom:max(12px,env(safe-area-inset-bottom));width:44px;height:44px;font-size:24px;transform:none}.lightbox .lightbox-prev{left:max(12px,env(safe-area-inset-left))}.lightbox .lightbox-next{right:max(12px,env(safe-area-inset-right))}.lightbox .lightbox-caption{bottom:max(68px,calc(env(safe-area-inset-bottom) + 58px));left:12px;right:12px}.contact-phone,.mail{font-size:clamp(22px,6vw,30px)}}
@media(max-width:520px){.team-grid{grid-template-columns:1fr}.team-card h3{font-size:22px}.back-to-top{right:max(14px,env(safe-area-inset-right));bottom:max(14px,env(safe-area-inset-bottom));width:48px;height:48px}.contact-phone,.mail{font-size:22px}.lightbox .lightbox-counter{top:max(18px,env(safe-area-inset-top))}}
