/* CAUCE — sistema visual web. Una familia (Sora), verde profundo como tinta, cantera como papel, oro solo en líneas y cifras. */
:root{
  --ink:#0F2A22; --ink-2:#2F4A41; --ink-3:#5A6B63; --ink-4:#8A9891;
  --paper:#F3EDE0; --paper-2:#FFFFFF; --paper-3:#EBE4D4; --line:#DDD6C6; --line-2:#EAE3D3;
  --deep:#0A1F18; --forest:#1E4436; --gold:#C9A227; --gold-deep:#B08F3C; --gold-soft:#F4EBD0;
  --ok:#1E6B4E; --warn:#8A6A12;
  --font:"Sora","Helvetica Neue",Arial,sans-serif;
  --maxw:1160px; --radius:6px;
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px); padding-bottom:env(safe-area-inset-bottom,0px);
}
*,*::before,*::after{box-sizing:inherit;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:calc(72px + env(safe-area-inset-top,0px))}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
body{font-family:var(--font);font-size:16px;line-height:1.55;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased}
img,svg{display:block;max-width:100%}
a{color:inherit}
:focus-visible{outline:2px solid var(--gold-deep);outline-offset:3px}
.wrap{width:min(var(--maxw),100% - 2.5rem);margin-inline:auto}
h1,h2,h3{font-weight:600;letter-spacing:-0.02em;line-height:1.1;text-wrap:balance}
h1{font-size:clamp(2.2rem,4.6vw,3.6rem);font-weight:500;letter-spacing:-0.03em}
h2{font-size:clamp(1.6rem,2.8vw,2.2rem);font-weight:500;letter-spacing:-0.025em}
h3{font-size:1.1rem}
.sub{font-size:1.05rem;color:var(--ink-2);max-width:44ch}
.small{font-size:.85rem;color:var(--ink-3)}
.num{font-variant-numeric:tabular-nums}
.gold{color:var(--gold-deep)}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.8rem 1.25rem;border-radius:var(--radius);font:inherit;font-weight:600;font-size:.95rem;text-decoration:none;cursor:pointer;border:1px solid transparent;transition:background .15s,border-color .15s,color .15s;min-height:44px}
.btn-primary{background:var(--ink);color:var(--paper)}
.btn-primary:hover{background:var(--forest)}
.btn-primary:disabled{opacity:.6;cursor:wait}
.btn-ghost{border-color:var(--line);color:var(--ink);background:transparent}
.btn-ghost:hover{border-color:var(--ink)}
.btn-sm{padding:.55rem .95rem;font-size:.88rem;min-height:40px}

/* nav */
.nav{position:sticky;top:env(safe-area-inset-top,0px);z-index:30;background:rgba(243,237,224,.92);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;height:68px;gap:1rem}
.brand{display:flex;align-items:center;gap:.55rem;text-decoration:none;font-weight:600;font-size:1.2rem;letter-spacing:-0.03em}
.brand svg{width:34px;height:29px}
.nav-links{display:flex;gap:1.5rem;list-style:none}
.nav-links a{text-decoration:none;color:var(--ink-2);font-size:.92rem}
.nav-links a:hover{color:var(--ink)}
@media (max-width:820px){.nav-links{display:none}}

