/* Archivo (OFL) alojada en la propia web: más rápida y sin enviar la IP del visitante a Google */
@font-face{font-family:"Archivo";font-style:normal;font-weight:100 900;font-stretch:62% 125%;font-display:swap;src:url(/assets/fonts/archivo-latin-v25.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Archivo";font-style:normal;font-weight:100 900;font-stretch:62% 125%;font-display:swap;src:url(/assets/fonts/archivo-latin-ext-v25.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
:root{
  /* Layout: escaparate sin fotos. El peso visual lo llevan la marca (símbolo Λ, brasa, bloques de color) y la tipografía Archivo; bandas a todo el ancho y columna de 1200 px. Tema único de marca. */
  --granito:#EEEEE9;
  --granito-2:#E4E4DD;
  --blanco:#FFFFFF;
  --tinta:#14181B;
  --lousa:#3A4349;
  --gris:#5A646B;
  --linea:#C9CCC6;
  --brasa:#E4471E;
  --ria:#0E4744;
  --sobre-tinta:#A9B1B5;
  --sobre-ria:#C9D6D4;
  --linea-oscura:#2E363B;
  --f:"Archivo","Helvetica Neue",Arial,sans-serif;
  color-scheme: light;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:84px}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--granito);color:var(--tinta);font-family:var(--f);font-size:17px;line-height:1.55;-webkit-font-smoothing:antialiased}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:10;background:var(--granito)}
a{color:inherit}
h1,h2,h3,p,ul,ol,dl,figure{margin:0}
ul,ol{padding:0;list-style:none}
[hidden]{display:none!important}
img{max-width:100%}
:focus-visible{outline:3px solid var(--brasa);outline-offset:3px}

/* tipo */
.display{font-stretch:125%;font-weight:700;letter-spacing:-0.02em;line-height:1.02;text-wrap:balance}
.label{font-stretch:75%;font-weight:600;font-size:13px;letter-spacing:.16em;text-transform:uppercase}
.h2{font-size:clamp(32px,4.6vw,56px)}
.h3{font-size:21px;font-stretch:112.5%;font-weight:700;line-height:1.15;letter-spacing:-0.005em;text-wrap:balance}
.lead{font-size:clamp(18px,1.6vw,21px);line-height:1.45;max-width:46ch}
.muted{color:var(--lousa)}
.small{font-size:14px}
.dot{display:inline-block;width:.3em;height:.3em;border-radius:50%;background:var(--brasa);margin-left:.04em}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.hueco{background:rgba(228,71,30,.10);outline:1.5px dashed var(--brasa);outline-offset:1px;border-radius:3px;padding:0 .3em;font-stretch:87.5%;font-weight:600;color:inherit;-webkit-box-decoration-break:clone;box-decoration-break:clone}

/* estructura */
.wrap{max-width:1200px;margin-inline:auto;padding-left:max(16px, env(safe-area-inset-left, 0px));padding-right:max(16px, env(safe-area-inset-right, 0px))}
@media (min-width:720px){.wrap{padding-left:max(32px, env(safe-area-inset-left, 0px));padding-right:max(32px, env(safe-area-inset-right, 0px))}}
.section{padding-block:clamp(72px,10vw,128px)}
.head{display:grid;gap:14px;margin-bottom:clamp(36px,5vw,60px)}
.head-row{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:14px 32px}
@media (max-width:720px){.head-row{grid-template-columns:minmax(0,1fr)}}
.tinta{background:var(--tinta);color:var(--granito)}
.tinta .muted{color:var(--sobre-tinta)}
.granito-2{background:var(--granito-2)}

/* aviso de prueba */
.draft{background:var(--tinta);color:var(--granito);font-size:13px}
.draft .wrap{padding-block:8px}
.draft b{font-weight:600}

