@font-face{font-family:Forja;src:url('./assets/nimbus-sans-regular.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Forja;src:url('./assets/nimbus-sans-bold.woff2') format('woff2');font-style:normal;font-weight:700;font-display:swap}
:root{--ink:#171918;--paper:#f5f6f5;--orange:#fa6a2b;--muted:#b5b8b4;--line:#3b3e3a;--dark-text:#5b605a;--container:1320px;color-scheme:dark}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:100px}
body{margin:0;background:var(--ink);color:var(--paper);font-family:Forja,Arial,sans-serif;font-size:1.0625rem;line-height:1.5;-webkit-font-smoothing:antialiased}
button,a{-webkit-tap-highlight-color:transparent}
a{color:inherit;text-decoration:none}
button{font:inherit}
button:focus-visible,a:focus-visible{outline:3px solid var(--orange);outline-offset:6px}
p,h1,h2,h3,figure{margin:0}
p{max-width:66ch}
button{cursor:pointer}
img{display:block;max-width:100%;height:auto}
.container{width:calc(100% - 112px);max-width:var(--container);margin-inline:auto}
.skip-link{position:fixed;top:-90px;left:20px;z-index:100;padding:12px 18px;background:var(--orange);color:var(--ink)}
.skip-link:focus{top:12px}
.site-header{background:var(--ink);border-bottom:1px solid var(--line)}
.header-inner{min-height:94px;display:flex;justify-content:space-between;align-items:center;gap:32px}
.brand{display:inline-flex;align-items:center;gap:12px;font-size:1.6875rem;font-weight:700;letter-spacing:-.045em;white-space:nowrap;line-height:1}
.brand-light{font-weight:400}
.brand-mark{display:grid;place-items:center;width:37px;height:37px;background:var(--orange);color:var(--ink);font-size:2rem;font-weight:700;letter-spacing:-.1em;padding-right:3px}
nav{display:flex;align-items:center;gap:34px;font-size:.9375rem}
nav>a{padding-block:12px;transition:color .15s}
nav>a:hover{color:var(--orange)}
nav .nav-cta{padding:11px 17px;border:1px solid #777c75;display:flex;align-items:center;gap:28px;margin-left:8px}
.menu-toggle{display:none}
.hero{overflow:hidden}
.hero-grid{display:grid;grid-template-columns:1.09fr 1fr;gap:18px;align-items:center;min-height:730px;padding-top:48px;padding-bottom:55px}
.hero-copy{position:relative;z-index:1;padding-top:9px}
.eyebrow{font-size:.875rem;letter-spacing:.08em;text-transform:uppercase;font-weight:700;line-height:1.5}
.orange{color:var(--orange)}
h1{font-size:clamp(3.625rem,7.1vw,6.5rem);font-weight:400;line-height:1;letter-spacing:-.047em;margin-top:31px;margin-bottom:29px}
h1 span{color:var(--orange)}
.hero-description{font-size:1.1875rem;line-height:1.5;max-width:410px;color:#ced0cc}
.button{display:inline-flex;align-items:center;justify-content:space-between;gap:35px;min-height:54px;padding:16px 22px;font-size:1rem;font-weight:700;line-height:1.3;transition:background .18s,transform .18s}
.button span{font-size:1.375rem;font-weight:400;line-height:1}
.button:hover{transform:translateY(-2px)}
.button-orange{background:var(--orange);color:var(--ink);margin-top:31px}
.button-orange:hover{background:#ff854f}
.hero-note{font-size:.875rem;color:#a8ada5;margin-top:18px}
.hero-art{position:relative;margin-right:-56px;margin-left:-72px;align-self:stretch;display:flex;align-items:center}
.hero-art img{width:100%;height:100%;max-height:650px;object-fit:cover;object-position:58% 50%;mask-image:linear-gradient(to right,transparent 0%,#000 16%)}
.hero-art figcaption{position:absolute;bottom:12px;right:36px;left:98px;display:flex;justify-content:space-between;gap:20px;border-top:1px solid #63665e;padding-top:12px;color:#c3c5bf;font-size:.8125rem}
.principles{display:flex;justify-content:space-between;gap:30px;padding-top:24px;padding-bottom:25px;border-top:1px solid var(--line);color:#c8ccc4;font-size:.9375rem}
.principles span{display:flex;align-items:center;gap:12px}
.principles span:before{content:'+';color:var(--orange);font-size:1.1rem}
.section-light{background:var(--paper);color:var(--ink);color-scheme:light}
.solutions{padding:110px 0 72px}
.section-intro{display:grid;grid-template-columns:1fr 2.1fr;gap:32px;margin-bottom:61px}
.section-intro>.eyebrow{padding-top:8px}
h2{font-size:clamp(2.375rem,4.1vw,3.8rem);letter-spacing:-.035em;font-weight:400;line-height:1.08}
.section-intro>div>p{max-width:530px;margin-top:24px;color:var(--dark-text);font-size:1.125rem;line-height:1.55}
.service{display:grid;grid-template-columns:.26fr .94fr 1.35fr;gap:34px;padding:38px 0 40px;border-top:1px solid #c9cdc8}
.service-number{font-size:1rem;color:#686e65;line-height:1.3;padding-top:6px;font-variant-numeric:tabular-nums}
h3{font-size:1.9375rem;letter-spacing:-.025em;line-height:1.18;font-weight:400}
.service-detail>p{font-size:1.0625rem;color:#42473f;line-height:1.55;max-width:475px}
.service-detail .example{margin-top:19px;padding-left:16px;border-left:2px solid var(--orange);font-size:.9375rem;color:#62685e}
.example span{display:block;font-size:.875rem;color:var(--ink);font-weight:700;margin-bottom:4px}
.systems-note{display:flex;align-items:center;gap:22px;border-top:1px solid #c9cdc8;background:#e8ece6;margin-top:18px;padding:28px 26px}
.systems-note h3{font-size:1.25rem;margin-bottom:6px}
.systems-note p{font-size:.9375rem;color:#535b4e;max-width:610px}
.systems-symbol{font-size:2.75rem;line-height:1;color:#cf460d;font-weight:400}
.systems-label{margin-left:auto;padding-left:18px;font-size:.875rem;white-space:nowrap;color:#555c50}
.method{padding:105px 0 98px}
.method .section-intro>div>p{color:var(--muted)}
.method-steps{padding:0;margin:0;list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:42px}
.method-steps li{border-top:1px solid #62675f;padding-top:21px;scroll-margin-top:32px;display:flex;flex-direction:column;min-width:0}
.step-index{font-size:3.8rem;line-height:1.15;letter-spacing:-.07em;color:var(--orange);display:block;margin-bottom:24px}
.method-steps h3{font-size:1.5625rem;margin-bottom:17px}
.method-steps p{font-size:1rem;color:var(--muted);line-height:1.55;margin-bottom:27px}
.step-deliverable{font-size:.9375rem;line-height:1.5;margin-top:auto;padding-top:18px;border-top:1px solid var(--line)}
.step-deliverable span{display:block;color:#abb0a6;font-size:.8125rem;margin-bottom:6px}
.approach{padding:104px 0 110px}
.approach-grid{display:grid;grid-template-columns:1fr 1fr;gap:112px}
.approach h2{margin-top:27px;margin-bottom:30px}
.approach-lead{font-size:1.25rem;margin-bottom:18px;line-height:1.45}
.approach-grid>div>p:not(.eyebrow):not(.approach-lead){font-size:1.0625rem;line-height:1.6;color:var(--dark-text)}
.location{display:flex;gap:18px;align-items:center;font-size:.9375rem;margin-top:37px}
.location span{font-size:1.5rem;color:#cf460d}
.approach-points article{padding:25px 0 29px;border-top:1px solid #c9cdc8}
.approach-points article:first-child{padding-top:17px}
.point-label{font-size:.8125rem;font-weight:700;letter-spacing:.07em;color:#686f61}
.approach-points h3{font-size:1.3125rem;margin-top:12px;margin-bottom:12px;line-height:1.25}
.approach-points p{font-size:1rem;color:var(--dark-text);line-height:1.55}
.closing{padding:66px 0 72px;background:var(--orange);color:var(--ink)}
.closing-inner{display:grid;grid-template-columns:1.3fr 1fr;gap:18px 90px;align-items:end}
.closing .eyebrow{grid-column:1/-1}
.closing h2{font-size:clamp(2.5rem,4.8vw,4.7rem);letter-spacing:-.035em}
.closing p:not(.eyebrow){font-size:1.125rem;max-width:350px;line-height:1.5}
.button-dark{background:var(--ink);color:var(--paper);margin-top:24px}
.button-dark:hover{background:#30352f}
.closing a:focus-visible{outline-color:var(--ink)}
footer{padding:37px 0 39px}
.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:30px}
.footer-inner .brand{font-size:1.5rem}
.footer-inner .brand-mark{width:31px;height:31px;font-size:1.6rem}
.footer-inner p,.footer-inner>span{font-size:.875rem;color:#abb0a5}
@media(min-width:1550px){.hero-art{margin-right:-40px}.hero-grid{min-height:755px}}
@media(max-width:1100px){.container{width:calc(100% - 72px)}nav{gap:22px}.hero-grid{min-height:665px;gap:10px}.hero-art{margin-right:-36px;margin-left:-45px}.hero-description{font-size:1.0625rem;max-width:350px}.hero-art figcaption{left:66px;right:25px;flex-direction:column;gap:2px}.section-intro{grid-template-columns:.72fr 1.8fr}.service{grid-template-columns:.15fr .9fr 1.3fr;gap:24px}.service h3{font-size:1.7rem}.systems-label{display:none}.approach-grid{gap:60px}.method-steps{gap:28px}.closing-inner{gap:18px 50px}.footer-inner{flex-wrap:wrap}.footer-inner p{margin-left:auto}.footer-inner>span{width:100%;text-align:right;margin-top:-18px}}
@media(max-width:800px){html{scroll-padding-top:30px}.container{width:calc(100% - 44px)}.header-inner{min-height:79px;flex-wrap:wrap;gap:0}.brand{font-size:1.55rem}.menu-toggle{display:flex;align-items:center;gap:20px;border:0;background:none;padding:13px 0 13px 18px;color:var(--paper);font-size:1rem}.menu-toggle span{font-size:1.5rem;line-height:1}nav{display:flex;width:100%;flex-wrap:wrap;gap:12px 26px;padding:6px 0 20px}html.js nav{display:none}html.js nav.is-open{display:flex}nav .nav-cta{margin-left:0;padding:10px 14px}nav>a{padding:8px 0}.hero-grid{grid-template-columns:1fr;min-height:auto;padding-top:43px;padding-bottom:27px;gap:10px}.hero-copy{padding-top:0}h1{font-size:clamp(3.8rem,10vw,5.8rem);margin-top:23px;margin-bottom:23px}.eyebrow{font-size:.8125rem}.hero-description{font-size:1.125rem;max-width:460px}.hero-art{margin:12px -22px 0;height:365px;overflow:hidden}.hero-art img{width:100%;height:100%;max-height:none;object-fit:cover;object-position:65% 56%;mask-image:none}.hero-art figcaption{left:24px;right:24px;bottom:13px;flex-direction:row;background:#171918ba;padding:9px 0 0}.hero-note{font-size:.875rem}.principles{flex-wrap:wrap;justify-content:flex-start;gap:10px 28px;font-size:.875rem;padding-block:21px}.solutions,.method,.approach{padding:64px 0}.section-intro{display:block;margin-bottom:37px}.section-intro>.eyebrow{margin-bottom:22px;padding:0}.section-intro>div>p{font-size:1.0625rem;margin-top:20px}h2{font-size:clamp(2.4rem,7vw,3.5rem)}.service{grid-template-columns:40px 1fr;gap:16px 14px;padding:26px 0 31px}.service-detail{grid-column:2}.service h3{font-size:1.8125rem}.service h3 br{display:none}.service-detail>p{font-size:1rem}.service-detail .example{font-size:.9375rem}.systems-note{margin-top:11px;padding:23px 18px;align-items:flex-start;gap:16px}.systems-symbol{font-size:2rem}.systems-note p{font-size:.9375rem}.method-steps{grid-template-columns:1fr;gap:32px}.method-steps li{display:grid;grid-template-columns:60px 1fr;gap:0 18px;padding-top:23px}.step-index{font-size:2.8rem;margin:0;grid-row:1/4}.method-steps h3{margin:0 0 14px;font-size:1.5rem}.method-steps p{grid-column:2;margin-bottom:18px}.step-deliverable{grid-column:2;padding-top:13px}.approach-grid{grid-template-columns:1fr;gap:40px}.approach h2{margin-top:22px;margin-bottom:24px}.approach-lead{max-width:440px}.location{margin-top:24px}.approach-points article{padding-bottom:25px}.closing{padding:47px 0 52px}.closing-inner{grid-template-columns:1fr;gap:21px}.closing .eyebrow{grid-column:1}.closing h2{font-size:clamp(2.75rem,8vw,4rem)}.closing p:not(.eyebrow){max-width:470px}.footer-inner{display:block}.footer-inner p{margin:20px 0 8px}.footer-inner>span{display:block;width:auto;text-align:left;margin:0}footer{padding:31px 0}}
@media(max-width:390px){.container{width:calc(100% - 36px)}h1{font-size:3.5rem}.hero .eyebrow{max-width:255px;line-height:1.6}.button{gap:20px;padding-inline:17px;font-size:.9375rem}.hero-art{margin-inline:-18px;height:310px}.hero-art figcaption{font-size:.75rem;gap:10px}.principles{display:block}.principles span+span{margin-top:9px}.service{grid-template-columns:27px 1fr}.method-steps li{grid-template-columns:43px 1fr}.step-index{font-size:2.5rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}.button:hover{transform:none}}

/* Contacto */
.contact{padding:105px 0 98px;border-top:1px solid var(--line)}
.contact .section-intro>div>p{color:var(--muted)}
.mail-link{color:var(--orange);border-bottom:1px solid currentColor}
.contact-form{display:grid;grid-template-columns:1fr 1fr;gap:26px 34px;max-width:820px}
.field{display:flex;flex-direction:column;gap:9px}
.field-wide{grid-column:1/-1}
.field label{font-size:.875rem;letter-spacing:.04em;text-transform:uppercase;font-weight:700;color:#c8ccc4}
.field .optional{text-transform:none;letter-spacing:0;font-weight:400;color:#8f948c}
.field input,.field textarea{font:inherit;color:var(--paper);background:#1f2220;border:1px solid #4a4e49;padding:14px 16px;border-radius:0;width:100%}
.field textarea{resize:vertical;min-height:140px}
.field input:focus,.field textarea:focus{outline:2px solid var(--orange);outline-offset:0;border-color:var(--orange)}
.field input:user-invalid,.field textarea:user-invalid{border-color:#ff7a5c}
.field-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.consent{display:grid;grid-template-columns:22px 1fr;gap:14px;align-items:start}
.consent input{width:22px;height:22px;margin:2px 0 0;accent-color:var(--orange)}
.consent label{text-transform:none;letter-spacing:0;font-weight:400;font-size:.9375rem;color:var(--muted);line-height:1.5}
.consent a{color:var(--paper);border-bottom:1px solid #777c75}
.form-actions{display:flex;align-items:center;gap:28px;flex-wrap:wrap}
.form-actions .button{margin-top:0;border:0}
.form-actions .button[disabled]{opacity:.6;cursor:wait;transform:none}
.form-status{font-size:.9375rem;color:var(--muted);max-width:none}
.form-status.ok{color:#8fd694}
.form-status.error{color:#ff9a7e}
.form-status a{color:inherit;border-bottom:1px solid currentColor}
.footer-legal{display:flex;gap:22px;font-size:.875rem;color:#abb0a5}
.footer-legal a:hover{color:var(--orange)}
@media(max-width:800px){.contact{padding:64px 0}.contact-form{grid-template-columns:1fr;gap:20px}.footer-inner .footer-legal{margin:0 0 14px}}

/* Páginas legales */
.legal-main{padding:64px 0 90px}
.legal{max-width:760px}
.legal h1{font-size:clamp(2.4rem,4.5vw,3.5rem);margin:14px 0 8px;line-height:1.08;letter-spacing:-.035em}
.legal .updated{font-size:.875rem;color:#8f948c;margin-bottom:34px}
.legal h2{font-size:1.375rem;letter-spacing:-.01em;line-height:1.3;margin:38px 0 10px}
.legal p,.legal li{font-size:1rem;line-height:1.6;color:#cfd2cc;margin:8px 0;max-width:none}
.legal ul{padding-left:22px}
.legal a{color:var(--orange);border-bottom:1px solid currentColor}
.legal table{border-collapse:collapse;margin:14px 0;width:100%}
.legal td{padding:8px 16px 8px 0;font-size:1rem;color:#cfd2cc;vertical-align:top;border-top:1px solid var(--line)}
.legal td:first-child{font-weight:700;color:var(--paper);white-space:nowrap;width:1%}
.legal-nav{font-size:.9375rem}
.legal-nav a:hover{color:var(--orange)}
@media(max-width:800px){.legal-main{padding:40px 0 60px}.legal td:first-child{white-space:normal}}