/* sections */
section{padding:clamp(3.5rem,7vw,6rem) 0}
.section-head{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:1.5rem 3rem;align-items:end;margin-bottom:clamp(1.8rem,3.5vw,3rem)}
@media (max-width:820px){.section-head{grid-template-columns:1fr}}
.rule{height:1px;background:var(--line)}
.rule-gold{height:1px;background:linear-gradient(90deg,var(--gold) 0,var(--gold) 120px,var(--line) 120px)}
.eyebrow{font-size:.8rem;font-weight:600;color:var(--gold-deep);margin-bottom:.9rem;display:flex;align-items:center;gap:.6rem}
.eyebrow::before{content:"";width:18px;height:1px;background:var(--gold)}
.band{background:var(--paper-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.band-ink{background:var(--ink);color:var(--paper)}
.band-ink h2,.band-ink h3{color:var(--paper)}
.band-ink .sub,.band-ink .small{color:#B7C2B3}
.band-ink .rule{background:#2E5245}

/* hero */
.hero{padding:clamp(3rem,6vw,5rem) 0 clamp(2.5rem,5vw,4rem)}
.hero .wrap{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:3rem;align-items:center}
@media (max-width:960px){.hero .wrap{grid-template-columns:1fr}}
.hero-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.8rem}
.hero-facts{display:flex;flex-wrap:wrap;gap:1.4rem;margin-top:2rem;padding-top:1.4rem;border-top:1px solid var(--line);font-size:.85rem;color:var(--ink-3)}
.hero-facts span::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--gold);margin-right:.5rem;vertical-align:middle}

/* product UI (hero) */
.ui{background:var(--paper-2);border:1px solid var(--line);border-radius:10px;box-shadow:0 30px 60px -30px rgba(10,31,24,.45);overflow:hidden;font-size:.76rem}
.ui-top{display:flex;align-items:center;justify-content:space-between;padding:.7rem 1rem;border-bottom:1px solid var(--line-2);background:#FBF9F4}
.ui-top .tabs{display:flex;gap:1rem;color:var(--ink-3);white-space:nowrap}.ui-top .mono{white-space:nowrap}
.ui-top .tabs b{color:var(--ink);font-weight:600;border-bottom:2px solid var(--gold);padding-bottom:.35rem;margin-bottom:-.5rem}
.ui-body{display:grid;grid-template-columns:142px minmax(0,1fr)}
.ui-side{border-right:1px solid var(--line-2);padding:.8rem;display:flex;flex-direction:column;gap:.35rem;background:#FBF9F4}
.ui-side .lbl{font-size:.68rem;color:var(--ink-4);margin:.3rem 0 .2rem}
.ui-side div.it{padding:.4rem .5rem;border-radius:5px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ui-side div.it.on{background:var(--paper);color:var(--ink);font-weight:600}
.ui-main{padding:.9rem 1rem;min-width:0}.ui-scroll{overflow-x:auto}
.ui-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem;margin-bottom:.9rem}
.ui-kpi{border:1px solid var(--line-2);border-radius:6px;padding:.6rem .7rem}
.ui-kpi .k{font-size:.66rem;color:var(--ink-3)}
.ui-kpi .v{font-size:1rem;font-weight:600;letter-spacing:-0.02em;margin-top:.1rem}
.ui table{width:100%;border-collapse:collapse}
.ui th{font-weight:500;color:var(--ink-4);font-size:.66rem;text-align:left;padding:.3rem .4rem;border-bottom:1px solid var(--line-2)}
.ui td{padding:.45rem .28rem;font-size:.73rem;border-bottom:1px solid var(--line-2);white-space:nowrap}
@media (max-width:1500px){.ui .hide-md{display:none}}
.ui td.r,.ui th.r{text-align:right}
.tag{display:inline-block;font-size:.62rem;white-space:nowrap;font-weight:600;padding:.15rem .45rem;border-radius:999px;background:#E6F0EA;color:var(--ok)}
.tag.warn{background:var(--gold-soft);color:var(--warn)}
.tag.muted{background:var(--paper-3);color:var(--ink-3)}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72rem;color:var(--ink-3)}

/* layers */
.layers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--paper-2)}
@media (max-width:820px){.layers{grid-template-columns:1fr}}
.layer{padding:1.8rem 1.6rem;display:flex;flex-direction:column;gap:.9rem}
.layer + .layer{border-left:1px solid var(--line)}
@media (max-width:820px){.layer + .layer{border-left:0;border-top:1px solid var(--line)}}
.layer .n{font-size:.8rem;color:var(--gold-deep);font-weight:600}
.layer ul{list-style:none;display:grid;gap:.45rem;color:var(--ink-2);font-size:.95rem}
.layer li{padding-left:1.1rem;position:relative}
.layer li::before{content:"";position:absolute;left:0;top:.65em;width:.55rem;height:1px;background:var(--gold)}
.status{margin-top:auto;padding-top:.9rem;border-top:1px solid var(--line-2);font-size:.82rem;display:flex;align-items:center;gap:.5rem;color:var(--ink-3)}
.status i{width:8px;height:8px;border-radius:50%;background:var(--ok);display:inline-block}
.status.soon i{background:var(--gold)}

/* demo */
.demo{background:var(--paper-2);border:1px solid var(--line);border-radius:10px;overflow:hidden}
.demo-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.8rem;padding:.9rem 1.1rem;border-bottom:1px solid var(--line-2);background:#FBF9F4}
.demo-bar .stats{display:flex;gap:1.4rem;font-size:.85rem;color:var(--ink-3)}
.demo-bar .stats b{color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums}
.demo-grid{display:grid;grid-template-columns:1fr 1fr}
@media (max-width:820px){.demo-grid{grid-template-columns:1fr}}
.demo-col{padding:1rem 1.1rem;min-height:300px}
.demo-col + .demo-col{border-left:1px solid var(--line-2)}
@media (max-width:820px){.demo-col + .demo-col{border-left:0;border-top:1px solid var(--line-2)}}
.demo-col h4{font-size:.8rem;font-weight:600;color:var(--ink-3);margin-bottom:.7rem;display:flex;justify-content:space-between}
.row{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) auto;gap:.6rem;align-items:center;padding:.55rem .2rem;border-bottom:1px solid var(--line-2);font-size:.85rem;transition:background .4s}
.row.new{background:var(--gold-soft)}
.row .c{color:var(--ink-3);font-size:.75rem}
.row .amt{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}
.empty{color:var(--ink-4);font-size:.85rem;padding:1rem .2rem}
.demo-foot{padding:.8rem 1.1rem;border-top:1px solid var(--line-2);font-size:.8rem;color:var(--ink-3)}