/* cabecera */
.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:var(--granito);border-bottom:1px solid var(--linea)}
.top .wrap{display:flex;align-items:center;gap:24px;padding-block:14px;position:relative}
.brand{display:flex;color:var(--tinta);text-decoration:none;flex-shrink:0}
.brand svg{width:124px;height:auto;display:block}
.nav{display:flex;align-items:center;gap:28px;margin-left:auto;font-size:15px}
.nav a{text-decoration:none;padding-block:10px;position:relative}
.nav a:not(.btn):hover::after{content:"";position:absolute;left:50%;bottom:2px;width:6px;height:6px;margin-left:-3px;border-radius:50%;background:var(--brasa)}
.lang{display:flex;border:1px solid var(--tinta);border-radius:999px;padding:3px;gap:2px;flex-shrink:0}
.lang a,.lang button{display:inline-flex;align-items:center;justify-content:center;font:inherit;font-stretch:75%;font-weight:600;font-size:13px;letter-spacing:.12em;text-decoration:none;border:0;background:transparent;color:var(--tinta);border-radius:999px;min-width:44px;min-height:34px;cursor:pointer}
.lang [aria-current="page"],.lang [aria-pressed="true"]{background:var(--tinta);color:var(--granito)}
.menu-btn{display:none;font:inherit;font-weight:600;font-size:15px;background:transparent;border:1px solid var(--tinta);color:var(--tinta);border-radius:999px;padding:0 18px;min-height:44px;cursor:pointer}
@media (max-width:900px){
  .menu-btn{display:inline-flex;align-items:center;margin-left:auto}
  .nav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--granito);border-bottom:1px solid var(--linea);flex-direction:column;align-items:stretch;gap:0;padding:8px max(16px, env(safe-area-inset-right, 0px)) 20px max(16px, env(safe-area-inset-left, 0px))}
  .nav.open{display:flex}
  .nav a{padding-block:14px;border-bottom:1px solid var(--linea);font-size:17px}
  .nav a:not(.btn):hover::after{display:none}
  .nav .btn{margin-top:16px;justify-content:center;min-height:50px}
  .top .wrap{gap:12px}
}

/* botones */
.btn{display:inline-flex;align-items:center;gap:10px;font-weight:600;font-size:16px;text-decoration:none;border-radius:999px;padding:0 24px;min-height:50px;border:1.5px solid var(--tinta);cursor:pointer;font-family:inherit;transition:background-color .15s,color .15s,border-color .15s}
.btn-primary{background:var(--tinta);color:var(--granito)}
.btn-primary::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--brasa)}
.btn-primary:hover{background:var(--ria);border-color:var(--ria)}
.btn-ghost{background:transparent;color:var(--tinta)}
.btn-ghost:hover{background:var(--tinta);color:var(--granito)}
.nav .btn{min-height:44px;padding:0 18px;font-size:15px}
.btn[disabled]{opacity:.6;cursor:progress}

/* hero */
.hero{padding-block:clamp(40px,6vw,88px) clamp(56px,8vw,104px)}
.hero-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(32px,5vw,72px);align-items:stretch}
.hero-copy{display:flex;flex-direction:column;justify-content:center;gap:28px;min-width:0}
.eyebrow{color:var(--gris)}
.hero h1{font-size:clamp(38px,4.9vw,68px)}
.hero .lead{color:var(--lousa)}
.ctas{display:flex;flex-wrap:wrap;gap:12px}
.hero-art{position:relative;overflow:hidden;background:var(--tinta);color:var(--granito);border-radius:8px;min-height:440px}
.art-mark{position:absolute;width:96%;max-width:none;right:-24%;bottom:-6%;color:var(--granito)}
.art-dot{fill:var(--brasa);transform-box:fill-box;transform-origin:center}
.art-top,.art-bottom{position:absolute;left:28px;color:var(--sobre-tinta)}
.art-top{top:26px}
.art-bottom{bottom:24px}
@media (prefers-reduced-motion: no-preference){
  .art-mark{animation:subir .9s cubic-bezier(.2,.7,.2,1) both}
  .art-dot{animation:brasa .45s .3s cubic-bezier(.3,1.6,.5,1) both}
  @keyframes subir{from{transform:translateY(6%)}to{transform:none}}
  @keyframes brasa{from{transform:scale(0)}to{transform:scale(1)}}
}
@media (max-width:860px){
  .hero-grid{grid-template-columns:minmax(0,1fr)}
  .hero-art{min-height:0;aspect-ratio:16/10}
  .art-mark{width:52%;right:-4%;bottom:-8%}
}

