:root{--blue:#0B2A5B;--deep:#071A3A;--red:#D1121F;--white:#fff;--surface:#F3F5F9;--line:#DDE2EC;--ink:#0E1726;--muted:#5A6478;--green:#25D366;--font-head:'Manrope',sans-serif;--font-body:'Inter',sans-serif;--shell:1240px;--ease:cubic-bezier(.2,.75,.25,1)}
*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:92px}body{margin:0;color:var(--ink);background:var(--white);font:400 16px/1.65 var(--font-body);-webkit-font-smoothing:antialiased}body,button,input,select,textarea{font-family:var(--font-body)}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}img,svg{max-width:100%}img{display:block}button{color:inherit}::selection{background:var(--blue);color:white}:focus-visible{outline:3px solid #2675D8;outline-offset:3px}.shell{width:min(var(--shell),calc(100% - 64px));margin-inline:auto}.skip-link{position:fixed;z-index:1000;top:10px;left:10px;padding:10px 16px;color:white;background:var(--blue);transform:translateY(-160%)}.skip-link:focus{transform:none}.eyebrow,.section-index,.service-kicker,.card-index,.project-tag,.footer-label{font-size:.72rem;line-height:1.3;font-weight:700;letter-spacing:.11em;text-transform:uppercase}.eyebrow{color:var(--red)}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:var(--font-head);letter-spacing:-.045em;line-height:1.08}h1{font-size:clamp(2.6rem,6.6vw,6.2rem);font-weight:800}h2{font-size:clamp(2.1rem,4.4vw,4.4rem);font-weight:800}h3{font-size:clamp(1.25rem,2vw,1.75rem);font-weight:750}.section{padding:clamp(82px,10vw,144px) 0}.section-index{display:flex;justify-content:space-between;gap:24px;padding-bottom:20px;border-bottom:1px solid var(--line);color:var(--muted)}.section-index strong{color:var(--red)}.button{display:inline-flex;align-items:center;justify-content:center;gap:18px;min-height:54px;padding:0 22px;border:1px solid var(--blue);border-radius:4px;background:var(--blue);color:white;font-weight:650;transition:transform .25s var(--ease),background .25s,border-color .25s}.button:hover{transform:translateY(-2px);background:var(--deep);border-color:var(--deep)}.button-light{background:white;color:var(--blue);border-color:white}.button-light:hover{background:var(--surface);border-color:var(--surface)}
/* Header */
.header{position:fixed;inset:0 0 auto;z-index:50;height:84px;background:rgba(255,255,255,.96);border-bottom:1px solid rgba(221,226,236,.8);backdrop-filter:blur(14px);transition:box-shadow .25s}.header.is-scrolled{box-shadow:0 8px 24px rgba(7,26,58,.08)}.header-inner{height:100%;display:flex;align-items:center;justify-content:space-between;gap:30px}.brand{display:flex;align-items:center;gap:12px;flex-shrink:0}.brand img{width:48px;height:48px;object-fit:contain}.brand-text{display:grid;line-height:1.2}.brand-text strong{font:800 1.08rem var(--font-head);letter-spacing:-.04em;color:var(--blue)}.brand-text small{margin-top:4px;color:var(--muted);font-size:.58rem;letter-spacing:.075em}.nav{display:flex;align-items:center;gap:clamp(16px,2.6vw,36px)}.nav a{font-size:.82rem;font-weight:600;color:#344258;transition:color .2s}.nav a:hover{color:var(--red)}.header-cta{min-height:44px;padding:0 16px;font-size:.8rem}.menu-toggle{display:none;width:46px;height:46px;border:1px solid var(--line);border-radius:4px;background:white}.menu-toggle span{display:block;width:18px;height:2px;margin:5px auto;background:var(--blue);transition:transform .2s}
/* Hero */
.hero{position:relative;display:flex;align-items:center;min-height:min(860px,100svh);padding:145px 0 90px;overflow:hidden;background:var(--deep);color:white;isolation:isolate}.hero:before{position:absolute;z-index:-2;inset:0;content:"";background:linear-gradient(105deg,#071A3A 0%,#0B2A5B 58%,#0B2A5B 100%)}.hero-grid{position:absolute;z-index:-1;inset:0;opacity:.16;background-image:linear-gradient(rgba(255,255,255,.16) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.16) 1px,transparent 1px);background-size:72px 72px;mask-image:linear-gradient(90deg,#000,transparent 90%)}.hero-structure{position:absolute;z-index:-1;right:-3%;top:10%;width:min(62vw,840px);height:80%;object-fit:contain;opacity:.28;filter:brightness(1.5) saturate(.4)}.hero-canvas{position:absolute;z-index:0;inset:0;width:100%;height:100%;pointer-events:none}.hero-content{position:relative;z-index:2}.hero-kicker{display:flex;align-items:center;gap:12px;margin-bottom:30px;color:#D4E1F4;font-size:.75rem;font-weight:650;letter-spacing:.14em;text-transform:uppercase}.hero-kicker:before{content:"";width:25px;height:2px;background:var(--red)}.hero h1{max-width:900px;margin-bottom:32px;color:white}.hero h1 em{color:#9DB8E2;font-style:normal}.hero-bottom{display:flex;align-items:flex-end;justify-content:space-between;gap:40px;max-width:900px}.hero-bottom p{max-width:480px;margin:0;color:#D4DEED;font-size:clamp(1rem,1.5vw,1.2rem)}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}.hero-meta{position:absolute;z-index:2;right:32px;bottom:24px;color:#b5c6df;font-size:.68rem;letter-spacing:.11em;text-transform:uppercase}
/* Firm statement */
.firm{background:white}.firm-grid{display:grid;grid-template-columns:.8fr 2fr;gap:10vw;align-items:start;padding-top:54px}.firm-label{color:var(--red)}.firm h2{max-width:840px;margin-bottom:26px;color:var(--blue)}.firm-copy{display:grid;grid-template-columns:1fr 1fr;gap:26px;max-width:800px;color:var(--muted)}.firm-copy p{margin:0}.firm-note{padding:24px;border-left:3px solid var(--red);background:var(--surface);color:var(--blue);font-weight:650}
/* Divisions */
.services{background:var(--surface)}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:48px;padding:50px 0 40px}.section-heading h2{margin:0;color:var(--blue)}.section-heading p{max-width:450px;margin:0;color:var(--muted)}.service-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:16px}.service-card{grid-column:span 2;min-height:340px;padding:28px;border:1px solid var(--line);border-radius:5px;background:white;transition:transform .25s var(--ease),box-shadow .25s}.service-card:nth-child(4),.service-card:nth-child(5){grid-column:span 3;min-height:300px}.service-card:hover{transform:translateY(-4px);box-shadow:0 16px 40px rgba(7,26,58,.09)}.service-visual{display:flex;align-items:center;justify-content:center;height:120px;margin:-5px 0 23px;background:var(--surface);border-radius:3px}.service-visual img{width:100%;height:100%;object-fit:contain;padding:12px}.service-kicker{color:var(--red)}.service-card h3{margin:12px 0;color:var(--blue)}.service-card p{margin:0;color:var(--muted);font-size:.92rem}.service-foot{margin-top:22px;color:var(--muted);font-size:.78rem}
/* Capacity */
.capacity{background:white}.capacity .section-heading{padding-bottom:36px}.bento{display:grid;grid-template-columns:1.35fr 1fr 1fr;gap:14px}.bento-card{position:relative;min-height:210px;padding:28px;border:1px solid var(--line);border-radius:5px;background:white;overflow:hidden}.bento-card.primary{grid-row:span 2;display:flex;flex-direction:column;justify-content:space-between;min-height:435px;color:white;background:var(--blue);border-color:var(--blue)}.bento-card.primary h3{max-width:400px;font-size:clamp(1.8rem,3vw,2.7rem)}.bento-card.primary p{max-width:420px;color:#D4DEED}.bento-card h3{margin:30px 0 10px;color:var(--blue)}.bento-card p{margin:0;color:var(--muted);font-size:.9rem}.bento-tag{color:var(--red)}.bento-card.primary .bento-tag{color:#ff9299}.capability-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}.capability-list span{padding:7px 10px;border:1px solid rgba(255,255,255,.24);border-radius:2px;font-size:.68rem;letter-spacing:.07em}.bento-num{font:800 clamp(2rem,3vw,3.2rem) var(--font-head);color:var(--blue);letter-spacing:-.06em}
/* Process */
.process{background:var(--surface)}.process-row{display:grid;grid-template-columns:repeat(5,1fr);margin-top:55px;border-top:1px solid #BAC5D6}.process-step{position:relative;padding:30px 22px 0 0}.process-step:before{position:absolute;top:-5px;left:0;width:9px;height:9px;border-radius:50%;background:var(--red);content:""}.process-step strong{font-size:.7rem;letter-spacing:.1em;color:var(--muted)}.process-step h3{margin:26px 0 12px;color:var(--blue)}.process-step p{margin:0;color:var(--muted);font-size:.88rem}
/* Portfolio placeholders */
.portfolio{background:white}.filters{display:flex;flex-wrap:wrap;gap:8px}.filter-button{padding:9px 13px;border:1px solid var(--line);border-radius:3px;background:white;color:var(--muted);font-size:.75rem;font-weight:650;cursor:pointer}.filter-button:hover,.filter-button.is-active{border-color:var(--blue);background:var(--blue);color:white}.project-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.project-card{min-height:290px;padding:0;text-align:left;border:1px solid var(--line);border-radius:4px;background:white;overflow:hidden}.project-placeholder{display:flex;min-height:190px;align-items:center;justify-content:center;padding:24px;text-align:center;background:linear-gradient(135deg,#F3F5F9,#e8edf5);color:var(--blue)}.project-placeholder span{display:grid;gap:10px;max-width:220px}.placeholder-mark{font:800 2rem var(--font-head);letter-spacing:-.08em;color:#A7B6CC}.project-info{padding:18px}.project-tag{color:var(--red)}.project-info h3{margin:10px 0 0;color:var(--blue);font-size:1.15rem}.project-note{margin:24px 0 0;padding:16px 18px;border-left:3px solid var(--red);background:var(--surface);color:var(--muted);font-size:.86rem}
.visual-references{margin:0 0 38px}.visual-references-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;margin:0 0 18px}.visual-references-heading h3{margin:9px 0 0;color:var(--blue)}.visual-references-heading p{max-width:440px;margin:0;color:var(--muted);font-size:.86rem}.reference-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.reference-card{min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:4px;background:white}.reference-visual{height:190px;background:var(--surface)}.reference-visual img{width:100%;height:100%;object-fit:cover}.reference-visual-diagram{background:var(--deep)}.reference-info{padding:16px}.reference-info h3{margin:8px 0 0;color:var(--blue);font-size:1.05rem}
@media(max-width:900px){.reference-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:680px){.visual-references-heading{display:block}.visual-references-heading p{margin-top:12px}.reference-grid{gap:9px}.reference-visual{height:145px}.reference-info{padding:12px}.reference-info h3{font-size:.94rem}}
/* Video panel */
.film{padding:0 0 clamp(84px,10vw,140px);background:white}.film-frame{display:grid;grid-template-columns:1fr 1fr;min-height:330px;border-radius:5px;overflow:hidden;background:var(--deep);color:white}.film-placeholder{display:flex;align-items:center;justify-content:center;min-height:300px;border-right:1px solid rgba(255,255,255,.2);background:linear-gradient(145deg,#0B2A5B,#071A3A)}.film-placeholder span{display:grid;gap:10px;text-align:center;color:#d8e4f5}.film-placeholder b{font:800 1.8rem var(--font-head)}.film-copy{align-self:center;padding:clamp(28px,5vw,70px)}.film-copy h2{margin:0 0 14px;font-size:clamp(1.7rem,3vw,2.6rem)}.film-copy p{margin:0;color:#d4deed}
/* Contact */
.contact{background:var(--blue);color:white}.contact .section-index{border-color:rgba(255,255,255,.28);color:#d4deed}.contact .section-index strong{color:#ff9299}.contact-grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:9vw;padding-top:52px}.contact h2{margin:0 0 24px}.contact-intro{max-width:420px;color:#d4deed}.contact-phone{margin-top:34px;color:white}.contact-phone span{display:block;margin-bottom:8px;color:#d4deed;font-size:.74rem;letter-spacing:.1em;text-transform:uppercase}.contact-form{display:grid;grid-template-columns:1fr 1fr;gap:17px}.field{display:grid;gap:8px}.field.full{grid-column:1/-1}.field label{font-size:.7rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:#d4deed}.field input,.field select,.field textarea{width:100%;min-height:50px;padding:12px 14px;border:1px solid rgba(255,255,255,.34);border-radius:3px;background:#fff;color:var(--ink);font-size:.95rem}.field textarea{min-height:100px;resize:vertical}.contact-form .button{grid-column:1/-1;justify-self:start;background:var(--red);border-color:var(--red)}.contact-form .button:hover{background:#ad0f1a}.form-hint{grid-column:1/-1;margin:0;color:#d4deed;font-size:.78rem}.form-feedback{grid-column:1/-1;min-height:1.5em;margin:0;color:#fff;font-size:.83rem}
/* Footer */
.footer{padding:48px 0 32px;background:#06152F;color:white}.footer-top{display:flex;align-items:flex-start;justify-content:space-between;gap:40px;padding-bottom:38px;border-bottom:1px solid rgba(255,255,255,.2)}.footer .brand-text strong{color:white}.footer .brand-text small{color:#c5d2e5}.footer-logo{width:48px;height:48px;object-fit:contain;filter:brightness(0) invert(1)}.footer-nav{display:flex;flex-wrap:wrap;gap:22px;color:#d4deed;font-size:.82rem}.footer-bottom{display:flex;justify-content:space-between;gap:20px;padding-top:20px;color:#b4c3d8;font-size:.75rem}.footer-wa{color:white}
/* WhatsApp */
.whatsapp-float{position:fixed;z-index:999;right:max(22px,env(safe-area-inset-right));bottom:max(22px,env(safe-area-inset-bottom));display:inline-flex;align-items:center;gap:11px;min-height:58px;padding:0 20px;border:0;border-radius:999px;background:var(--green);color:#073b1b;font-size:.84rem;font-weight:750;box-shadow:0 10px 28px rgba(4,44,22,.24);transition:transform .2s,box-shadow .2s;animation:wa-pulse 4s ease-out infinite}.whatsapp-float:hover{transform:translateY(-3px);box-shadow:0 14px 32px rgba(4,44,22,.32)}.whatsapp-float svg{width:25px;height:25px;fill:currentColor;flex:none}@keyframes wa-pulse{0%,82%,100%{box-shadow:0 0 0 0 rgba(37,211,102,.3),0 10px 28px rgba(4,44,22,.24)}90%{box-shadow:0 0 0 9px rgba(37,211,102,0),0 10px 28px rgba(4,44,22,.24)}}
/* Dialog and reveal-safe enhancement */
.lightbox{width:min(900px,calc(100% - 32px));padding:24px;border:0;border-radius:5px;background:white;color:var(--ink)}.lightbox::backdrop{background:rgba(7,26,58,.8)}.lightbox-close{float:right;padding:8px 12px;border:1px solid var(--line);background:white;cursor:pointer}.lightbox img{clear:both;width:100%;height:min(70vh,650px);object-fit:contain}.js-reveal{opacity:1}.js-ready .reveal{animation:rise-in .7s var(--ease) both}@keyframes rise-in{from{opacity:.01;transform:translateY(16px)}to{opacity:1;transform:none}}
@media(max-width:900px){.shell{width:min(var(--shell),calc(100% - 40px))}.header-inner{gap:16px}.nav{gap:14px}.nav a{font-size:.75rem}.header-cta{padding:0 12px;font-size:.72rem}.hero{min-height:760px}.hero-structure{right:-18%;width:82vw;opacity:.2}.firm-grid{grid-template-columns:1fr;gap:26px}.service-card,.service-card:nth-child(4),.service-card:nth-child(5){grid-column:span 3}.bento{grid-template-columns:1fr 1fr}.bento-card.primary{grid-column:1/-1;grid-row:auto;min-height:300px}.project-grid{grid-template-columns:repeat(2,1fr)}.contact-grid{gap:5vw}}
@media(max-width:680px){html{scroll-padding-top:74px}.shell{width:calc(100% - 36px)}.header{height:72px}.brand img{width:42px;height:42px}.brand-text strong{font-size:.96rem}.brand-text small{font-size:.51rem}.header-cta{display:none}.menu-toggle{display:block;position:relative;z-index:55}.menu-toggle[aria-expanded="true"] span:first-child{transform:translateY(3.5px) rotate(45deg)}.menu-toggle[aria-expanded="true"] span:last-child{transform:translateY(-3.5px) rotate(-45deg)}.nav{position:fixed;z-index:54;inset:0;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:22px;padding:84px 10vw 40px;background:white;opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .2s,visibility .2s,transform .2s}.nav.is-open{opacity:1;visibility:visible;transform:none}.nav a{font:750 clamp(1.8rem,8vw,3rem) var(--font-head);color:var(--blue)}.hero{min-height:760px;min-height:100svh;padding:118px 0 82px}.hero h1{font-size:clamp(2.65rem,13vw,5rem)}.hero-bottom{display:block}.hero-bottom p{max-width:390px}.hero-structure{top:32%;right:-40%;width:125vw;height:60%;opacity:.18}.hero-meta{right:18px;bottom:14px;font-size:.56rem}.section{padding:78px 0}.section-index{font-size:.62rem;gap:12px}.section-index span:last-child{text-align:right}.section-heading{display:block;padding:38px 0 28px}.section-heading p{margin-top:18px}.firm-copy{grid-template-columns:1fr;gap:15px}.service-grid{display:block}.service-card,.service-card:nth-child(4),.service-card:nth-child(5){min-height:0;margin-bottom:12px;padding:20px}.service-visual{height:130px;margin:0 0 18px}.bento{grid-template-columns:1fr}.bento-card,.bento-card.primary{min-height:225px;padding:22px}.bento-card.primary{min-height:300px}.process-row{grid-template-columns:1fr;margin-top:38px;border-top:0;border-left:1px solid #BAC5D6}.process-step{padding:4px 0 28px 25px}.process-step:before{top:4px;left:-5px}.process-step h3{margin:12px 0 8px}.portfolio .section-heading{padding-bottom:24px}.filters{gap:6px}.filter-button{padding:8px 10px;font-size:.69rem}.project-grid{grid-template-columns:1fr 1fr;gap:9px}.project-card{min-height:235px}.project-placeholder{min-height:145px;padding:12px}.project-info{padding:13px}.project-info h3{font-size:1rem}.film{padding-bottom:78px}.film-frame{grid-template-columns:1fr}.film-placeholder{min-height:190px;border-right:0;border-bottom:1px solid rgba(255,255,255,.2)}.film-copy{padding:28px}.contact-grid{grid-template-columns:1fr;gap:34px;padding-top:38px}.contact-form{grid-template-columns:1fr}.field.full,.contact-form .button,.form-hint,.form-feedback{grid-column:1}.footer-top,.footer-bottom{display:grid}.footer-nav{gap:14px}.whatsapp-float{right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));width:60px;height:60px;min-height:60px;justify-content:center;padding:0}.whatsapp-float span{display:none}.whatsapp-float svg{width:29px;height:29px}}
.header-facebook{position:relative;z-index:56;display:grid;place-items:center;flex:0 0 42px;width:42px;height:42px;border:1px solid var(--line);border-radius:50%;background:#fff;color:#1769e0;transition:transform .2s var(--ease),background .2s,color .2s}
.header-facebook:hover{transform:translateY(-2px);background:#1769e0;color:#fff}
.header-facebook svg{width:19px;height:19px;fill:currentColor}
.whatsapp-float{position:fixed;display:grid;place-items:center;width:64px;height:64px;min-height:64px;padding:0;border:2px solid rgba(255,255,255,.82);color:#fff;box-shadow:0 12px 34px rgba(4,44,22,.34);animation:wa-pulse 3.2s ease-out infinite}
.whatsapp-float:before{position:absolute;z-index:-1;inset:-7px;border:2px solid rgba(37,211,102,.56);border-radius:50%;content:"";animation:wa-ring 2.4s ease-out infinite}
.whatsapp-float svg{width:32px;height:32px;fill:currentColor}
.whatsapp-float span{display:none}
.whatsapp-float:hover{transform:translateY(-4px) scale(1.04)}
@keyframes wa-ring{0%{transform:scale(.86);opacity:.9}80%,100%{transform:scale(1.28);opacity:0}}
.location-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.75fr);gap:18px}
.location-map{min-height:420px;overflow:hidden;border:1px solid #34353c;border-radius:5px;background:#15161b;box-shadow:0 24px 70px rgba(0,0,0,.22)}
.location-map iframe{display:block;width:100%;height:100%;min-height:420px;border:0;filter:saturate(.78) contrast(1.04)}
.location-card{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:clamp(26px,4vw,46px);border:1px solid #303138;border-radius:5px;background:radial-gradient(ellipse at 100% 0,rgba(183,68,74,.17),transparent 52%),#111217}
.location-card .eyebrow{margin-bottom:14px}
.location-card h3{margin:0 0 18px;color:#f3f3f1;font-size:clamp(1.6rem,2.7vw,2.3rem)}
.location-card>p:not(.eyebrow){margin-bottom:28px;color:#b4b5bc}
.location-card .button{margin-top:0;background:#b7444a;border-color:#b7444a}
.location-card .button:hover{background:#92383d;border-color:#92383d}
@media(max-width:680px){.header-facebook{width:38px;height:38px;flex-basis:38px}.whatsapp-float{right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));width:58px;height:58px;min-height:58px}.whatsapp-float svg{width:29px;height:29px}.location-layout{grid-template-columns:1fr}.location-map,.location-map iframe{min-height:320px}.location-card{padding:26px}}
@media(prefers-reduced-motion:reduce){.whatsapp-float,.whatsapp-float:before{animation:none!important;transition:none!important}}rid{display:block}.service-card,.service-card:nth-child(4),.service-card:nth-child(5){min-height:0;margin-bottom:12px;padding:20px}.service-visual{height:130px;margin:0 0 18px}.bento{grid-template-columns:1fr}.bento-card,.bento-card.primary{min-height:225px;padding:22px}.bento-card.primary{min-height:300px}.process-row{grid-template-columns:1fr;margin-top:38px;border-top:0;border-left:1px solid #BAC5D6}.process-step{padding:4px 0 28px 25px}.process-step:before{top:4px;left:-5px}.process-step h3{margin:12px 0 8px}.portfolio .section-heading{padding-bottom:24px}.filters{gap:6px}.filter-button{padding:8px 10px;font-size:.69rem}.project-grid{grid-template-columns:1fr 1fr;gap:9px}.project-card{min-height:235px}.project-placeholder{min-height:145px;padding:12px}.project-info{padding:13px}.project-info h3{font-size:1rem}.film{padding-bottom:78px}.film-frame{grid-template-columns:1fr}.film-placeholder{min-height:190px;border-right:0;border-bottom:1px solid rgba(255,255,255,.2)}.film-copy{padding:28px}.contact-grid{grid-template-columns:1fr;gap:34px;padding-top:38px}.contact-form{grid-template-columns:1fr}.field.full,.contact-form .button,.form-hint,.form-feedback{grid-column:1}.footer-top,.footer-bottom{display:grid}.footer-nav{gap:14px}.whatsapp-float{right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));width:60px;height:60px;min-height:60px;justify-content:center;padding:0}.whatsapp-float span{display:none}.whatsapp-float svg{width:29px;height:29px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.whatsapp-float{animation:none}.js-ready .reveal{animation:none}}


/* Lenguaje visual oscuro corporativo y nuevas secciones B2B */
:root{--blue:#171b26;--deep:#08090c;--red:#b7444a;--white:#f3f3f1;--surface:#101116;--line:#292a30;--ink:#f0f0ee;--muted:#a5a6ad;--green:#25D366;--shell:1240px}
body{background:#090a0d;color:var(--ink)}.header{background:rgba(9,10,13,.92);border-color:rgba(255,255,255,.09)}.brand-text strong,.nav a,.section-heading h2,.firm h2,.service-card h3,.bento-card h3,.process-step h3,.project-info h3,.reference-info h3,.visual-references-heading h3{color:#f2f2f0}.brand-text small,.nav a,.section-index,.section-heading p,.firm-copy,.firm-note,.service-card p,.bento-card p,.process-step p,.project-note,.reference-info,.visual-references-heading p{color:#a5a6ad}.section-index,.project-card,.service-card,.bento-card,.reference-card{border-color:#292a30}.firm,.capacity,.portfolio,.film,.studies,.faq{background:#0a0b0e}.services,.process,.comparison,.coverage{background:#0e0f13}.contact{background:#111319}.footer{background:#07080a}.section-index{border-color:#292a30}.service-card,.bento-card,.project-card,.reference-card{background:#111217}.service-visual,.project-placeholder,.reference-visual,.film-placeholder{background:#17181e}.project-placeholder{color:#ededeb}.filter-button{background:#111217;border-color:#34353b;color:#c4c4ca}.filter-button:hover,.filter-button.is-active,.button{background:#b7444a;border-color:#b7444a}.button-light{background:#f2f2f0;color:#14151a;border-color:#f2f2f0}.button-light:hover{background:#d7d7d4;border-color:#d7d7d4}.hero:before{background:linear-gradient(105deg,#08090c 0%,#101218 58%,#171923 100%)}.hero-grid{opacity:.08}.hero-structure{filter:brightness(1.3) saturate(.35)}.hero h1 em{color:#c9cbd1}.contact-form .button{background:#b7444a}.contact-form .email-button{background:transparent;border-color:#777;color:#f2f2f0}.contact .section-index,.contact .section-index strong{color:#d5d5d2}.contact .section-index{border-color:#383940}.nav.is-open{background:#0a0b0e}.nav.is-open a{color:#f2f2f0}.menu-toggle{background:#111217;border-color:#393a40}.menu-toggle span{background:#f2f2f0}.firm-note{background:#121318;border-color:#b7444a;color:#dededc}.bento-card.primary{background:#171b26;border-color:#292a30}.bento-num{color:#f1f1ee}.lightbox{background:#111217;color:#f1f1ee}.lightbox-close{background:#17181e;color:#f1f1ee;border-color:#333}
.trust-band{padding:27px 0;background:#131419;border-block:1px solid #25262b}.trust-inner{display:flex;align-items:center;justify-content:space-between;gap:22px;flex-wrap:wrap}.trust-inner p{margin:0;color:#f4f4f0;font-weight:700}.trust-inner span{color:#a9aab1;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase}.service-card ul{margin:18px 0 0;padding-left:18px;color:#b8b9c0;font-size:.85rem}.text-link{display:inline-flex;gap:12px;margin-top:20px;color:#e08c8f;font-weight:700;font-size:.86rem}.text-link:hover{color:white}.metric-card{min-height:230px}.metric-card .bento-num{margin-top:36px;font-size:clamp(2rem,3vw,3.2rem);overflow-wrap:anywhere}.metric-card h3{margin:0 0 10px;font-size:1.05rem}.studies .section-heading,.faq .section-heading{padding-bottom:34px}.study-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.study-card{overflow:hidden;border:1px solid var(--line);background:#111217;transition:transform .25s var(--ease),border-color .25s}.study-card:hover{transform:translateY(-3px);border-color:#555760}.study-image{height:170px;display:grid;place-items:center;background:#17181e;color:#8f9097;text-align:center;padding:20px}.study-image img{width:100%;height:100%;object-fit:cover;filter:brightness(.78) saturate(.75)}.study-content{padding:22px}.study-content h3{margin:10px 0 16px;color:#f4f4f1}.study-content p{color:#b5b6bc;font-size:.84rem}.study-content b{color:#f2f2ef}.study-content dl{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:14px 0;border-block:1px solid #292a30}.study-content dl div{min-width:0}.study-content dt{font-size:.64rem;color:#a3a4aa;text-transform:uppercase;letter-spacing:.08em}.study-content dd{margin:4px 0 0;color:#e2e2df;font-size:.76rem;overflow-wrap:anywhere}.comparison-empty{min-height:190px;display:grid;place-items:center;padding:32px;border:1px dashed #46474d;background:#111217;color:#b8b9bf;text-align:center}.comparison-sliders{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.comparison-frame{position:relative;aspect-ratio:16/9;overflow:hidden;background:#17181e}.comparison-frame>img,.comparison-before img{position:absolute;width:100%;height:100%;object-fit:cover}.comparison-before{position:absolute;inset:0 auto 0 0;width:var(--split,50%);overflow:hidden;border-right:2px solid white}.comparison-before img{width:calc(100vw - 48px);max-width:580px}.comparison-frame input{position:absolute;inset:auto 5% 12px;width:90%;accent-color:#b7444a}.comparison-item figcaption{padding-top:10px;color:#ddd}.coverage-map{position:relative;min-height:260px;display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;padding:28px;background:radial-gradient(ellipse at center,#191b22 0%,#101116 70%);border:1px solid #282930}.coverage-core{display:grid;place-content:center;width:140px;height:140px;border:1px solid #b7444a;border-radius:50%;color:#f2f2f0;font-weight:800;text-align:center;line-height:1.25}.coverage-map>span{padding:10px 14px;border:1px solid #393a40;border-radius:99px;background:#14151a;color:#c7c7cd;font-size:.8rem}.faq-list{border-top:1px solid #303138}.faq-list details{border-bottom:1px solid #303138;padding:20px 0}.faq-list summary{cursor:pointer;list-style:none;color:#f2f2ef;font-size:1.06rem;font-weight:650}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary:after{content:'+';float:right;color:#e08c8f}.faq-list details[open] summary:after{content:'−'}.faq-list details p{max-width:760px;margin:15px 0 0;color:#b8b9c0}.download-band{padding:42px 0;background:#15161b;border-block:1px solid #292a30}.download-band>.shell,.prefooter>.shell{display:flex;align-items:center;justify-content:space-between;gap:24px}.download-band h2{margin:7px 0 0;font-size:clamp(1.5rem,3vw,2.3rem)}.prefooter{padding:clamp(54px,8vw,100px) 0;background:#101116}.prefooter p{margin:0;font:800 clamp(2rem,5vw,4rem)/1.1 var(--font-head);letter-spacing:-.045em;color:#f5f5f2}.privacy-consent{display:flex;align-items:flex-start;gap:10px;color:#dededb!important;font-size:.83rem!important;letter-spacing:normal!important;text-transform:none!important}.privacy-consent input{margin-top:4px;accent-color:#b7444a}.privacy-consent a{text-decoration:underline}.js-ready .reveal,.reveal{opacity:1;transform:none}.reveal.is-visible,.service-card.is-visible,.study-card.is-visible,.metric-card.is-visible{animation:rise-in .48s var(--ease) both}a,button,.service-card,.study-card{transition-duration:.22s}
@media(max-width:900px){.study-grid{grid-template-columns:1fr 1fr}.trust-inner{justify-content:flex-start}.trust-inner p{width:100%}}
@media(max-width:680px){.study-grid,.comparison-sliders{grid-template-columns:1fr}.trust-inner{gap:13px}.trust-inner span{font-size:.6rem}.download-band>.shell,.prefooter>.shell{align-items:flex-start;flex-direction:column}.coverage-map{gap:8px}.coverage-core{width:110px;height:110px}.metric-card{min-height:190px}.comparison-before img{width:calc(100vw - 36px)}}

/* Scroll progress, reveals and motion-safe interaction polish */
.scroll-progress{position:fixed;z-index:1001;inset:0 0 auto;height:3px;pointer-events:none}
.scroll-progress span{display:block;width:100%;height:100%;transform:scaleX(0);transform-origin:left;background:linear-gradient(90deg,#b7444a,#e6a5a6 55%,#f0d6d7);box-shadow:0 0 12px rgba(183,68,74,.5);will-change:transform}
html{scroll-padding-top:96px}
.motion-reveal{opacity:0;transform:translate3d(0,22px,0);filter:blur(2px);transition:opacity .72s var(--ease),transform .72s var(--ease),filter .72s var(--ease);transition-delay:var(--motion-delay,0ms)}
.motion-reveal.is-visible{opacity:1;transform:translate3d(0,0,0);filter:none}
.motion-reveal.is-visible.reveal{animation:none}
.button,.text-link,.home-visual-card,.gallery-preview-card,.service-page-card,.gallery-collection-card,.company-pillar-grid article,.services-photo-grid figure{will-change:transform}
.text-link span,.button span,.service-page-action span{display:inline-block;transition:transform .25s var(--ease)}
.text-link:hover span,.button:hover span,.service-page-card:hover .service-page-action span{transform:translate(3px,-2px)}
.home-visual-card:focus-visible,.gallery-preview-card:focus-visible,.service-page-card:focus-visible,.gallery-collection-card:focus-visible{outline:3px solid #e6a5a6;outline-offset:4px}
.trust-inner span{padding:8px 12px;border:1px solid #303138;border-radius:99px;background:#17181e;color:#dededc}
.reference-mosaic{display:grid;grid-template-columns:1.35fr 1fr 1fr;gap:14px}
.reference-tile{position:relative;min-width:0;min-height:260px;margin:0;overflow:hidden;border:1px solid #292a30;border-radius:4px;background:#14151a;isolation:isolate}
.reference-tile-featured{min-height:360px;grid-row:span 2}
.reference-tile img{position:absolute;z-index:-1;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .75s var(--ease),filter .55s var(--ease)}
.reference-tile:after{position:absolute;z-index:-1;inset:25% 0 0;background:linear-gradient(0deg,rgba(4,5,8,.9),transparent);content:""}
.reference-tile:hover img{transform:scale(1.045);filter:saturate(1.08)}
.reference-tile figcaption{position:absolute;inset:auto 20px 20px;display:grid;gap:7px;color:#fff}
.reference-tile figcaption span{color:#e6a5a6;font-size:.66rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.reference-tile figcaption strong{font:750 clamp(1.08rem,1.7vw,1.45rem) var(--font-head);letter-spacing:-.025em}
.reference-disclaimer{margin:16px 0 0;color:#96979f;font-size:.75rem}
@media(max-width:900px){.reference-mosaic{grid-template-columns:1fr 1fr}.reference-tile-featured{grid-column:1/-1;grid-row:auto;min-height:340px}.reference-tile{min-height:240px}}
@media(max-width:680px){html{scroll-padding-top:80px}.scroll-progress{height:2px}.reference-mosaic{gap:9px}.reference-tile-featured{min-height:280px}.reference-tile{min-height:190px}.reference-tile figcaption{inset:auto 12px 13px;gap:5px}.reference-tile figcaption span{font-size:.55rem}.reference-tile figcaption strong{font-size:.92rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}.motion-reveal,.motion-reveal.is-visible{opacity:1;transform:none;filter:none;transition:none;animation:none}.scroll-progress span{will-change:auto}.text-link span,.button span,.service-page-action span{transition:none}}