/* calc */
.calc{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--paper-2)}
@media (max-width:820px){.calc{grid-template-columns:1fr}}
.calc-in{padding:1.6rem;display:grid;gap:1.1rem;border-right:1px solid var(--line)}
@media (max-width:820px){.calc-in{border-right:0;border-bottom:1px solid var(--line)}}
.calc-out{padding:1.6rem;background:var(--ink);color:var(--paper);display:flex;flex-direction:column;gap:1rem;justify-content:center}
.calc-out .big{font-size:clamp(2.2rem,4vw,3rem);font-weight:500;letter-spacing:-0.03em;line-height:1;font-variant-numeric:tabular-nums}
.calc-out .k{font-size:.8rem;color:#B7C2B3}
.calc-out .row2{display:grid;grid-template-columns:1fr 1fr;gap:1rem;padding-top:1rem;border-top:1px solid #2E5245}
.calc-out .row2 b{display:block;font-size:1.3rem;font-weight:500;font-variant-numeric:tabular-nums}
.field{display:grid;gap:.35rem;font-size:.85rem;font-weight:500;color:var(--ink-2)}
.field .hint{font-weight:400;color:var(--ink-4);font-size:.78rem}
input,select,textarea{font:inherit;font-size:.95rem;padding:.7rem .8rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper-2);color:var(--ink);width:100%;min-height:44px}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px rgba(15,42,34,.08)}
input[type=range]{padding:0;min-height:auto;accent-color:var(--gold-deep)}
textarea{min-height:100px;resize:vertical}

/* integration */
.integ{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border:1px solid var(--line);border-radius:10px;background:var(--paper-2);overflow:hidden}
@media (max-width:960px){.integ{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.integ{grid-template-columns:1fr}}
.integ div{padding:1.3rem 1.2rem;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.integ b{display:block;font-weight:600;color:var(--gold-deep);font-size:.85rem;margin-bottom:.4rem}
.integ p{font-size:.9rem;color:var(--ink-2)}

/* partners */
.partners{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:2.5rem;align-items:start}
@media (max-width:820px){.partners{grid-template-columns:1fr}}
.partner-list{display:grid;gap:1.1rem}
.partner-list div{display:grid;grid-template-columns:auto 1fr;gap:.9rem;align-items:start;font-size:.95rem;color:#D9DFD8}
.partner-list span{width:26px;height:26px;border-radius:50%;border:1px solid #2E5245;display:flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:600;color:var(--gold)}
.card-form{background:var(--paper-2);color:var(--ink);border-radius:10px;padding:1.6rem;display:grid;gap:1rem}
.card-form h3{font-size:1rem;color:var(--ink)}

/* trust */
.trust{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem}
@media (max-width:820px){.trust{grid-template-columns:1fr}}
.trust h3{margin-bottom:.5rem;font-size:1rem}
.trust p{color:var(--ink-2);font-size:.95rem}
.trust .t{width:34px;height:1px;background:var(--gold);margin-bottom:1rem}

/* contact */
.contact{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:3rem}
@media (max-width:820px){.contact{grid-template-columns:1fr}}
form{display:grid;gap:.9rem}
.two{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}
@media (max-width:560px){.two{grid-template-columns:1fr}}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.msg{display:none;padding:.8rem 1rem;border-radius:var(--radius);font-size:.9rem}
.msg.ok{display:block;background:#E6F0EA;color:var(--ok)}
.msg.err{display:block;background:#F6E7E7;color:#8A2E2E}
.consent{font-size:.8rem;color:var(--ink-3);display:flex;gap:.6rem;align-items:flex-start}
.consent input{width:auto;min-height:auto;margin-top:.25rem}

/* footer */
footer{padding:2.5rem 0 3rem;border-top:1px solid var(--line);font-size:.82rem;color:var(--ink-3)}
footer .wrap{display:grid;gap:1.2rem}
footer .legal{max-width:86ch;line-height:1.55}
footer .links{display:flex;flex-wrap:wrap;gap:1.2rem;align-items:center}
footer .links a{text-decoration:none}
footer .links a:hover{color:var(--ink)}

/* legal pages */
.doc{padding:3rem 0 4rem}
.doc .wrap{max-width:760px}
.doc h1{font-size:2rem;margin-bottom:.5rem}
.doc h2{font-size:1.15rem;margin:2rem 0 .6rem;font-weight:600}
.doc p,.doc li{color:var(--ink-2);margin-bottom:.7rem}
.doc ul{padding-left:1.2rem}
.doc .meta{color:var(--ink-4);font-size:.85rem;margin-bottom:2rem}

/* móvil: tarjeta de producto del hero */
@media (max-width:640px){.ui-body{grid-template-columns:1fr}.ui-side{display:none!important}.ui-kpis{grid-template-columns:1fr;gap:.4rem}.ui-kpis .ui-kpi:last-child{display:none}.ui-kpi{display:flex;justify-content:space-between;align-items:baseline;gap:.6rem;padding:.5rem .7rem}.ui-kpi .v{font-size:.9rem;margin:0}.ui-top .mono{display:none}.ui-top .tabs{overflow-x:auto}}