/* promesas */
.promesas{background:var(--brasa);color:var(--tinta)}
.promesas ul{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px 28px;padding-block:22px}
.promesas li{display:flex;align-items:center;gap:14px;font-stretch:112.5%;font-weight:700;font-size:20px;line-height:1.2}
.promesas li::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--tinta);flex-shrink:0}
@media (max-width:720px){.promesas ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.promesas li{font-size:18.7px}}
@media (max-width:420px){.promesas ul{grid-template-columns:minmax(0,1fr)}}

/* servicios */
.bento{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-flow:dense;gap:16px}
.svc{display:flex;flex-direction:column;gap:12px;background:var(--blanco);border:1px solid var(--linea);border-radius:8px;padding:28px;min-height:230px;min-width:0}
.svc .ico{width:44px;height:44px;color:var(--tinta);margin-bottom:auto}
.svc h3{margin-top:28px}
.svc p{color:var(--lousa)}
.svc.feat{grid-column:span 2;background:var(--tinta);color:var(--granito);border-color:var(--tinta)}
.svc.feat .ico{color:var(--granito)}
.svc.feat h3{font-size:clamp(26px,3vw,36px);font-stretch:125%}
.svc.feat p{color:var(--sobre-tinta);font-size:18px;max-width:40ch}
.more{align-self:flex-start;font-weight:600;font-size:15px;text-decoration:none;display:inline-flex;gap:8px;align-items:center;padding-block:8px;border-bottom:1.5px solid var(--brasa)}
.more::after{content:"→"}
.svc.feat.ria{background:var(--ria);border-color:var(--ria)}
.svc.feat.ria p{color:var(--sobre-ria)}
@media (max-width:960px){.bento{grid-template-columns:repeat(2,minmax(0,1fr))}.bento .svc:last-child{grid-column:span 2}}
@media (max-width:600px){.bento{grid-template-columns:minmax(0,1fr)}.svc.feat,.bento .svc:last-child{grid-column:auto}.svc{min-height:0}.svc h3{margin-top:16px}}

/* para quién */
.sectores{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--linea-oscura)}
.sectores li{display:grid;gap:12px;align-content:start;padding:32px 28px 8px 0;min-width:0}
.sectores li + li{padding-left:28px;border-left:1px solid var(--linea-oscura)}
.sectores h3{font-size:clamp(26px,2.8vw,36px)}
.sectores p{color:var(--sobre-tinta)}
.also{margin-top:40px;color:var(--sobre-tinta);font-size:15px}
@media (max-width:860px){
  .sectores{grid-template-columns:minmax(0,1fr)}
  .sectores li{padding:24px 0}
  .sectores li + li{padding-left:0;border-left:0;border-top:1px solid var(--linea-oscura)}
}

/* pasos */
.pasos{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;counter-reset:paso}
.pasos li{display:grid;gap:10px;align-content:start;padding-top:22px;border-top:2px solid var(--tinta);position:relative;min-width:0}
.pasos li::before{counter-increment:paso;content:counter(paso,decimal-leading-zero);font-stretch:125%;font-weight:700;font-size:48px;line-height:1;margin-bottom:10px}
.pasos li::after{content:"";position:absolute;left:0;top:-6px;width:10px;height:10px;border-radius:50%;background:var(--brasa)}
.pasos p{color:var(--lousa)}
@media (max-width:860px){.pasos{grid-template-columns:repeat(2,minmax(0,1fr));gap:36px 24px}}
@media (max-width:480px){.pasos{grid-template-columns:minmax(0,1fr)}}

/* sobre */
.about{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(32px,6vw,96px);align-items:end}
.about .big{font-size:clamp(56px,10vw,136px);line-height:.92}
.about-body{display:grid;gap:32px}
.founder{display:flex;align-items:center;gap:16px}
.avatar{width:72px;height:72px;border-radius:50%;background:var(--granito-2);border:1px solid var(--linea);display:grid;place-items:center;font-size:12px;flex-shrink:0}
.founder .name{font-stretch:112.5%;font-weight:700;font-size:18px}
@media (max-width:860px){.about{grid-template-columns:minmax(0,1fr)}}

/* contacto */
.contact{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(36px,6vw,88px);align-items:start}
.contact .head{margin-bottom:32px}
.details{display:grid;border-top:1px solid var(--linea-oscura)}
.details div{display:grid;grid-template-columns:110px minmax(0,1fr);gap:12px;padding-block:14px;border-bottom:1px solid var(--linea-oscura);font-size:16px}
.details dt{color:var(--sobre-tinta)}
.details dd{margin:0;min-width:0;overflow-wrap:anywhere}
.form{background:var(--granito);color:var(--tinta);border-radius:8px;padding:clamp(22px,3vw,36px);display:grid;gap:18px;min-width:0;align-content:start}
.row2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.field{display:grid;gap:6px;min-width:0}
.field label,.field legend{font-size:14px;font-weight:600}
.field input,.field textarea{font:inherit;font-size:16px;color:var(--tinta);background:var(--blanco);border:1px solid var(--linea);border-radius:4px;padding:11px 12px;min-height:46px;width:100%}
.field textarea{resize:vertical}
.field input:focus-visible,.field textarea:focus-visible{outline:3px solid var(--brasa);outline-offset:1px;border-color:var(--tinta)}
fieldset.field{border:0;padding:0;margin:0}
.checks{display:flex;flex-wrap:wrap;gap:8px}
.check{position:relative}
.check input{position:absolute;opacity:0;width:1px;height:1px}
.check span{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 14px;border:1px solid var(--linea);border-radius:999px;background:var(--blanco);font-size:14px;cursor:pointer}
.check span::before{content:"";width:8px;height:8px;border-radius:50%;border:1.5px solid var(--gris)}
.check input:checked + span{border-color:var(--tinta);background:var(--tinta);color:var(--granito)}
.check input:checked + span::before{background:var(--brasa);border-color:var(--brasa)}
.check input:focus-visible + span{outline:3px solid var(--brasa);outline-offset:2px}
.consent{display:flex;gap:10px;align-items:flex-start;font-size:14px}
.consent input{width:20px;height:20px;margin-top:1px;accent-color:var(--tinta);flex-shrink:0}
.consent a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.form .btn{justify-self:start}
.trampa{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.status{font-size:15px;background:var(--blanco);border:1px solid var(--tinta);border-radius:4px;padding:12px 14px}
.status.err{border-color:var(--brasa);border-width:2px}
@media (max-width:860px){.contact{grid-template-columns:minmax(0,1fr)}}
@media (max-width:520px){.row2{grid-template-columns:minmax(0,1fr)}.details div{grid-template-columns:minmax(0,1fr);gap:2px}}

/* pie */
.foot{border-top:1px solid var(--linea-oscura);margin-top:clamp(64px,8vw,104px)}
.foot .wrap{padding-block:32px;display:flex;flex-wrap:wrap;gap:20px 40px;align-items:center;justify-content:space-between;font-size:14px;color:var(--sobre-tinta)}
.foot .brand{color:var(--granito)}
.foot nav{display:flex;flex-wrap:wrap;gap:8px 20px}
.foot nav a{text-decoration:none}
.foot nav a:hover{text-decoration:underline}
#contacto.section{padding-bottom:0}

/* páginas legales */
.legal{padding-block:clamp(48px,7vw,88px)}
.legal .wrap{max-width:820px}
.legal h1{font-size:clamp(34px,5vw,52px);margin-bottom:12px}
.legal h2{font-size:24px;font-stretch:112.5%;font-weight:700;margin:48px 0 14px;scroll-margin-top:96px}
.legal p,.legal li{max-width:68ch;color:var(--lousa)}
.legal p + p{margin-top:12px}
.legal ul{list-style:disc;padding-left:1.2em;display:grid;gap:6px;margin-top:10px}
.legal dl{display:grid;grid-template-columns:minmax(120px,max-content) minmax(0,1fr);gap:10px 24px}
.legal dt{font-weight:600}
.legal dd{margin:0;min-width:0;overflow-wrap:anywhere}
.legal .aviso{background:var(--blanco);border:1.5px dashed var(--brasa);border-radius:4px;padding:12px 14px;font-size:15px;margin-bottom:28px;color:var(--tinta)}
footer.tinta .foot{margin-top:0}
@media (max-width:520px){.legal dl{grid-template-columns:minmax(0,1fr);gap:2px}.legal dd{margin-bottom:10px}}
