@layer chasis,piel;@font-face{font-family:'Cormorant Garamond';src:url('fuentes/cormorant-garamond-latin-300-normal-8973d65ce7.woff2') format('woff2');font-weight:300;font-style:normal;font-display:swap;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:'Cormorant Garamond';src:url('fuentes/cormorant-garamond-latin-400-normal-8048ac209b.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap;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:'Cormorant Garamond';src:url('fuentes/cormorant-garamond-latin-400-italic-e48e580270.woff2') format('woff2');font-weight:400;font-style:italic;font-display:swap;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:'Jost';src:url('fuentes/jost-latin-wght-normal-7726a5cd6f.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap;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}@layer chasis{:root{--fondo:#e7ddd0;--superficie:#f4efe9;--tinta:#000000;--suave:#3c3c3c;--filete:#3c3c3c;--acento:#740f25;--sobre-acento:#f4efe9;--boton:#740f25;--sobre-boton:#f4efe9;--foco:#740f25;color-scheme:light}.inv{--fondo:#000000;--superficie:#000000;--tinta:#f4efe9;--suave:#f4efe9;--filete:#3c3c3c;--acento:#e7ddd0;--sobre-acento:#000000;--boton:#f4efe9;--sobre-boton:#740f25;--foco:#f4efe9;background:var(--fondo);color:var(--tinta);border-top-color:var(--fondo)}
:root{--tm2:clamp(0.7378rem, 0.7496rem + -0.0521vw, 0.7027rem);--tm1:clamp(0.8854rem, 0.8761rem + 0.0415vw, 0.9135rem);--t0:clamp(1.0625rem, 1.0208rem + 0.1852vw, 1.1875rem);--t1:clamp(1.2750rem, 1.1854rem + 0.3981vw, 1.5437rem);--t2:clamp(1.5300rem, 1.3710rem + 0.7065vw, 2.0069rem);--t3:clamp(1.8360rem, 1.5784rem + 1.1451vw, 2.6089rem);--t4:clamp(2.2032rem, 1.8071rem + 1.7606vw, 3.3916rem);--t5:clamp(2.6438rem, 2.0554rem + 2.6152vw, 4.4091rem);--t6:clamp(3.1726rem, 2.3195rem + 3.7914vw, 5.7318rem);--e0:4px;--e1:8px;--e2:12px;--e3:16px;--e4:24px;--e5:32px;--e6:48px;--e7:64px;--e8:96px;--e9:128px;--sec:clamp(4rem,2.6667rem + 5.9259vw,8rem);--ancho:1320px;--gutter:clamp(1.25rem,0.9167rem + 1.4815vw,2.25rem);
--ft:'Cormorant Garamond',Georgia,'Times New Roman',serif;--fc:'Jost',system-ui,-apple-system,'Segoe UI',sans-serif;--fl:'Jost',system-ui,-apple-system,'Segoe UI',sans-serif;--fm:'Jost',system-ui,-apple-system,'Segoe UI',sans-serif;--wt:300;--tr:0;--radio:0px;
--d1:140ms;--d2:220ms;--sale:cubic-bezier(0.23,1,0.32,1);--mueve:cubic-bezier(0.77,0,0.175,1);
--sombra-1:0 1px 2px color-mix(in srgb,var(--tinta) 8%,transparent),0 4px 12px -4px color-mix(in srgb,var(--tinta) 10%,transparent);
--sombra-2:0 2px 4px color-mix(in srgb,var(--tinta) 8%,transparent),0 16px 40px -12px color-mix(in srgb,var(--tinta) 18%,transparent)}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:5.5rem}
body{font:400 var(--t0)/1.55 var(--fc);color:var(--tinta);background:var(--fondo);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-kerning:normal}
img,svg,video{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:.2em}
a,button,summary,label{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
[hidden]{display:none!important}
:focus-visible{outline:2px solid var(--foco);outline-offset:3px}
::selection{background:var(--acento);color:var(--sobre-acento)}
.skip{position:absolute;left:-9999px;top:0}.skip:focus{left:var(--e3);top:var(--e3);z-index:200;background:var(--boton);color:var(--sobre-boton);padding:var(--e2) var(--e3);box-shadow:var(--sombra-2)}
.wrap{max-width:var(--ancho);margin:0 auto;padding:0 max(var(--gutter),env(safe-area-inset-right)) 0 max(var(--gutter),env(safe-area-inset-left))}
.rej{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gutter)}
.meta,.ey{font:500 var(--tm1)/1.4 var(--fm);letter-spacing:.02em;color:var(--suave)}
.t-d{font:var(--wt) var(--t6)/0.98 var(--ft);letter-spacing:var(--tr)}
h1,h2,h3{overflow-wrap:break-word;hyphens:manual;text-wrap:balance}p{text-wrap:pretty}
.t-1{font:var(--wt) var(--t5)/1.02 var(--ft);letter-spacing:var(--tr)}
.t-2{font:var(--wt) var(--t4)/1.08 var(--ft);letter-spacing:calc(var(--tr) * .7)}
.t-3{font:500 var(--t2)/1.2 var(--ft);letter-spacing:-.01em}
.lead{font:400 var(--t1)/1.45 var(--fl);color:var(--suave);max-width:38em}
.prosa{max-width:65ch}.prosa p+p{margin-top:var(--e3)}
.sl{color:var(--suave);max-width:60ch;margin-top:var(--e4)}
.btn{display:inline-flex;align-items:center;gap:var(--e2);min-height:48px;padding:0 var(--e5);font:500 var(--t0)/1 var(--fc);text-decoration:none;border:1px solid var(--boton);border-radius:var(--radio);background:var(--boton);color:var(--sobre-boton);cursor:pointer;transition:background-color var(--d1) var(--sale),border-color var(--d1) var(--sale),color var(--d1) var(--sale)}
.btn.o{background:transparent;color:var(--tinta);border-color:var(--filete)}
.btn:active{background:var(--acento);border-color:var(--acento);color:var(--sobre-acento)}
.btn .flecha{display:inline-block}
.enl{color:var(--acento);text-decoration:underline;transition:text-decoration-color var(--d1) var(--sale)}
.precio,.cifra b,.prueba b,.tabla td,.tiempo .meta{font-variant-numeric:tabular-nums}
section{padding:var(--sec) 0;border-top:1px solid var(--filete)}
.aviso-estado{background:var(--tinta);color:var(--fondo);font:500 var(--tm1)/1.4 var(--fm);padding:var(--e2) var(--gutter);text-align:center}
.topbar{border-bottom:1px solid var(--filete)}.topbar .wrap{display:flex;justify-content:space-between;gap:var(--e4);min-height:36px;align-items:center;font:500 var(--tm1) var(--fm);color:var(--suave)}
header{position:sticky;top:0;z-index:50;background:var(--fondo);border-bottom:1px solid var(--filete)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:var(--e5);min-height:72px}
.logo{display:inline-flex;align-items:center;min-height:44px;font:600 var(--t1)/1 var(--ft);letter-spacing:-.02em;text-decoration:none}.logo img{height:36px;width:auto}.logo picture{display:block}
.nav nav{display:flex;gap:var(--e5);align-items:center}.nav nav a{display:inline-flex;align-items:center;min-height:44px;text-decoration:none;color:var(--suave);font-size:var(--tm1);transition:color var(--d1) var(--sale)}
.nav nav a[aria-current=page]{color:var(--tinta)}
.lang{display:flex;font:500 var(--tm1) var(--fm)}.lang a{justify-content:center;min-width:44px;text-decoration:none}
.nav .btn{min-height:44px}
.menu{display:none}
.menu summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;min-height:44px;padding:0 var(--e4);border:1px solid var(--filete);border-radius:var(--radio);font:500 var(--tm1)/1 var(--fm);color:var(--tinta)}
.menu summary::-webkit-details-marker{display:none}
.menu[open] summary{background:var(--boton);border-color:var(--boton);color:var(--sobre-boton)}
.menu .panel{position:absolute;left:0;right:0;top:100%;display:grid;padding:var(--e2) var(--gutter) var(--e5);background:var(--fondo);border-bottom:1px solid var(--filete);box-shadow:var(--sombra-2)}
.menu .panel nav{display:grid;gap:0}
.menu .panel nav a.pg{min-height:52px;border-bottom:1px solid var(--filete);color:var(--tinta);font:500 var(--t1)/1.2 var(--ft)}
.menu .panel .lang{min-height:52px;align-items:center;border-bottom:0}
.menu .panel .btn{justify-content:center;min-height:48px;margin-top:var(--e3)}
main:focus{outline:none}
.hero{border-top:0;padding:clamp(3rem,1.6667rem + 5.9259vw,7rem) 0 var(--sec)}
.hero h1{max-width:17ch}
.hero .lead{margin-top:0}
.hero .pie{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:var(--gutter);margin-top:var(--e7);align-items:end}
.hero .pie .prueba{margin-top:0;border-top:0;padding-top:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--e5)}
.banda{margin-top:var(--e7);border-top:1px solid var(--filete)}.banda img,.banda video{width:100%;height:clamp(16rem,8rem + 30vw,36rem);object-fit:cover}
.manifiesto p:not(.meta){font:var(--wt) var(--t4)/1.12 var(--ft);letter-spacing:calc(var(--tr) * .7);max-width:24ch}
.manifiesto .meta{margin-bottom:var(--e5)}
.hero .cta{display:flex;flex-wrap:wrap;gap:var(--e3);margin-top:var(--e5)}
.hero .prueba{margin-top:var(--e6);padding-top:var(--e4);border-top:1px solid var(--filete);display:flex;flex-wrap:wrap;gap:var(--e3) var(--e7)}
.hero .prueba b{display:block;font:var(--wt) var(--t3)/1.1 var(--ft);color:var(--tinta);letter-spacing:-.02em}
.hero .media{margin-top:var(--e7)}
.hero .con-media{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:var(--gutter);align-items:end}
.hero .con-media .media{margin-top:0}
.fig{border-radius:var(--radio);overflow:hidden;background:var(--superficie)}.fig picture{display:block;height:100%}.fig img,.fig video{width:100%;height:100%;object-fit:cover}
.fig.video{position:relative}
.pausa{position:absolute;right:var(--e3);bottom:var(--e3);min-height:44px;padding:0 var(--e4);font:500 var(--tm1)/1 var(--fm);color:var(--tinta);background:var(--fondo);border:1px solid var(--filete);border-radius:var(--radio);cursor:pointer}
.hueco{border:1px dashed var(--filete);background:var(--superficie);min-height:280px;display:grid;place-items:center;text-align:center;color:var(--suave);font:500 var(--tm1)/1.5 var(--fm);padding:var(--e5)}
.hueco.h440{min-height:440px}.hueco.h340{min-height:340px}
section.lamina{padding:0;border-top:0;position:relative}.lamina .fig{border-radius:0}
.lamina img,.lamina video{width:100%;height:clamp(22rem,12rem + 44vw,52rem);object-fit:cover}
.lamina .rotulo{position:absolute;left:var(--gutter);bottom:var(--gutter);max-width:20ch;background:var(--fondo);color:var(--tinta);padding:var(--e5);font:var(--wt) var(--t3)/1.15 var(--ft);letter-spacing:calc(var(--tr) * .6)}
.lamina.der .rotulo{left:auto;right:var(--gutter)}
.cab{grid-column:1/span 5}.cuerpo{grid-column:7/span 6}
.cab .t-2{max-width:14ch}
.lista{list-style:none;border-top:1px solid var(--filete)}
.lista li{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:var(--gutter);padding:var(--e5) 0;border-bottom:1px solid var(--filete)}
.lista h3{font:500 var(--t2)/1.2 var(--ft);letter-spacing:-.01em}.lista p{color:var(--suave)}
.split{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:var(--gutter);align-items:center}
.split.rev{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}.split.rev .txt{order:2}
.blist{list-style:none;margin-top:var(--e5);border-top:1px solid var(--filete)}.blist li{padding:var(--e3) 0;border-bottom:1px solid var(--filete);color:var(--suave)}
.tiempo{list-style:none;border-top:1px solid var(--filete)}
.tiempo li{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,4fr) minmax(0,5fr);gap:var(--gutter);padding:var(--e5) 0;border-bottom:1px solid var(--filete);align-items:baseline}
.tiempo h3{font:500 var(--t2)/1.2 var(--ft)}.tiempo p{color:var(--suave)}
.escenarios{border-top:1px solid var(--tinta)}
.esc{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,5fr) minmax(0,3fr);gap:var(--gutter);padding:var(--e6) 0;border-bottom:1px solid var(--filete);align-items:start}
.esc h3{font:500 var(--t2)/1.2 var(--ft)}.esc .para{color:var(--suave);margin-top:var(--e2)}
.esc ul{list-style:none;display:grid;gap:var(--e2);color:var(--suave)}.esc ul li::before{content:"— ";color:var(--filete)}
.esc .precio{font:var(--wt) var(--t4)/1 var(--ft);letter-spacing:var(--tr)}.esc .precio small{display:block;font:500 var(--tm1)/1.4 var(--fm);color:var(--suave);letter-spacing:0;margin-top:var(--e2)}
.esc .btn{margin-top:var(--e4)}
.nota,.iva{font:500 var(--tm1)/1.5 var(--fm);color:var(--suave);margin-top:var(--e4)}
.citas{display:grid;gap:var(--e7)}
.cita blockquote{font:400 var(--t3)/1.35 var(--fl);max-width:30em}.cita blockquote::before{content:"“"}.cita blockquote::after{content:"”"}
.cita figcaption{margin-top:var(--e4);font:500 var(--tm1)/1.5 var(--fm);color:var(--suave)}
.founder{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:var(--gutter);align-items:end}
.founder blockquote{font:400 var(--t3)/1.35 var(--fl);max-width:28em}.founder .sig{margin-top:var(--e5);color:var(--suave)}
.faq{border-top:1px solid var(--filete)}.faq details{border-bottom:1px solid var(--filete)}
.faq summary{cursor:pointer;list-style:none;padding:var(--e5) 0;font:500 var(--t1)/1.3 var(--ft);display:flex;justify-content:space-between;gap:var(--e5)}
.faq summary::-webkit-details-marker{display:none}.faq summary::after{content:"+";font-family:var(--fm);color:var(--suave)}
.faq details[open] summary::after{content:"−"}.faq p{color:var(--suave);padding:0 0 var(--e5);max-width:65ch}
.band{border-top:1px solid var(--filete)}.band .t-1{max-width:18ch}.band .sl{margin-top:var(--e4)}.band .r-side{display:flex;gap:var(--e3);flex-wrap:wrap;margin-top:var(--e6)}
.cifras{display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));border-top:1px solid var(--filete)}
.cifra{padding:var(--e5) var(--e5) var(--e5) 0;border-bottom:1px solid var(--filete)}
.cifra b{display:block;font:var(--wt) var(--t5)/1 var(--ft);letter-spacing:var(--tr)}.cifra span{display:block;margin-top:var(--e3);color:var(--suave)}
.cifra small{display:block;margin-top:var(--e2);font:500 var(--tm2)/1.4 var(--fm);color:var(--suave)}
.caso .partes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gutter);margin-top:var(--e6);border-top:1px solid var(--filete)}
.caso .partes div{padding-top:var(--e4)}.caso .partes h3{font:500 var(--tm1)/1.4 var(--fm);color:var(--suave);margin-bottom:var(--e2)}
.caso .metodo{margin-top:var(--e5);font:500 var(--tm1)/1.5 var(--fm);color:var(--suave)}
.conf{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--gutter);border-top:1px solid var(--filete)}
.conf div{padding:var(--e5) 0;border-bottom:1px solid var(--filete)}.conf dt{font:500 var(--tm1)/1.4 var(--fm);color:var(--suave)}.conf dd{margin-top:var(--e2)}
.logos{display:flex;flex-wrap:wrap;gap:var(--e6);align-items:center}.logos img{height:32px;width:auto}
.logo-slot{width:120px;height:32px;border:1px dashed var(--filete);display:grid;place-items:center;font:500 var(--tm2) var(--fm);color:var(--suave)}
.demo{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:var(--gutter);align-items:start}.demo .cab,.split .cab{grid-column:auto}
.chat{border:1px solid var(--filete);border-radius:var(--radio);padding:var(--e5);background:var(--superficie)}
.chat .top{font:500 var(--tm1) var(--fm);color:var(--suave);padding-bottom:var(--e3);margin-bottom:var(--e4);border-bottom:1px solid var(--filete)}
.msg{max-width:85%;padding:var(--e3) var(--e4);margin-bottom:var(--e3);border:1px solid var(--filete);border-radius:var(--radio);background:var(--fondo)}
.msg.u{margin-left:auto}.msg .tag{display:block;margin-top:var(--e2);font:500 var(--tm2) var(--fm);color:var(--suave)}
.demo-nota{margin-top:var(--e3);font:500 var(--tm1) var(--fm);color:var(--suave)}
.crumb{border-bottom:1px solid var(--filete);font:500 var(--tm1) var(--fm);color:var(--suave)}.crumb a{display:inline-flex;align-items:center;min-height:44px;color:var(--suave)}
.legal{max-width:78ch}.legal h1{font:var(--wt) var(--t5)/1.05 var(--ft);letter-spacing:var(--tr);margin-bottom:var(--e5)}
.legal h2{font:500 var(--t2)/1.25 var(--ft);margin:var(--e7) 0 var(--e3)}.legal p{color:var(--suave);margin:var(--e3) 0;max-width:70ch}
.legal a,.prosa a,.chk a,.capa1 a,.cookie a{color:var(--acento);text-decoration:underline}
.tabla{overflow-x:auto;margin:var(--e4) 0}.tabla table{border-collapse:collapse;width:100%;font-size:var(--tm1)}
.tabla th,.tabla td{border-bottom:1px solid var(--filete);padding:var(--e3) var(--e3) var(--e3) 0;text-align:left;vertical-align:top;color:var(--suave)}.tabla th{color:var(--tinta);font-weight:500}
dl.ident{display:grid;grid-template-columns:max-content 1fr;gap:var(--e2) var(--e5);margin:var(--e4) 0}dl.ident dt{font:500 var(--tm1) var(--fm);color:var(--suave)}
.ver{margin-top:var(--e7);font:500 var(--tm1) var(--fm);color:var(--suave)}
.form{max-width:44rem;display:grid;gap:var(--e4);margin-top:var(--e6)}
.campo{display:grid;gap:var(--e2)}.campo label{font:500 var(--tm1)/1.4 var(--fm);color:var(--suave)}
.form input[type=text],.form input[type=email],.form input[type=tel],.form textarea{width:100%;min-height:48px;padding:var(--e3) var(--e4);font:inherit;color:var(--tinta);background:var(--fondo);border:1px solid var(--filete);border-radius:var(--radio);transition:border-color var(--d1) var(--sale)}
.form input:focus,.form textarea:focus{border-color:var(--foco)}
.form input:user-invalid,.form textarea:user-invalid{border-color:var(--tinta);outline:1px solid var(--tinta);outline-offset:0}
.form .nota{margin-top:0}
.chk{display:flex;gap:var(--e3);align-items:flex-start;color:var(--suave);font-size:var(--tm1)}.chk input{width:24px;height:24px;margin-top:0;flex:none;accent-color:var(--acento)}
.hp{position:absolute!important;left:-10000px;width:1px;height:1px;overflow:hidden}
.capa1{border:1px solid var(--filete);border-radius:var(--radio);padding:var(--e3) var(--e4);font-size:var(--tm1)}.capa1 summary{cursor:pointer;font-weight:500;min-height:44px;display:flex;align-items:center}
.capa1 dl{display:grid;grid-template-columns:max-content 1fr;gap:var(--e2) var(--e4);margin-top:var(--e3)}.capa1 dd{color:var(--suave)}
.ckpanel{border:1px solid var(--filete);border-radius:var(--radio);padding:var(--e5);margin:var(--e5) 0}.ckbtns{display:flex;gap:var(--e3);flex-wrap:wrap;margin-top:var(--e4)}
footer{padding:var(--e7) 0;border-top:1px solid var(--filete);font:500 var(--tm1)/1.5 var(--fm);color:var(--suave)}
.footcols{display:flex;justify-content:space-between;flex-wrap:wrap;gap:var(--e4)}.fl{display:flex;flex-wrap:wrap;gap:0 var(--e5)}.fl a{display:inline-flex;align-items:center;min-height:44px;text-decoration:none;transition:color var(--d1) var(--sale)}
.cookie{position:fixed;left:var(--e4);right:var(--e4);bottom:max(var(--e4),env(safe-area-inset-bottom));z-index:99;max-width:44rem;margin:0 auto;padding:var(--e5);background:var(--fondo);border:1px solid var(--tinta);border-radius:var(--radio);display:grid;gap:var(--e4);box-shadow:var(--sombra-2)}
.cookie p{font-size:var(--tm1);color:var(--suave)}.cookie .ckbtns{margin-top:0}
.arte{width:100%;height:auto;color:var(--tinta)}
@media (hover:hover) and (pointer:fine){
.btn:hover{background:var(--acento);border-color:var(--acento);color:var(--sobre-acento)}
.nav nav a:hover,.fl a:hover{color:var(--tinta)}
.enl:hover{text-decoration-color:transparent}
.form input:hover,.form textarea:hover{border-color:var(--suave)}
}
@media (prefers-reduced-motion:no-preference){
::view-transition-old(root),::view-transition-new(root){animation-duration:var(--d2);animation-timing-function:var(--sale)}
html{scroll-behavior:smooth}
.btn{transition:background-color var(--d1) var(--sale),border-color var(--d1) var(--sale),color var(--d1) var(--sale),transform var(--d1) var(--sale)}
.btn:active{transform:scale(.97)}
.btn .flecha{transition:transform var(--d2) var(--sale)}

}
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.btn:hover .flecha{transform:translateX(3px)}}
@media (max-width:900px){.lamina .rotulo,.lamina.der .rotulo{position:static;max-width:none;padding:var(--e5) var(--gutter)}.cab,.cuerpo{grid-column:1/-1}.cuerpo{margin-top:var(--e6)}.lista li,.tiempo li,.esc,.split,.split.rev,.founder,.demo,.hero .con-media,.hero .pie,.caso .partes,.conf{grid-template-columns:1fr}.hero .pie .prueba{margin-top:var(--e5)}.split.rev .txt{order:0}.hero .con-media .media{margin-top:var(--e6)}}
@media (max-width:680px){.nav .pgs,.nav>.btn,.topbar{display:none}.menu{display:block}}
}@media (prefers-reduced-motion:no-preference){@view-transition{navigation:auto}}@layer piel{
/* Piel de revirai.ai · «Tres eras, el mismo escritorio» (prototipo aprobado por Marcos el 3-oct-2026).
   Un solo mundo: la misma oficina española (pared de yeso, contraventanas, flexo de latón, mesa de nogal).
   Papel claro y tinta casi negra; el granate #740f25 es el único acento. Cormorant Garamond ligera para titulares y
   Jost para lo demás. Va en @layer piel: gana al chasis. Sin estilos en línea (CSP).
   Movimiento solo con prefers-reduced-motion: no-preference; sin él se ve directamente el estado final. */

:root{--sec:clamp(4.5rem,3rem + 5vw,7.5rem);--ancho:1440px;--gutter:clamp(1.5rem,.9rem + 2.4vw,3.5rem);
--papel:#f4efe9;--yeso:#e7ddd0;--tinta-p:#000000;--granate:#740f25;--granate-osc:#740f25;--rosa:#e7ddd0}

/* ---- base */
body{font-weight:400}
section{border-top:0}
.rv-oculto{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.rv-ey{font:500 .8125rem/1.5 var(--fc);letter-spacing:.28em;text-transform:uppercase;color:var(--acento)}
.rv-h1{font:300 clamp(2.5rem,1.55rem + 3.1vw,3.9rem)/1.04 var(--ft);letter-spacing:0;max-width:16ch}
.rv-h2{font:300 clamp(2.35rem,1.6rem + 2.9vw,4.375rem)/1.04 var(--ft);letter-spacing:0;max-width:22ch}
#consulta .sh{font:300 clamp(2.35rem,1.6rem + 2.9vw,4.375rem)/1.04 var(--ft);letter-spacing:0;max-width:22ch}
.rv-h2-grande{font-size:clamp(2.8rem,1.7rem + 4vw,5.5rem);line-height:1}
.rv-h1 em,.rv-h2 em,.rv-dice em{font-style:italic;font-weight:400;color:var(--acento)}
.rv-h3{font:400 clamp(1.6rem,1.35rem + .9vw,2.125rem)/1.12 var(--ft)}
.rv-h3g{font:300 clamp(2rem,1.55rem + 1.6vw,2.875rem)/1.06 var(--ft)}
.rv-sub{font:400 clamp(1.0625rem,1rem + .3vw,1.25rem)/1.6 var(--fc);max-width:34em;color:var(--suave)}
.rv-intro{font:400 clamp(1.0625rem,1rem + .2vw,1.125rem)/1.7 var(--fc);max-width:34em;color:var(--tinta)}
.rv-nota{font:400 .875rem/1.6 var(--fc);color:var(--suave);max-width:46em}
.rv-cab{display:flex;flex-direction:column;gap:var(--e4);max-width:52rem}
.rv-cab-doble{display:flex;flex-wrap:wrap;gap:var(--e5) var(--e8);align-items:flex-end;justify-content:space-between}
.rv-cab-doble .rv-intro,.rv-cab-doble .rv-nota{max-width:26rem}
.rv-acciones{display:flex;flex-wrap:wrap;align-items:center;gap:var(--e4) var(--e5)}
.rv-cifra{font:400 clamp(2.75rem,2.2rem + 2vw,4rem)/1 var(--ft);color:var(--acento);font-variant-numeric:tabular-nums}

/* ---- botones y enlaces */
.rv-btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:.9rem 1.75rem;background:var(--boton);color:var(--sobre-boton);border:1px solid var(--boton);font:500 .75rem/1.3 var(--fc);letter-spacing:.26em;text-transform:uppercase;text-decoration:none;text-align:center;transition:background-color var(--d1) var(--sale),color var(--d1) var(--sale),border-color var(--d1) var(--sale)}
.rv-btn-linea{background:transparent;color:var(--acento);border-color:var(--acento)}
.rv-btn-claro{background:var(--papel);color:var(--granate-osc);border-color:var(--papel)}
.rv-btn-grande{min-height:60px;padding:1.1rem 2.1rem;font-size:.8125rem}
.rv-enl{display:inline-flex;align-items:center;min-height:44px;font:400 .9375rem/1.3 var(--fc);color:var(--tinta);text-decoration:underline;text-underline-offset:.3em}
.rv-enlace-btn{align-self:flex-start;min-height:44px;padding:0;border:0;background:none;font:400 .875rem/1.3 var(--fc);color:var(--suave);text-decoration:underline;text-underline-offset:.3em;cursor:pointer}
@media (hover:hover) and (pointer:fine){
.rv-btn:hover{background:#000000;border-color:#000000;color:var(--papel)}
.rv-btn-linea:hover{background:var(--acento);color:var(--sobre-acento)}
.rv-btn-claro:hover{background:#fff;border-color:#fff;color:var(--granate-osc)}
.rv-enl:hover,.rv-enlace-btn:hover{color:var(--acento)}
.rv-pie a:hover{color:var(--rosa)}
}

/* ---- paletas por banda: oscura (noche), granate y tarjeta clara */
.rv-osc{--fondo:#000000;--superficie:#000000;--tinta:#f4efe9;--suave:#f4efe9;--filete:rgba(244,239,233,.3);--acento:#e7ddd0;--sobre-acento:#000000;--boton:#f4efe9;--sobre-boton:#740f25;--foco:#f4efe9;background:var(--fondo);color:var(--tinta)}
.rv-granate{--fondo:#740f25;--superficie:#740f25;--tinta:#f4efe9;--suave:#f4efe9;--filete:rgba(244,239,233,.3);--acento:#e7ddd0;--sobre-acento:#740f25;--boton:#f4efe9;--sobre-boton:#740f25;--foco:#f4efe9;background:var(--fondo) radial-gradient(70% 90% at 100% 0%,#740f25 0%,#740f25 70%);color:var(--tinta)}
.rv-tarjeta{--fondo:#f4efe9;--superficie:#f4efe9;--tinta:#000000;--suave:#3c3c3c;--filete:rgba(60,60,60,.25);--acento:#740f25;--sobre-acento:#f4efe9;--boton:#740f25;--sobre-boton:#f4efe9;--foco:#740f25;background:var(--fondo);color:var(--tinta);padding:clamp(1.5rem,1rem + 2vw,2.75rem);display:flex;flex-direction:column;gap:var(--e5);min-width:0}

/* ---- cabecera */
.rv-cabecera{background:var(--fondo);border-bottom:1px solid var(--filete)}
.rv-cabecera .nav{min-height:84px}
.rv-cabecera .logo img{height:38px;width:auto}
.rv-cabecera .pgs{gap:clamp(1.25rem,.6rem + 1.2vw,2rem)}
.rv-cabecera .pgs a{font:500 .8125rem/1 var(--fc);letter-spacing:.18em;text-transform:uppercase;color:var(--tinta)}
.rv-btn-cab{min-height:46px;padding:0 1.4rem;font:500 .75rem/1 var(--fc);letter-spacing:.22em;text-transform:uppercase}
.rv-cabecera .menu summary{font:500 .75rem/1 var(--fc);letter-spacing:.22em;text-transform:uppercase}
.rv-cabecera .menu .panel nav a.pg{font:400 1.375rem/1.2 var(--ft)}
@media (max-width:1060px){.rv-cabecera .nav .pgs,.rv-cabecera .nav>.btn{display:none}.rv-cabecera .menu{display:block}}
@media (hover:hover) and (pointer:fine){.rv-cabecera .pgs a:hover{color:var(--acento)}}
/* «Para quién» (28-oct-2026): desplegable con los siete negocios del ecosistema, sin JavaScript. Sustituye al enlace del
   mismo nombre, así que la barra sigue con cuatro entradas y el punto de paso al menú no cambia (1060 px). */
.rv-sol{position:relative}
.rv-sol summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:.6em;min-height:44px;font:500 .8125rem/1 var(--fc);letter-spacing:.18em;text-transform:uppercase;color:var(--tinta)}
.rv-sol summary::-webkit-details-marker{display:none}
.rv-sol summary::after{content:"";width:.42em;height:.42em;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-30%) rotate(45deg)}
.rv-sol[open] summary::after{transform:translateY(20%) rotate(225deg)}
.rv-sol-panel{position:absolute;top:calc(100% + .75rem);left:-1.25rem;z-index:60;min-width:18rem;margin:0;padding:.5rem 0;list-style:none;background:#f4efe9;border:1px solid rgba(60,60,60,.25);border-top:3px solid #740f25;box-shadow:var(--sombra-2)}
.rv-cabecera .pgs .rv-sol-panel a{display:flex;min-height:44px;align-items:center;padding:0 1.25rem;font:500 .9375rem/1.3 var(--fc);letter-spacing:.01em;text-transform:none;color:#000000}
.rv-cabecera .pgs .rv-sol-panel a:hover,.rv-cabecera .pgs .rv-sol-panel a:focus-visible{background:#e7ddd0;color:#740f25}
.rv-sol-panel .rv-sol-todo{margin-top:.25rem;border-top:1px solid rgba(60,60,60,.25)}
.rv-cabecera .pgs .rv-sol-panel .rv-sol-todo a{font:500 .75rem/1 var(--fc);letter-spacing:.18em;text-transform:uppercase;color:#740f25}
.rv-cabecera .menu .panel .rv-menu-tit{margin:var(--e3) 0 0;padding:.75rem 0;font:500 .75rem/1 var(--fc);letter-spacing:.22em;text-transform:uppercase;color:var(--suave);border-bottom:1px solid var(--filete)}
@media (hover:hover) and (pointer:fine){.rv-sol summary:hover{color:var(--acento)}}

/* ---- medios a sangre (portada, problema, firma, cierre) */
.rv-fondo,.rv-eras-fondo{position:absolute;inset:0;overflow:hidden}
.rv-lienzo{position:absolute;inset:0;border-radius:0;background:var(--yeso)}
.rv-lienzo picture,.rv-lienzo img,.rv-lienzo video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:30% 50%}
.rv-lienzo figcaption{position:absolute;left:var(--e4);top:var(--e4);z-index:3;padding:.3rem .6rem;font:400 .75rem/1.3 var(--fc);letter-spacing:.04em;color:var(--tinta-p);background:rgba(244,239,233,.82)}
.rv-lienzo .pausa{top:var(--e4);bottom:auto;right:var(--e4);z-index:4;font:500 .75rem/1 var(--fc);letter-spacing:.08em;background:rgba(244,239,233,.9);color:var(--tinta-p);border-color:rgba(0,0,0,.25)}
.rv-encima{position:relative;z-index:2;width:100%}
.rv-velo-claro{position:absolute;inset:0;background:linear-gradient(90deg,rgba(240,232,222,.86) 0%,rgba(240,232,222,.58) 32%,rgba(240,232,222,0) 56%)}
.rv-velo-osc-izq{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.93) 0%,rgba(0,0,0,.72) 40%,rgba(0,0,0,.12) 70%)}
.rv-velo-osc-der{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,0) 28%,rgba(0,0,0,.86) 72%)}

/* ---- 1 · portada: tres eras */
.rv-eras{position:relative;display:flex;align-items:center;min-height:clamp(38rem,calc(100svh - 84px),56rem);padding:var(--e8) 0;overflow:hidden;background:var(--yeso);color:var(--tinta-p)}
.rv-eras-texto{position:relative;z-index:2;width:100%}
.rv-frases{position:relative;max-width:38rem}
.rv-propuesta{display:flex;flex-direction:column;gap:var(--e5)}
.rv-propuesta .rv-sub{color:#000000}
.rv-rotulo{position:relative;margin-bottom:var(--e6)}
.rv-cuando{display:block;margin-bottom:var(--e3);font:500 .8125rem/1.4 var(--fc);letter-spacing:.32em;text-transform:uppercase;color:var(--granate)}
.rv-dice{display:block;font:300 clamp(1.875rem,1.3rem + 1.9vw,2.875rem)/1.1 var(--ft)}
.rv-eras .rv-enl{color:var(--tinta-p)}
/* El titular, la explicación y los botones están siempre a la vista: no dependen de ningún temporizador (B1).
   La introducción (eras 1 y 2, «Ayer» y «Después») llega con hidden y piel.js la activa con .rv-anima solo sin «reducir
   movimiento» ni «ahorro de datos». «Ahora» ocupa su sitio desde el principio y aparece al final. La pausa (.rv-quieto)
   congela las escenas y deja el contenido principal tal cual. */
@media (prefers-reduced-motion:no-preference){
.rv-anima .rv-era-1{animation:rv-sale-1 14s linear 1 both}
.rv-anima .rv-era-2{animation:rv-sale-2 14s linear 1 both}
.rv-anima .rv-era-1 img,.rv-anima .rv-era-2 img{animation:rv-acerca 14s linear 1 both}
.rv-anima .rv-frase-1,.rv-anima .rv-frase-2{position:absolute;left:0;right:0;top:0}
.rv-anima .rv-frase-1{animation:rv-t1 14s linear 1 both}
.rv-anima .rv-frase-2{animation:rv-t2 14s linear 1 both}
.rv-anima .rv-frase-3{animation:rv-t3 14s linear 1 both}
.rv-quieto .rv-era,.rv-quieto .rv-era img,.rv-quieto .rv-frase{animation-play-state:paused}
}
@keyframes rv-sale-1{0%,26%{opacity:1}30%,100%{opacity:0;visibility:hidden}}
@keyframes rv-sale-2{0%,54%{opacity:1}58%,100%{opacity:0;visibility:hidden}}
@keyframes rv-acerca{from{transform:scale(1.02)}to{transform:scale(1.1)}}
@keyframes rv-t1{0%,24%{opacity:1}28%,100%{opacity:0;visibility:hidden}}
@keyframes rv-t2{0%,28%{opacity:0;visibility:hidden}31%,54%{opacity:1;visibility:visible}57%,100%{opacity:0;visibility:hidden}}
@keyframes rv-t3{0%,56%{opacity:0;visibility:hidden}59%,100%{opacity:1;visibility:visible}}

/* ---- franja de autoridad */
.rv-franja{background:var(--papel);border-bottom:1px solid var(--filete)}
.rv-franja ul{list-style:none;display:flex;flex-wrap:wrap;gap:var(--e3) var(--e7);justify-content:space-between;padding-top:var(--e5);padding-bottom:var(--e5);font:400 .9375rem/1.5 var(--fc);color:var(--suave)}
.rv-franja strong{font-weight:500;color:var(--tinta)}

/* ---- 2 · te entendemos */
.rv-problema,.rv-control,.rv-cierre{position:relative;display:flex;overflow:hidden;min-height:clamp(36rem,30rem + 22vw,52rem)}
.rv-problema{align-items:center}
.rv-problema .rv-lienzo img{object-position:0% 60%}
.rv-problema .wrap{display:flex;flex-direction:column;gap:var(--e8);width:100%}
.rv-problema .rv-cab{max-width:42rem}
.rv-tres{list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,13rem),1fr));gap:var(--e6);max-width:50rem;padding-top:var(--e6);border-top:1px solid var(--filete)}
.rv-tres li{font:400 1rem/1.6 var(--fc);color:var(--suave)}
.rv-dolor{display:block;margin-bottom:var(--e2);font:400 1.625rem/1.15 var(--ft);color:var(--tinta)}

/* ---- 3 · traductores: tres pasos */
.rv-pasos .wrap,.rv-lineas .wrap,.rv-nosotros .wrap,.rv-clientes .wrap{display:flex;flex-direction:column;gap:clamp(3rem,2rem + 3vw,4.5rem)}
.rv-lista-pasos{list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr));gap:var(--e7)}
.rv-lista-pasos li{display:flex;flex-direction:column;gap:var(--e4)}
.rv-lista-pasos p{font:400 1.0625rem/1.65 var(--fc);color:var(--suave)}
.rv-cuadro{aspect-ratio:1/1;border-radius:0}
.rv-cuadro img,.rv-cuadro video{width:100%;height:100%;object-fit:cover}
.rv-cuadro figcaption,.rv-apaisada figcaption,.rv-retrato figcaption{position:absolute;left:var(--e3);bottom:var(--e3);padding:.25rem .55rem;font:400 .75rem/1.3 var(--fc);color:var(--tinta-p);background:rgba(244,239,233,.85)}
.rv-cuadro,.rv-apaisada{position:relative}
.rv-cuadro .pausa,.rv-apaisada .pausa{font:500 .75rem/1 var(--fc);background:rgba(244,239,233,.9);color:var(--tinta-p)}
.rv-num{font:400 1.375rem/1 var(--ft);color:var(--acento)}
.rv-compromiso{padding-top:var(--e6);border-top:1px solid var(--filete);font:italic 400 clamp(1.375rem,1.2rem + .7vw,1.75rem)/1.3 var(--ft);color:var(--acento)}

/* ---- 4 · qué hacemos: cuatro líneas */
.rv-lineas{border-top:1px solid var(--filete)}
.rv-linea{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:var(--e6) clamp(2rem,1rem + 3vw,4.5rem);align-items:center}
.rv-linea.rv-alt .rv-apaisada{order:2}
.rv-apaisada{aspect-ratio:16/10;border-radius:0}
.rv-apaisada img,.rv-apaisada video{width:100%;height:100%;object-fit:cover}
.rv-linea-texto{display:flex;flex-direction:column;gap:var(--e4);min-width:0}
.rv-linea-texto>p:not(.rv-ey){font:400 1.0625rem/1.7 var(--fc);color:var(--suave)}
.rv-linea .rv-ey{font-size:.75rem}

/* ---- 5 · calculadora */
.rv-dos{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:clamp(2.5rem,1.5rem + 3vw,4rem);align-items:center}
.rv-calc{background:#000000 radial-gradient(60% 80% at 100% 0%,rgba(116,15,37,.5) 0%,rgba(0,0,0,0) 70%)}
.rv-grupo{border:0;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--e3);min-width:0}
.rv-grupo legend{padding:0;margin-bottom:var(--e3);font:500 .75rem/1.5 var(--fc);letter-spacing:.2em;text-transform:uppercase;color:var(--suave)}
.rv-opciones{display:flex;flex-wrap:wrap;gap:var(--e2)}
.rv-op{position:relative;display:inline-flex}
.rv-op input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}
.rv-op span{display:inline-flex;align-items:center;min-height:44px;min-width:3.5rem;justify-content:center;padding:0 1.1rem;border:1px solid #3c3c3c;font:400 .9375rem/1 var(--fc);font-variant-numeric:tabular-nums;color:var(--tinta);transition:background-color var(--d1) var(--sale),color var(--d1) var(--sale)}
.rv-op input:checked+span{background:var(--granate);border-color:var(--granate);color:var(--papel)}
.rv-op input:focus-visible+span{outline:2px solid var(--foco);outline-offset:3px}
.rv-resultado{display:flex;flex-wrap:wrap;gap:var(--e4) var(--e7);padding-top:var(--e5);border-top:1px solid var(--filete)}
.rv-resultado p{display:flex;flex-direction:column;gap:var(--e1)}
.rv-resultado span{font:400 .875rem/1.4 var(--fc);color:var(--suave)}
.rv-tarjeta .rv-btn{align-self:flex-start}

/* ---- 6 · la firma */
.rv-control{align-items:flex-end}
.rv-control .rv-lienzo img,.rv-control .rv-lienzo video{object-position:50% 50%}
.rv-derecha{display:flex;justify-content:flex-end;width:100%;padding-bottom:clamp(4rem,3rem + 4vw,7rem)}
.rv-bloque{display:flex;flex-direction:column;gap:var(--e5);max-width:36rem}
.rv-control .rv-intro{color:#f4efe9}

/* ---- 7 · quién hay detrás */
.rv-ancha{max-width:68rem}
.rv-cita{margin:0}
.rv-cita p{font:300 clamp(2rem,1.45rem + 2.1vw,3.625rem)/1.12 var(--ft)}
.rv-equipo{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),24rem));justify-content:start;gap:var(--e7)}
.rv-persona{display:flex;flex-direction:column;gap:var(--e2)}
.rv-retrato{aspect-ratio:4/5;margin-bottom:var(--e3);border-radius:0;position:relative}
.rv-retrato img{width:100%;height:100%;object-fit:cover}
.rv-nombre{font:400 2rem/1.1 var(--ft)}
.rv-cargo{font:500 .8125rem/1.4 var(--fc);letter-spacing:.2em;text-transform:uppercase;color:var(--acento)}
.rv-persona p:last-child{font:400 .9375rem/1.6 var(--fc);color:var(--suave)}
.rv-compromiso-caja{display:flex;flex-direction:column;justify-content:flex-end;gap:var(--e4);padding-top:var(--e6);border-top:1px solid var(--filete)}
.rv-compromiso-txt{font:400 1.875rem/1.2 var(--ft)}

/* ---- 8 · clientes */
.rv-clientes{border-top:1px solid var(--filete)}
.rv-casos{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr));gap:var(--e7)}
.rv-caso{display:flex;flex-direction:column;gap:var(--e3);padding-top:var(--e5);border-top:2px solid var(--acento)}
.rv-caso .rv-ey{font-size:.75rem;letter-spacing:.2em}
.rv-caso p:last-child{font:400 1rem/1.7 var(--fc);color:var(--suave)}
.rv-caso .rv-h3{font-size:2.25rem}

/* ---- 9 · autodiagnóstico */
.rv-diag{min-height:28rem}
.rv-diag-sinjs{display:flex;flex-direction:column;gap:var(--e5);font:400 1.0625rem/1.6 var(--fc)}
.rv-diag-juego,.rv-diag-fin{display:flex;flex-direction:column;gap:var(--e5)}
.rv-diag-juego[hidden],.rv-diag-fin[hidden],.rv-diag-p[hidden]{display:none}
.rv-diag-progreso{display:flex;justify-content:space-between;font:500 .8125rem/1.4 var(--fc);letter-spacing:.16em;text-transform:uppercase;color:var(--suave)}
.rv-barra{height:2px;background:var(--filete)}
.rv-barra span{display:block;height:2px;width:100%;background:var(--acento);transform:scaleX(0);transform-origin:0 50%}
@media (prefers-reduced-motion:no-preference){.rv-barra span{transition:transform var(--d2) var(--sale)}}
.rv-diag-p{border:0;padding:0;margin:0;min-width:0}
.rv-diag-p legend{padding:0;margin-bottom:var(--e5)}
.rv-diag-q{display:block;font:400 clamp(1.5rem,1.3rem + .8vw,1.875rem)/1.2 var(--ft);color:var(--tinta)}
.rv-diag-ops{display:flex;flex-direction:column;gap:var(--e2)}
.rv-diag-op{width:100%;min-height:52px;padding:.9rem 1.25rem;text-align:left;border:1px solid #3c3c3c;background:transparent;color:var(--tinta);font:400 1rem/1.4 var(--fc);cursor:pointer;transition:background-color var(--d1) var(--sale),color var(--d1) var(--sale)}
.rv-diag-op[aria-pressed=true]{background:var(--granate-osc);border-color:var(--granate-osc);color:var(--papel);font-weight:400}
@media (hover:hover) and (pointer:fine){.rv-diag-op:hover{border-color:var(--granate);background:#f4efe9}.rv-diag-op[aria-pressed=true]:hover{background:var(--granate-osc)}}
.rv-diag-titulo{font:400 clamp(2rem,1.6rem + 1.4vw,2.5rem)/1.08 var(--ft)}
.rv-diag-fin>p{font:400 1.0625rem/1.65 var(--fc);color:var(--tinta)}
.rv-diag-fin strong{font-weight:500;color:var(--tinta)}
.rv-diag-horas{display:flex;flex-wrap:wrap;gap:var(--e2) var(--e6);align-items:baseline;padding:var(--e4) 0;border-top:1px solid var(--filete);border-bottom:1px solid var(--filete)}
.rv-diag-intervalo{font:400 clamp(1.75rem,1.5rem + 1vw,2.25rem)/1.1 var(--ft);color:var(--acento)}
.rv-diag-horas span:last-child{font:400 .9375rem/1.5 var(--fc);color:var(--suave);max-width:24rem}
.rv-diag-fin .rv-btn{align-self:flex-start}

/* ---- 10 · preguntas */
.rv-dos-asim{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:var(--e6) clamp(2.5rem,1.5rem + 3vw,4rem)}
.rv-faqs{border-top:1px solid var(--filete)}
.rv-faq{border-bottom:1px solid var(--filete)}
.rv-faq summary{display:flex;justify-content:space-between;align-items:center;gap:var(--e5);min-height:44px;padding:var(--e5) 0;list-style:none;cursor:pointer;font:400 clamp(1.375rem,1.2rem + .6vw,1.6875rem)/1.25 var(--ft);color:var(--tinta)}
.rv-faq summary::-webkit-details-marker{display:none}
.rv-faq summary::after{content:"+";flex:none;font:300 1.375rem/1 var(--fc);color:var(--acento)}
.rv-faq[open] summary::after{content:"\2212"}
.rv-faq p{padding:0 var(--e6) var(--e5) 0;font:400 1.0625rem/1.7 var(--fc);color:var(--suave)}

/* ---- 11 · cierre */
.rv-cierre{align-items:center;background:var(--yeso);color:var(--tinta-p)}
.rv-cierre .rv-sub{color:#000000}
.rv-cierre .rv-ey{color:var(--granate)}

/* ---- banda granate (interiores) */
.rv-banda-in{display:flex;flex-wrap:wrap;gap:var(--e6) var(--e8);align-items:center;justify-content:space-between}
.rv-banda .rv-h2{font-size:clamp(2.2rem,1.6rem + 2.4vw,4rem);max-width:24ch}

/* ---- páginas de servicio */
.rv-srv-rej{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:var(--e7) clamp(2rem,1rem + 3vw,4rem);align-items:center}
.rv-srv-texto{display:flex;flex-direction:column;gap:var(--e5)}
.rv-srv-cabeza{padding-top:clamp(3rem,2rem + 3vw,4.5rem)}
.rv-srv-dolores .wrap{display:flex;flex-direction:column;gap:var(--e7)}
.rv-srv-dolores .rv-tres{max-width:none}
.rv-lista-num{list-style:none;border-top:1px solid var(--filete)}
.rv-lista-num li{padding:var(--e6) 0;border-bottom:1px solid var(--filete)}
.rv-lista-num .rv-h3{font-size:clamp(1.5rem,1.3rem + .8vw,1.875rem);margin-bottom:var(--e2)}
.rv-lista-num p{font:400 1rem/1.65 var(--fc);color:var(--suave)}
.rv-srv-caso{padding-top:0}
.rv-caso-caja{display:flex;flex-direction:column;gap:var(--e3);padding:clamp(1.5rem,1rem + 2vw,3rem);background:var(--superficie);max-width:62rem}
.rv-caso-nombre{font:400 2.5rem/1.1 var(--ft)}
.rv-caso-caja p:last-child{font:400 1.0625rem/1.7 var(--fc);color:var(--tinta)}
.rv-claro{background:var(--fondo)}
.rv-srv-hacemos+.rv-claro,.rv-srv-caso+.rv-claro{padding-top:0}

/* ---- contacto */
.rv-contacto-in{display:flex;flex-direction:column;gap:var(--e5);max-width:46rem}
#consulta>.wrap{max-width:46rem}
#consulta .ey{font:500 .8125rem/1.5 var(--fc);letter-spacing:.28em;text-transform:uppercase;color:var(--acento);margin-bottom:var(--e4)}
.rv-h1+.rv-sub{margin-top:0}
.rv-contacto .rv-h1{font-size:clamp(2.9rem,1.8rem + 4vw,5.5rem);line-height:1}
.rv-datos{list-style:none;display:flex;flex-direction:column;gap:var(--e2);padding-top:var(--e5);border-top:1px solid var(--filete);font:400 1rem/1.6 var(--fc);color:var(--suave)}

/* ---- legales: tablas legibles en el móvil */
.legal{max-width:72ch}
.legal h1{font-weight:300}
.legal h2{font-weight:400;font-size:clamp(1.5rem,1.3rem + .8vw,1.875rem)}
.tabla table{table-layout:fixed}
.tabla th,.tabla td{overflow-wrap:anywhere;hyphens:auto}
@media (max-width:640px){
.tabla thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.tabla table,.tabla tbody,.tabla tr,.tabla td{display:block;width:100%}
.tabla tr{padding:var(--e3) 0;border-bottom:1px solid var(--filete)}
.tabla td{border-bottom:0;padding:var(--e1) 0}
.tabla td:first-child{color:var(--tinta);font-weight:500}
}

/* ---- pie y llamada fija */
.rv-pie{padding:var(--e8) 0 var(--e7);border-top:1px solid #000000}
.rv-pie .wrap{display:flex;flex-direction:column;gap:var(--e6)}
.rv-pie-arriba{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:var(--e5)}
.rv-pie-arriba nav{display:flex;flex-wrap:wrap;gap:var(--e2) var(--e6)}
.rv-pie-arriba nav a{display:inline-flex;align-items:center;min-height:44px;font:500 .75rem/1 var(--fc);letter-spacing:.2em;text-transform:uppercase;text-decoration:none;color:var(--tinta)}
.rv-pie .logo img{height:28px;width:auto}
.rv-pie-abajo{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--e3) var(--e6);font:400 .8125rem/1.6 var(--fc);color:#f4efe9}
.rv-pie-abajo nav{display:flex;flex-wrap:wrap;gap:0 var(--e4)}
.rv-pie-abajo nav a{display:inline-flex;align-items:center;min-height:44px;text-decoration:none;color:#f4efe9}
.rv-pie-nota{font:400 .8125rem/1.6 var(--fc);color:#f4efe9}
.rv-cta-fija{position:fixed;right:var(--e5);bottom:var(--e5);z-index:60;display:inline-flex;align-items:center;min-height:52px;padding:0 1.6rem;background:var(--granate);color:var(--papel);font:500 .75rem/1 var(--fc);letter-spacing:.24em;text-transform:uppercase;text-decoration:none;box-shadow:var(--sombra-2)}
@media (hover:hover) and (pointer:fine){.rv-cta-fija:hover{background:#000000;color:var(--papel)}}
body:has(#consulta) .rv-cta-fija{display:none}

/* ---- tableta y móvil */
@media (max-width:900px){
.rv-linea,.rv-dos,.rv-dos-asim,.rv-srv-rej{grid-template-columns:minmax(0,1fr)}
.rv-linea.rv-alt .rv-apaisada{order:0}
.rv-velo-claro{background:linear-gradient(180deg,rgba(240,232,222,0) 0%,rgba(240,232,222,.1) 30%,rgba(240,232,222,.88) 58%,rgba(240,232,222,.96) 100%)}
.rv-velo-osc-izq,.rv-velo-osc-der{background:linear-gradient(180deg,rgba(0,0,0,.1) 0%,rgba(0,0,0,.3) 30%,rgba(0,0,0,.88) 58%,rgba(0,0,0,.95) 100%)}
.rv-eras .rv-lienzo img,.rv-eras .rv-lienzo video,.rv-cierre .rv-lienzo img,.rv-cierre .rv-lienzo video{object-position:66% 50%}
.rv-problema .rv-lienzo img{object-position:70% 50%}
.rv-problema,.rv-cierre{align-items:flex-end;padding-top:clamp(14rem,40vh,22rem)}
.rv-eras{align-items:flex-end}
.rv-derecha{justify-content:flex-start}
}
@media (max-width:700px){
.rv-cta-fija{left:0;right:0;bottom:0;justify-content:center;min-height:56px;padding-bottom:env(safe-area-inset-bottom)}
body{padding-bottom:56px}
body:has(#consulta){padding-bottom:0}
.rv-cabecera .nav{min-height:68px}
.rv-cabecera .logo img{height:30px}
.rv-franja ul{justify-content:flex-start}
/* escenas a sangre en el móvil: la imagen arriba y el texto debajo, sobre fondo liso (se lee siempre) */
.rv-eras,.rv-problema,.rv-control,.rv-cierre{display:block;min-height:0;padding:0}
.rv-eras-fondo,.rv-fondo{position:relative;inset:auto;height:clamp(15rem,44vh,24rem)}
.rv-velo-claro,.rv-velo-osc-izq,.rv-velo-osc-der{display:none}
.rv-eras-texto,.rv-encima{padding-top:var(--e7);padding-bottom:var(--e8)}
.rv-derecha{padding-bottom:var(--e8)}
.rv-problema .wrap{gap:var(--e7)}
.rv-lienzo .pausa{top:var(--e3);right:var(--e3)}
.rv-lienzo figcaption{left:var(--e3);top:auto;bottom:var(--e3)}
}
@media (max-width:380px){
.rv-btn{letter-spacing:.16em;padding:.9rem 1.1rem}
.rv-cta-fija{letter-spacing:.16em}
}

/* Candidato de revisión: tres escenas reales del material original y equipo completo. */
.rv-eras .rv-era{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity .55s ease,visibility 0s .55s;pointer-events:none}
.rv-eras .rv-era.rv-actual{opacity:1;visibility:visible;transition-delay:0s}
.rv-eras.rv-sin-transicion .rv-era{transition:none}
.rv-eras .rv-rotulo{min-height:6rem}
.rv-eras .rv-dice{font-size:clamp(2.5rem,1.5rem + 3.2vw,4.25rem);line-height:1.08}
.rv-eras .rv-propuesta[hidden]{display:none}
.rv-eras-controles{display:flex;align-items:center;gap:1rem;margin-top:1.5rem;flex-wrap:wrap}
.rv-eras-controles[hidden],.rv-movimiento[hidden]{display:none}
.rv-eras-controles [data-era-elegir]{min-height:44px;padding:.25rem .1rem;font:400 .8125rem/1.4 var(--fc);letter-spacing:.12em;color:var(--suave);background:none;border:0;border-bottom:1px solid transparent;cursor:pointer}
.rv-eras-controles [data-era-elegir][aria-pressed=true]{color:var(--granate);border-bottom-color:var(--granate)}
.rv-movimiento{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;padding:10px;border:1px solid var(--filete);border-radius:50%;color:var(--granate);background:rgba(244,239,233,.85);cursor:pointer}
.rv-movimiento svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.rv-movimiento .rv-icono-play{display:none}
.rv-movimiento[aria-pressed=true] .rv-icono-pausa{display:none}
.rv-movimiento[aria-pressed=true] .rv-icono-play{display:block}
.rv-nosotros .rv-equipo{grid-template-columns:repeat(3,minmax(0,1fr));gap:3rem;align-items:start}
.rv-nosotros .rv-compromiso-caja{align-self:center}
@media(max-width:1000px){.rv-nosotros .rv-equipo{grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem}.rv-nosotros .rv-compromiso-caja{grid-column:1/-1;max-width:40rem}}
@media(max-width:600px){.rv-nosotros .rv-equipo{grid-template-columns:1fr;gap:2.5rem}.rv-nosotros .rv-compromiso-caja{grid-column:auto}.rv-eras .rv-rotulo{min-height:5.4rem}}
@media(prefers-reduced-motion:reduce){.rv-eras .rv-era{transition:none}}

/* Bloque 1 (Claude, 14-oct-2026) · «Ahora»: aire entre el texto y el portátil de la escena.
   Marcos: «está demasiado pegado el texto al ordenador». El vídeo cubre la portada (cover, encuadre al 30 %) y el borde
   izquierdo del portátil está en x = 828 de 1920 (cartel de era3). Con escala s = max(ancho/1920, alto/1032) el portátil
   cae en 30vw + 252·s; el texto empieza en max(0, (100vw − ancho máximo)/2) + margen. El titular y la explicación
   terminan 4rem antes del portátil, sin pasar de sus topes de siempre (16ch y 34em). Solo escritorio: por debajo de
   900px la imagen va arriba y el texto debajo. */
@media (min-width:901px){
.rv-eras .rv-propuesta{--rv-hasta:calc(30vw + 252*max(100vw/1920,clamp(38rem,100svh - 84px,56rem)/1032) - max(0px,(100vw - var(--ancho))/2) - var(--gutter) - 4rem)}
.rv-eras .rv-propuesta>.rv-h1{max-width:min(16ch,var(--rv-hasta))}
.rv-eras .rv-propuesta>.rv-sub{max-width:min(34em,var(--rv-hasta))}
}

/* Paquete 1 (Claude, 14-oct-2026) · Pantalla grande y coherencia. Auditoría visual, hallazgos 1-3; GO de Marcos vía Codex.
   Por debajo de 1.440 px de ancho solo cambian el fondo, los bordes de los campos y el espacio entre secciones. */

/* 1 · La web escala con la pantalla. Por encima de 1.440 px el contenido llega hasta 1.680 px (87,5 % del ancho) y todo
   lo que se mide en rem (letra, márgenes, huecos) crece de forma continua hasta un 12,5 % a 1.920 px. Así los títulos no
   se quedan quietos desde 1.530 px. Parte del tamaño de letra del usuario (100 %), no lo sustituye. */
:root{--ancho:clamp(1440px,87.5vw,1680px)}
html{font-size:clamp(100%,100% + (100vw - 1440px)/240,112.5%)}

/* 2 · Un solo fondo base: el yeso cálido de la portada y del cierre. El papel queda para tarjetas, cajas y campos; el
   oscuro, para las dos escenas de pausa (problema y firma) y el pie; el granate, para el autodiagnóstico. La calculadora
   y las preguntas de la portada pasan de oscuro a yeso. Contrastes sobre yeso: tinta 13,7 · gris 7,5 · granate 8,5.
   El fondo base sale de la paleta de la configuración (p1_paleta.json), que la fábrica verifica pareja a pareja y que
   también da el color de la barra del navegador; aquí solo van las dos secciones que dejan de ser oscuras. */
.rv-calc.rv-osc,.rv-preguntas.rv-osc{--fondo:#e7ddd0;--superficie:#f4efe9;--tinta:#000000;--suave:#3c3c3c;--filete:rgba(60,60,60,.25);
  --acento:#740f25;--sobre-acento:#f4efe9;--boton:#740f25;--sobre-boton:#f4efe9;--foco:#740f25;background:var(--fondo);color:var(--tinta)}
.rv-calc.rv-osc{border-top:1px solid var(--filete)}
.rv-calc .rv-tarjeta{box-shadow:var(--sombra-2)}
/* Campos y opciones: fondo papel y borde de 3,2 a 1 o más sobre papel y sobre yeso (antes 1,3 a 1; WCAG 1.4.11). */
.form input[type=text],.form input[type=email],.form input[type=tel],.form textarea{background:var(--superficie);border-color:#3c3c3c}
.rv-op span{border-color:#3c3c3c}

/* 3 · Cabecera doble: la entradilla va junto al título, no contra el borde derecho. */
.rv-cab-doble{justify-content:flex-start;column-gap:clamp(2.5rem,1rem + 4vw,6rem)}

/* 4 · Espacio entre secciones algo más contenido (antes 4,5-7,5rem): con un solo fondo, dos rellenos seguidos se leían como
   una franja vacía. Se afina con las capturas de página completa. */
:root{--sec:clamp(4rem,2.5rem + 4vw,6.5rem)}

/* Paquete 1 · ajuste b (Claude, 14-oct-2026) · Llegada desde el menú. Marcos, con capturas: al pulsar «Qué hacemos»,
   «Cómo trabajamos» o «Quiénes somos» sale mucho hueco arriba (y una tira de la sección anterior) y se corta lo de abajo.
   1) El desplazamiento a anclas descuenta justo la cabecera fija (84 px + filete; 68 px en móvil). Antes eran 5,5rem: con
      la letra raíz del paquete 1 pasaba de la cabecera y asomaba la sección anterior.
   2) Las secciones de destino aterrizan en su contenido: su relleno superior queda bajo la cabecera y el título sale a
      2,5rem de ella. El ritmo al bajar con la rueda no cambia.
   3) En escritorio, las imágenes de esas secciones no pasan de una parte del alto de la pantalla, para que el título y la
      imagen principal quepan juntos al llegar. Si la pantalla es alta, conservan su forma; si es baja, se recortan por
      arriba y por abajo (object-fit: cover), con las caras de los retratos hacia arriba. */
html{scroll-padding-top:85px}
@media (max-width:700px){html{scroll-padding-top:69px}}
:is(.rv-pasos,.rv-lineas,.rv-nosotros,.rv-calc,.rv-diag-sec,.rv-preguntas)[id]{scroll-margin-top:calc(2.5rem - var(--sec))}
@media (min-width:901px){
.rv-lista-pasos .rv-cuadro{max-height:42svh}
.rv-linea .rv-apaisada{max-height:52svh}
.rv-nosotros .rv-retrato{max-height:50svh}
.rv-nosotros .rv-retrato img{object-position:50% 25%}
}

/* Ajuste de escala (Claude, 14-oct-2026) · Marcos: «los textos de debajo del 01, 02, 03 no se ven porque las letras o
   las imágenes son demasiado grandes». Regla: al llegar a una sección se ve su idea entera (título, imagen y texto).
   1) Títulos de sección más contenidos: tope 3,5rem (56 px a 1.440, unos 63 px a 1.920) en vez de 4,375rem; la frase
      de cierre (.rv-h2-grande), la portada y la banda granate no cambian.
   2) La cita de «Quién hay detrás», en proporción (tope 3rem).
   3) Menos hueco entre la cabecera de la sección y su contenido.
   4) Pasos en escritorio: imagen apaisada 3:2 en lugar de cuadrada, para que número, título y texto quepan con ella. */
.rv-h2:not(.rv-h2-grande){font-size:clamp(2.1rem,1.5rem + 2.2vw,3.5rem)}
.rv-cita p{font-size:clamp(1.8rem,1.35rem + 1.7vw,3rem)}
.rv-pasos .wrap,.rv-lineas .wrap,.rv-nosotros .wrap,.rv-clientes .wrap{gap:clamp(2rem,1rem + 2vw,3rem)}
@media (min-width:901px){
.rv-lista-pasos .rv-cuadro{aspect-ratio:3/2}
/* encuadre de cada paso en 3:2, comprobado sobre el original: la libreta (1), el plano entero (2), flexo y portátil (3) */
.rv-lista-pasos li:nth-child(1) .rv-cuadro img{object-position:50% 72%}
.rv-lista-pasos li:nth-child(3) .rv-cuadro img{object-position:50% 60%}
}

/* Ajuste 4 (Claude, 14-oct-2026) · Marcos, con captura a 1.873×926: «sigue sin verse las letras de 01, 02, 03; además
   Conversación gratuita tapa el texto; y ese botón queda muy alargado y mal».
   1) Las secciones a las que lleva el menú (pasos, servicios, equipo) empiezan con menos relleno (unos 70 px en vez de
      116): era la franja vacía de arriba. Al llegar desde el menú, el título sigue a 2,5rem de la cabecera.
   2) Pasos: el número va en la misma línea que el título («01  Hablamos de tu negocio») e imagen 16:10, la misma forma
      que la de los servicios; así título y texto caben con la imagen al llegar.
   3) Una sola llamada fija por pantalla: en escritorio la da la cabecera («Contacto», siempre visible) y el botón
      flotante desaparece porque tapaba texto; en tableta el botón vuelve a la cabecera; en el móvil queda la barra de
      abajo, que no tapa nada porque el cuerpo le reserva su sitio. */
.rv-pasos,.rv-lineas,.rv-nosotros{--sec-arriba:clamp(3rem,2rem + 2vw,4rem);padding-top:var(--sec-arriba)}
:is(.rv-pasos,.rv-lineas,.rv-nosotros)[id]{scroll-margin-top:calc(2.5rem - var(--sec-arriba))}
.rv-lista-pasos li{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:.75rem;row-gap:var(--e4);align-items:baseline}
.rv-lista-pasos li>:not(.rv-num):not(.rv-h3){grid-column:1/-1}
@media (min-width:901px){
.rv-lista-pasos .rv-cuadro{aspect-ratio:16/10}
}
@media (min-width:701px){
.rv-cta-fija{display:none}
}
@media (min-width:701px) and (max-width:1060px){
.rv-cabecera .nav>.btn{display:inline-flex}
}

/* Contenido 5 (Claude, 14-oct-2026) · «Para quién»: cuatro negocios, cada uno con un ejemplo ilustrativo del día a día.
   Sin imágenes a propósito: la hora del ejemplo, en cursiva granate, hace de imagen y rompe la serie de escenas. */
.rv-sectores{border-top:1px solid var(--filete)}
.rv-sectores .wrap{display:flex;flex-direction:column;gap:clamp(2rem,1rem + 2vw,3rem)}
.rv-sectores-rej{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr));gap:var(--e5)}
.rv-sector{display:flex;flex-direction:column;gap:var(--e3);padding:clamp(1.25rem,1rem + 1vw,1.75rem);background:var(--superficie);border-top:2px solid var(--acento);min-width:0}
.rv-sector .rv-ey{font-size:.75rem;letter-spacing:.2em}
.rv-sector-cuando{font:italic 400 clamp(1.375rem,1.2rem + .6vw,1.75rem)/1.15 var(--ft);color:var(--acento);font-variant-numeric:tabular-nums}
.rv-sector-ejemplo{font:400 1rem/1.65 var(--fc);color:var(--suave)}
.rv-sector .rv-enl{margin-top:auto;align-self:flex-start}

/* Ajuste 6 (Claude, 14-oct-2026) · Cruce real de Codex (bus 1172): a 1.873×926, entrando con la rueda, el párrafo del paso
   03 rebasaba 8 px la pantalla (título en dos líneas). Además del título más corto (p6_textos.json), menos aire dentro de
   cada paso en escritorio: 16 px en vez de 24 entre imagen, título y texto. No depende del margen negativo del ancla. */
@media (min-width:901px){
.rv-lista-pasos li{row-gap:var(--e3)}
}

/* Ajuste 8 (Claude, 14-oct-2026) · Marcos, con captura de «Clientes» a 1.882×950: «nuevamente se mete el cuestionario
   de preguntas y queda fatal» y «eso de "Solo nombramos…" no debe estar».
   1) Clientes empieza con el mismo relleno corto que las demás secciones del menú y aterriza en su título.
   2) Sin nota en la cabecera (el texto se retira en p8_clientes_orden.json; si queda vacío, no se pinta).
   3) Las tarjetas de clientes alinean etiqueta, nombre y texto por filas aunque una etiqueta ocupe dos líneas. */
.rv-clientes{--sec-arriba:clamp(3rem,2rem + 2vw,4rem);padding-top:var(--sec-arriba)}
.rv-clientes[id]{scroll-margin-top:calc(2.5rem - var(--sec-arriba))}
.rv-clientes .rv-nota:empty{display:none}
@supports (grid-template-rows:subgrid){
.rv-casos .rv-caso{display:grid;grid-row:span 3;grid-template-rows:subgrid;row-gap:var(--e3);align-content:start}
}

/* Ajuste 9 (Claude, 14-oct-2026) · Marcos: al llegar a «Clientes» sigue asomando la sección siguiente (ahora la
   calculadora); «quedaba más elegante con el ribete en granate como antes pero sin verse la calculadora».
   El autodiagnóstico (granate) vuelve justo debajo de Clientes, y en escritorio Clientes ocupa la pantalla menos una franja
   final de 3,5rem: al llegar se ve abajo solo el granate (el relleno del autodiagnóstico), nunca su contenido. */
@media (min-width:901px){
.rv-clientes{min-height:calc(100svh - 85px - 3.5rem)}
}

/* Ajuste 10 (Claude, 14-oct-2026) · Marcos, con captura de «Quiénes somos» a 1.860×942: «no se lee qué hay debajo de
   nuestros nombres y la gente debería tener claro quiénes somos». Al llegar, nombre y cargo tienen que verse enteros.
   La cita baja a dos líneas (tope 2,5rem), menos hueco entre la cita y las fotos y, en escritorio, retratos hasta el 46 %
   del alto de la pantalla (antes el 50 %), con las caras hacia arriba como ya estaba. */
.rv-cita p{font-size:clamp(1.6rem,1.2rem + 1.4vw,2.5rem)}
.rv-nosotros .wrap{gap:clamp(1.5rem,1rem + 1.5vw,2.5rem)}
@media (min-width:901px){
.rv-nosotros .rv-retrato{max-height:46svh}
}

/* Ajuste 11 (Claude, 14-oct-2026) · Marcos, con captura de «Qué hacemos» a 1.885×938: «se sigue metiendo esa foto» (asoma
   arriba la imagen del segundo servicio). Criterio de Marcos: al llegar a una sección no se ve contenido cortado de lo
   siguiente. Cada servicio se separa del anterior con un filete y más aire: al llegar solo asoma la línea, y la imagen
   siguiente empieza ya fuera de la pantalla (hacia 985 px a 1.885×938 y 926 px a 1.440×900, según el cálculo). */
.rv-linea+.rv-linea{padding-top:clamp(3rem,1rem + 4.5vw,5rem);border-top:1px solid var(--filete)}

/* Bloque 13 (Claude, 14-oct-2026) · Franja de logos de clientes bajo la portada (idea revisada en Autentic AI, con
   nuestro estilo): logos en una tinta, misma altura óptica (alto y ancho máximos), papel claro y un filete. */
.rv-logos{background:var(--papel);border-bottom:1px solid var(--filete)}
.rv-logos .wrap{display:flex;flex-wrap:wrap;align-items:center;gap:var(--e4) var(--e7);padding-top:var(--e5);padding-bottom:var(--e5)}
.rv-logos .rv-ey{font-size:.75rem;letter-spacing:.2em;color:var(--suave)}
.rv-logos ul{list-style:none;display:flex;flex-wrap:wrap;align-items:center;gap:var(--e5) var(--e7);margin:0;padding:0}
.rv-logo .fig{margin:0;background:none}
.rv-logo img{display:block;width:auto;height:auto;max-height:2.25rem;max-width:8.5rem;opacity:.85}
.rv-logo-texto{font:400 1.75rem/1 var(--ft);color:var(--tinta);opacity:.85}
@media (max-width:700px){.rv-logos ul{gap:var(--e4) var(--e6)}.rv-logo img{max-height:1.75rem;max-width:7rem}.rv-logo-texto{font-size:1.4rem}}

/* Bloque 14 v2 (Claude, 14-oct-2026; cruce 1210 de Codex) · «Así trabajaría REVIRAI en tu negocio»: recorrido de un
   ejemplo inventado y muestra del informe de diagnóstico como una hoja de papel (superficie clara, filete granate
   arriba). La revisión es una simulación local: botones de 44 px como mínimo, motivos en una lista de opciones, el
   aviso de falta de motivo en granate dentro del grupo y la fila corregida marcada con su versión.
   La cabecera de la hoja es un <div> estático: nunca hereda la cabecera fija del sitio. */
.rv-ejemplo{border-top:1px solid var(--filete)}
.rv-ejemplo .wrap{display:flex;flex-direction:column;gap:clamp(2rem,1rem + 2vw,3rem)}
.rv-ejemplo-intro{display:flex;flex-direction:column;gap:var(--e3);max-width:26rem}
.rv-aviso-ficticio{align-self:flex-start;padding:.3rem .6rem;border:1px solid currentColor;font:500 .75rem/1.4 var(--fc);letter-spacing:.14em;text-transform:uppercase;color:var(--acento)}
.rv-ejemplo-rej{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:var(--e6) clamp(2rem,1rem + 3vw,4.5rem);align-items:start}
.rv-ejemplo-pasos{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--e4)}
.rv-ejemplo-pasos li{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:.75rem;align-items:baseline;padding-top:var(--e4);border-top:1px solid var(--filete)}
.rv-ejemplo-pasos p{margin-top:var(--e2);font:400 1rem/1.6 var(--fc);color:var(--suave)}
.rv-ejemplo-pasos .rv-enl{display:inline-block;margin-top:var(--e2)}
.rv-doc{position:relative;display:flex;flex-direction:column;gap:var(--e4);min-width:0;padding:clamp(1.5rem,1rem + 2vw,2.75rem);background:var(--superficie);border-top:3px solid var(--acento);box-shadow:var(--sombra-2)}
.rv-doc-cab{position:static;z-index:auto;background:none;border:0}
.rv-doc-titulo{font:400 clamp(1.6rem,1.3rem + 1vw,2.125rem)/1.1 var(--ft);color:var(--tinta)}
.rv-doc-sub{font:400 .875rem/1.5 var(--fc);color:var(--suave)}
.rv-doc-filas{display:flex;flex-direction:column;margin:0;border-top:1px solid var(--filete)}
.rv-doc-fila{display:grid;grid-template-columns:minmax(0,11rem) minmax(0,1fr);gap:var(--e2) var(--e5);padding:var(--e3) 0;border-bottom:1px solid var(--filete)}
.rv-doc-fila dt{font:500 .8125rem/1.5 var(--fc);letter-spacing:.04em;color:var(--tinta)}
.rv-doc-fila dd{margin:0;font:400 .9375rem/1.6 var(--fc);color:var(--suave)}
.rv-doc-fila[data-cambiada]{border-left:3px solid var(--acento);padding-left:var(--e3)}
.rv-doc-fila[data-cambiada] dd{color:var(--tinta)}
.rv-doc-cambio{display:block;margin-top:var(--e1);font:500 .75rem/1.4 var(--fc);letter-spacing:.08em;text-transform:uppercase;color:var(--acento)}
.rv-doc-cambio[hidden]{display:none}
.rv-marca{font:500 .8125rem/1 var(--fc);color:var(--acento);text-decoration:none;font-variant-numeric:tabular-nums}
.rv-doc-leyenda,.rv-doc-nota{font:400 .8125rem/1.6 var(--fc);color:var(--suave)}
.rv-revision{display:flex;flex-direction:column;gap:var(--e3);padding-top:var(--e4);border-top:1px solid var(--filete)}
.rv-revision-aviso{padding-left:.75rem;border-left:2px solid var(--acento);font:500 .875rem/1.5 var(--fc);color:var(--tinta)}
.rv-revision-estado{font:500 .9375rem/1.5 var(--fc);color:var(--tinta)}
.rv-revision-acciones{display:flex;flex-wrap:wrap;align-items:center;gap:var(--e3) var(--e5)}
.rv-revision-acciones[hidden],.rv-motivos[hidden],.rv-revision [hidden]{display:none}
.rv-motivos{display:flex;flex-direction:column;gap:var(--e1);margin:0;padding:0;border:0}
.rv-motivos legend{margin-bottom:var(--e2);font:500 .8125rem/1.5 var(--fc);color:var(--suave)}
.rv-motivo{display:flex;align-items:center;gap:.6rem;min-height:44px;font:400 .9375rem/1.4 var(--fc);color:var(--tinta);cursor:pointer}
.rv-motivo input{width:20px;height:20px;margin:0;accent-color:var(--acento)}
.rv-motivos-error{margin:0;font:500 .9375rem/1.5 var(--fc);color:var(--acento)}
.rv-motivos .rv-btn{align-self:flex-start;margin-top:var(--e2)}
.rv-revision button:disabled{opacity:.45;cursor:default}
.rv-revision-historial{margin:0;padding-left:1.1rem;font:400 .875rem/1.6 var(--fc);color:var(--suave)}
.rv-revision-historial:empty{display:none}
@media (max-width:900px){.rv-ejemplo-rej{grid-template-columns:minmax(0,1fr)}.rv-doc-fila{grid-template-columns:minmax(0,1fr)}}
/* v3 (cruce 1224): «Ver la corrección» lleva a la fila cambiada. La fila deja aire bajo la cabecera fija (además del
   scroll-padding de html) y muestra el foco; el enlace mide 44 px de alto, como el resto de controles. */
.rv-doc-fila{scroll-margin-top:var(--e4)}
.rv-doc-fila:focus{outline:2px solid var(--foco);outline-offset:4px}
.rv-ver-cambio{align-self:flex-start;display:inline-flex;align-items:center;min-height:44px}

/* Bloque 15 (Claude, 14-oct-2026) · La franja de clientes en la primera pantalla. Marcos: «que los logos de los clientes
   apareciesen así, centrados en esa línea blanca, pero sin tener que hacer scroll».
   Antes: la portada medía su contenido (≈ 677 px a 1885 de ancho) más 96 px arriba y abajo, así que ella sola ya pasaba
   del borde inferior y la franja quedaba debajo. Ahora, en escritorio:
   - la franja tiene un alto fijo (--rv-franja = 5rem, más su filete) y reparte los logos a lo ancho;
   - la portada ocupa lo que queda de pantalla bajo la cabecera (85 px) y la franja, con márgenes que dependen del alto de
     la pantalla en vez de 96 px fijos. Si el contenido no cabe (portátiles bajos), la portada crece como siempre y la
     franja queda debajo: nunca se corta el texto;
   - el vídeo se encuadra al 65 % en vertical (antes, al centro): con la portada más baja así siguen a la vista la libreta,
     los papeles y el teclado de las tres escenas;
   - el tope del texto frente al portátil (bloque 1) se calcula con la altura nueva de la portada.
   Solo por encima de 900 px: debajo, la imagen va arriba y el texto debajo, y la franja sigue donde estaba. */
@media (min-width:901px){
:root{--rv-franja:5rem;--rv-portada:clamp(30rem,calc(100svh - 85px - var(--rv-franja) - 1px),56rem)}
.rv-eras{min-height:var(--rv-portada);padding-block:clamp(1.5rem,4svh,3.5rem)}
.rv-eras .rv-rotulo{margin-bottom:clamp(1.5rem,3.5svh,3rem)}
.rv-eras .rv-propuesta{gap:clamp(1.25rem,3svh,2rem);--rv-hasta:calc(30vw + 252*max(100vw/1920,var(--rv-portada)/1032) - max(0px,(100vw - var(--ancho))/2) - var(--gutter) - 4rem)}
.rv-eras .rv-lienzo img,.rv-eras .rv-lienzo video{object-position:30% 65%}
.rv-logos .wrap{min-height:var(--rv-franja);padding-block:var(--e2)}
.rv-logos ul{flex:1;justify-content:space-between;gap:var(--e4) clamp(var(--e5),3vw,var(--e7))}
}

/* Bloque 17 (Claude, 14-oct-2026) · Pie ordenado. Marcos: «demasiado desorden». Una rejilla de cuatro columnas con
   título (marca y contacto · Soluciones · Empresa · Legal), un filete y una base de dos renglones alineada a la
   izquierda. Mismos colores sobre fondo oscuro; los enlaces conservan sus 44 px de alto. En tableta, dos columnas con la
   marca arriba; en móvil muy estrecho, una. */
.rv-pie{padding:var(--e8) 0 var(--e6)}
.rv-pie-rej{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,1fr));gap:var(--e6) var(--e5)}
.rv-pie-marca{display:flex;flex-direction:column;align-items:flex-start;gap:var(--e3)}
.rv-pie-lema{font:300 1.375rem/1.25 var(--ft);color:var(--papel)}
.rv-pie-tit{margin-bottom:var(--e1);font:500 .75rem/1.5 var(--fc);letter-spacing:.2em;text-transform:uppercase;color:#f4efe9}
.rv-pie ul{list-style:none;margin:0;padding:0}
.rv-pie-col a,.rv-pie-contacto a{display:inline-flex;align-items:center;min-height:44px;font:400 .9375rem/1.3 var(--fc);text-decoration:none;color:#f4efe9}
.rv-pie-base{display:flex;flex-direction:column;gap:var(--e1);padding-top:var(--e5);border-top:1px solid #000000;font:400 .8125rem/1.6 var(--fc);color:#f4efe9}
@media (max-width:900px){.rv-pie-rej{grid-template-columns:repeat(2,minmax(0,1fr))}.rv-pie-marca{grid-column:1/-1}}
@media (max-width:360px){.rv-pie-rej{grid-template-columns:minmax(0,1fr)}}

/* Bloque 18 (Claude, 14-oct-2026; cruce 1245 de Codex) · En móvil, el enlace que recibe el foco con Tab no puede quedar
   detrás de la barra fija «Conversación gratuita» (56 px más la zona segura). Codex lo reprodujo en el pie: Privacidad a
   390×844 y Qué hacemos, Cookies y Accesibilidad a 320×800. Al enfocar, el navegador desplaza lo justo hasta el borde
   inferior; scroll-padding-bottom le dice que ese borde está ocupado (técnica C43 del W3C), igual que scroll-padding-top
   ya lo hace con la cabecera. No cambia la barra, ni los textos, ni el diseño, ni el desplazamiento con la rueda.
   En Contacto la barra no se muestra (body:has(#consulta)), así que allí no se reserva nada. */
@media (max-width:700px){
html{scroll-padding-bottom:calc(56px + env(safe-area-inset-bottom) + var(--e2))}
html:has(#consulta){scroll-padding-bottom:0}
}

/* Bloque 20 (Claude, 14-oct-2026; cruce 1251 de Codex) · La portada no salta al arrancar las escenas.
   Codex midió CLS 0,129 a 768 px y 0,106 a 1280 px (máximo 0,1): el HTML inicial pinta «Ahora» (rótulo, titular,
   explicación y botón) sin controles; al arrancar, el JavaScript quitaba titular y botón (hidden), ponía los controles y
   cambiaba la frase, y el bloque cambiaba de alto. Ahora el bloque mide SIEMPRE lo de «Ahora»: lo que se apaga usa
   rv-reservado (invisible, fuera del foco y del lector de pantalla, pero con su hueco) y las frases de Ayer y Después se
   superponen en el «escenario» (rótulo + propuesta), apoyadas abajo, justo encima de los controles. El misterio se
   conserva (titular y botón no se ven hasta «Ahora») y los textos no cambian. Sin JavaScript se ve «Ahora», como antes. */
.rv-reservado{visibility:hidden}
.rv-eras .rv-escenario{position:relative}
.rv-eras .rv-rotulo{position:static}
.rv-eras .rv-frase[data-frase-era="0"],.rv-eras .rv-frase[data-frase-era="1"]{position:absolute;left:0;right:0;bottom:0}

/* Bloque 21 (Claude, 14-oct-2026; cruce 1256 de Codex) · En móvil, las frases de Ayer y Después arriba del escenario.
   Hasta 700 px la imagen va arriba y el texto debajo; con las frases apoyadas abajo (bloque 20), Ayer y Después caían por
   debajo de la primera pantalla (946–1067 px a 390×844, con la zona visible acabando en 788) y se veía un bloque vacío.
   Arriba quedan donde aparece «Se lo pides. Y se hace.» en Ahora. Siguen superpuestas: el escenario mide lo mismo y no hay
   saltos. En tableta y escritorio no cambia nada (frases abajo, junto a los controles). */
@media (max-width:700px){
.rv-eras .rv-frase[data-frase-era="0"],.rv-eras .rv-frase[data-frase-era="1"]{top:0;bottom:auto}
}

/* Bloque 22 (Claude, 14-oct-2026; valoración comercial de Codex y Claude, GO de Marcos «dale y vemos como queda»).
   - Portada (escritorio): la explicación nueva, más concreta, ocupa un renglón más; se recoge el aire vertical (margen,
     espacio bajo el rótulo y entre titular, explicación y botón) para que la franja de logos siga en la primera pantalla.
   - Portada (móvil): imagen más baja y menos espacio antes del mensaje, para que se vea antes qué hacemos.
   - Toda la página: menos aire entre secciones (de 4–6,5rem a 3,5–5rem), sin tocar el tamaño de la letra. */
@media (min-width:901px){
.rv-eras{padding-block:clamp(1.25rem,3svh,3rem)}
.rv-eras .rv-rotulo{margin-bottom:clamp(1.25rem,2.5svh,2.5rem)}
.rv-eras .rv-propuesta{gap:clamp(1rem,2.2svh,1.75rem)}
}
@media (max-width:700px){
.rv-eras .rv-eras-fondo{height:clamp(12rem,32vh,18rem)}
.rv-eras .rv-eras-texto{padding-top:var(--e5)}
}
:root{--sec:clamp(3.5rem,2rem + 3vw,5rem)}

/* Bloque 23 (Claude, 14-oct-2026) · «Qué hacemos» en tarjetas. Marcos, sobre P22: «prácticamente ni lo he notado».
   Las cuatro líneas eran filas alternas con imagen grande (≈ 2.400 px en escritorio); ahora son cuatro tarjetas en una
   fila (dos en tableta): imagen apaisada arriba, etiqueta, título, texto y acciones abajo, con el mismo estilo que las
   tarjetas de «Para quién» (superficie clara y filete granate). Mismos textos e imágenes. En móvil no cambia (ya iban
   una debajo de otra). Así, al bajar de la portada, lo primero que se ve es qué hacemos. */
@media (min-width:701px){
.rv-lineas{--rv-col:2}
.rv-lineas .wrap{display:grid;grid-template-columns:repeat(var(--rv-col),minmax(0,1fr));gap:var(--e5)}
.rv-lineas .rv-cab{grid-column:1/-1}
.rv-linea,.rv-linea.rv-alt{display:flex;flex-direction:column;gap:0;min-width:0;background:var(--superficie);border-top:2px solid var(--acento)}
.rv-linea+.rv-linea{padding-top:0;border-top:2px solid var(--acento)}
.rv-linea .rv-apaisada,.rv-linea.rv-alt .rv-apaisada{order:0;width:100%;aspect-ratio:16/10;max-height:none}
.rv-linea-texto{flex:1;gap:var(--e3);padding:clamp(1.25rem,1rem + 1vw,1.75rem)}
.rv-linea .rv-h3g{font-size:clamp(1.375rem,1.1rem + .7vw,1.75rem);line-height:1.15}
.rv-linea-texto>p:not(.rv-ey){font-size:1rem;line-height:1.6}
.rv-linea .rv-acciones{margin-top:auto;gap:var(--e2) var(--e4)}
.rv-linea .rv-btn{min-height:44px;padding:.6rem 1rem;font-size:.6875rem;letter-spacing:.2em}
}
@media (min-width:1200px){.rv-lineas{--rv-col:4}}

/* Bloque 24 (Claude, 14-oct-2026) · Ajustes tras las capturas de Marcos sobre P23 (vista privada v25).
   - Franja de logos sin la palabra «Clientes» (parche): los cinco se reparten a lo ancho con huecos iguales entre ellos,
     alineados con el logo de REVIRAI y el botón Contacto.
   - «Qué hacemos» no cabía al llegar desde el menú (los botones quedaban cortados abajo): título en una línea e imágenes
     2:1 en las tarjetas.
   - «Cómo trabajamos»: imágenes 2:1 para que la sección quepa en la pantalla.
   - Clientes: logo de cada cliente sobre su caso y cierre con invitación y botón (bloque p24_clientes).
   - Preguntas frecuentes con fondo granate (los mismos colores que el autodiagnóstico): ahora se distingue de la
     calculadora, que va justo antes con el mismo fondo claro. */
.rv-logos ul{justify-content:space-between}
@media (min-width:701px){
.rv-lineas .rv-h2{max-width:none}
.rv-linea .rv-apaisada,.rv-linea.rv-alt .rv-apaisada{aspect-ratio:2/1}
}
@media (min-width:901px){.rv-lista-pasos .rv-cuadro{aspect-ratio:2/1}}
.rv-caso-logo{display:flex;align-items:center;min-height:3rem}
.rv-caso-logo .fig{margin:0;background:none}
.rv-caso-logo img{display:block;width:auto;height:auto;max-height:2.75rem;max-width:9rem;opacity:.85}
.rv-clientes-cierre{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--e4) var(--e6);padding-top:var(--e5);border-top:1px solid var(--filete)}
.rv-clientes-cierre p{font:400 clamp(1.5rem,1.2rem + 1vw,2rem)/1.2 var(--ft);color:var(--tinta)}
.rv-preguntas.rv-osc{--fondo:#740f25;--superficie:#740f25;--tinta:#f4efe9;--suave:#f4efe9;--filete:rgba(244,239,233,.3);--acento:#e7ddd0;--sobre-acento:#740f25;--boton:#f4efe9;--sobre-boton:#740f25;--foco:#f4efe9;background:var(--fondo);color:var(--tinta)}

/* Bloque 25 (Claude, 14-oct-2026) · Prototipo de la nueva oferta (recomendación común Claude–Codex, OFE-001):
   «Tu socio en inteligencia artificial», el ecosistema inmobiliario en cinco tarjetas y el método en cuatro pasos.
   Desde 1200 px, las cinco actividades en una fila y los cuatro pasos en otra; entre 701 y 1199 px, pasos de dos en dos.
   «Para quién» llega desde el menú como las demás secciones (margen superior propio). */
.rv-sectores{--sec-arriba:clamp(3rem,2rem + 2vw,4rem);padding-top:var(--sec-arriba)}
.rv-sectores[id]{scroll-margin-top:calc(2.5rem - var(--sec-arriba))}
@media (min-width:1200px){
.rv-sectores-rej{grid-template-columns:repeat(5,minmax(0,1fr))}
.rv-lista-pasos{grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--e5)}
}
@media (min-width:701px) and (max-width:1199px){.rv-lista-pasos{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Bloque 26 (Claude, 14-oct-2026; cruce 1305 de Codex) · Las cinco actividades del ecosistema con más aire: dos por fila
   en tableta, tres y dos (centradas) en portátil y las cinco en una fila solo desde 1600 px. Una columna en móvil. */
.rv-sectores-rej{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--e5)}
.rv-sector{flex:1 1 100%;max-width:100%}
@media (min-width:701px){.rv-sector{flex:0 1 calc((100% - var(--e5))/2)}}
@media (min-width:1100px){.rv-sector{flex-basis:calc((100% - 3 * var(--e5))/4)}}
/* 28-oct-2026 (propuesta de valor): siete negocios del ecosistema; desde 1100 px, cuatro por fila (4 + 3 centradas). */

/* Bloque 27 (Claude, 14-oct-2026) · Clientes en tarjetas, con el mismo lenguaje que «Para quién»: superficie clara,
   filete granate arriba y aire; logo a la misma altura óptica en las tres; etiqueta y texto alineados. */
.rv-clientes-rej{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr));gap:var(--e5)}
.rv-cliente{display:flex;flex-direction:column;gap:var(--e3);min-width:0;padding:clamp(1.5rem,1rem + 1.5vw,2.25rem);background:var(--superficie);border-top:2px solid var(--acento)}
.rv-cliente-logo{display:flex;align-items:center;min-height:3.5rem;margin-bottom:var(--e1)}
.rv-cliente-logo .fig{margin:0;background:none}
.rv-cliente-logo img{display:block;width:auto;height:auto;max-height:3rem;max-width:10rem;opacity:.9}
.rv-cliente-nombre{font-size:1.75rem}
.rv-cliente .rv-ey{font-size:.75rem;letter-spacing:.2em}
.rv-cliente p:last-child{font:400 1rem/1.7 var(--fc);color:var(--suave)}

/* Bloque 28 (Claude, 14-oct-2026; cruce de Codex de las 20:38) · Ficha de «El Termómetro» dentro de «Cómo trabajamos»:
   qué recibes, qué necesitamos de ti y cómo se acuerda el precio, en tres columnas (una en móvil), con el lenguaje de las
   tarjetas (superficie clara y filete granate). */
.rv-termometro{display:flex;flex-direction:column;gap:var(--e4);padding:clamp(1.5rem,1rem + 1.5vw,2.25rem);background:var(--superficie);border-top:2px solid var(--acento)}
.rv-termometro-rej{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr));gap:var(--e4) var(--e6)}
.rv-termometro .rv-ey{margin-bottom:var(--e1);font-size:.75rem;letter-spacing:.2em}
.rv-termometro p:not(.rv-ey){font:400 1rem/1.65 var(--fc);color:var(--suave)}

/* Bloque 29 (Claude, 14-oct-2026) · Tres capturas de Marcos: «Para quién» «se ve muy mal abajo»; «Cómo trabajamos» y
   «Así trabajaría REVIRAI» quedan desajustados.
   1) Cómo trabajamos: título y texto de los cuatro pasos a la misma altura (antes, los pasos con menos texto repartían el
      alto sobrante entre sus filas y bajaban). La ficha de El Termómetro usa las columnas de los pasos, sin caja: nombre y
      compromiso en la primera, qué recibes, qué necesitamos y el precio en las otras tres. En escritorio, fotos más bajas
      (según el alto de la pantalla), título en dos líneas y menos hueco, para que quepa entera al llegar desde el menú.
   2) Así trabajaría REVIRAI: la entrada de la derecha empieza a la altura del título y en la columna del informe; los
      cuatro pasos se reparten a lo alto del informe, y las dos columnas acaban a la vez.
   3) Para quién: sin nota suelta debajo; desde 1100 px, al llegar desde el menú la sección ocupa justo la pantalla, con el
      contenido centrado, y no asoma la foto oscura de la sección siguiente. */
.rv-lista-pasos li{align-content:start}
.rv-termometro{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--e5);padding:var(--e4) 0 0;background:none;border-top:2px solid var(--acento)}
.rv-termometro-rej{display:contents}
.rv-termometro-cab{display:flex;flex-direction:column;gap:var(--e2)}
.rv-termometro-cab .rv-ey{margin-bottom:0}
.rv-termometro p.rv-compromiso{padding-top:var(--e1);border-top:0;font:italic 400 clamp(1.125rem,1rem + .3vw,1.25rem)/1.35 var(--ft);color:var(--acento)}
@media (min-width:701px) and (max-width:1199px){.rv-termometro{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--e7)}}
@media (min-width:1200px){
.rv-termometro{grid-template-columns:repeat(4,minmax(0,1fr))}
.rv-pasos .wrap{gap:var(--e5)}
.rv-pasos .rv-h2{max-width:30ch}
.rv-pasos .rv-cab-doble>.rv-intro{flex:1 1 18rem}
.rv-lista-pasos .rv-cuadro{aspect-ratio:auto;height:clamp(6.5rem,13svh,9rem)}
}
@media (min-width:901px){
.rv-ejemplo .rv-cab-doble{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);column-gap:clamp(2rem,1rem + 3vw,4.5rem);align-items:start}
.rv-ejemplo-intro{padding-top:calc(.8125rem * 1.5 + var(--e4))}
.rv-ejemplo-rej{align-items:stretch}
.rv-ejemplo-pasos{justify-content:space-between}
}
@media (min-width:1100px){
.rv-sectores{display:flex;flex-direction:column;justify-content:center;min-height:calc(100svh - 85px + var(--sec-arriba) - 2.5rem)}
.rv-sectores>.wrap{width:100%}
}

/* MED-001 (Claude, 15-oct-2026) · Banner de cookies sutil. Marcos, con captura de casinogranmadrid.com: «lo hacen de
   forma sutil». Sustituye a m3_banner.css. Una franja pegada al borde inferior, de lado a lado (sin tarjeta flotante):
   texto pequeño a la izquierda, alineado con los márgenes de la página, y los dos botones a la derecha, bajos (40 px; el
   mínimo accesible es 24). En móvil, el texto encima y los dos botones en una fila, a medias (44 px, para el dedo).
   «Rechazar» y «Aceptar» siguen idénticos en forma, tamaño y color: la ley pide que rechazar sea tan fácil y visible
   como aceptar. Fija abajo: no mueve la página. */
.cookie{left:0;right:0;bottom:0;max-width:none;margin:0;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:var(--e2) var(--e6);padding:var(--e3) max(var(--gutter),env(safe-area-inset-right)) max(var(--e3),env(safe-area-inset-bottom)) max(var(--gutter),env(safe-area-inset-left));background:var(--superficie);border:0;border-top:1px solid var(--filete);border-radius:0;box-shadow:var(--sombra-1)}
.cookie p{max-width:68rem;font:400 .8125rem/1.55 var(--fc);color:var(--suave)}
.cookie .ckbtns{flex-wrap:nowrap;gap:var(--e2)}
.cookie .btn{min-height:40px;padding:0 var(--e4);font-size:.875rem}
@media (max-width:700px){
.cookie{grid-template-columns:minmax(0,1fr)}
.cookie .btn{flex:1 1 0;justify-content:center;min-height:44px}
}

/* MED-001 · MOB-001 (Claude, 15-oct-2026) · Aviso de cookies en móvil. Codex, en la web publicada: a 360 px «Aceptar»
   sobresalía 24 px del ancho útil (los tres botones no podían encogerse por debajo de su contenido). Va en una rejilla de
   tres columnas que sí pueden encogerse (propuesta de Codex), con letra y relleno algo menores; por debajo de 360 px,
   «Configurar» ocupa su propia fila y Rechazar y Aceptar quedan a medias, iguales entre sí. Los botones siguen con 44 px de
   alto. «Configurar» es un enlace con aspecto de botón: sin el subrayado que el chasis pone a los enlaces del aviso. */
.cookie .btn{text-decoration:none}
@media (max-width:700px){
.cookie .ckbtns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--e2)}
.cookie .btn{box-sizing:border-box;min-width:0;width:100%;min-height:44px;padding-inline:var(--e1);font-size:.8125rem;justify-content:center;text-align:center}
}
@media (max-width:359px){
.cookie .ckbtns{grid-template-columns:repeat(2,minmax(0,1fr))}
.cookie .ckbtns .btn.o{grid-column:1/-1}
}

/* MOB-001 (Claude, 15-oct-2026) · Móvil, sobre las medidas de Codex en la web publicada (360, 390 y 430 px). Solo
   ≤700 px: el escritorio no cambia.
   1) Logos: tres arriba y dos centrados debajo (antes, space-between mandaba los dos de abajo a las esquinas). Cada marca a
      una altura que iguala su peso óptico (superficie parecida, unos 1.800 px²): Gfima y Akris, casi cuadrados, más altos;
      Planform y Sol, alargados, más bajos. Los logos aprobados no se tocan.
   2) Portada: foto algo más baja y menos aire alrededor del texto, para que el botón principal suba; «Saltar introducción»
      pasa arriba a la derecha del texto y los controles (Ayer, Después, Ahora y pausa) caben en una línea, sin una fila
      reservada vacía al acabar. La barra fija de «Conversación gratuita» se oculta mientras el botón principal está a la
      vista (mob1_barra.js), así nunca lo tapa.
   3) Cómo trabajamos: fotos de los pasos apaisadas (16:9) en vez de cuadradas; la sección se acorta bastante. */
@media (max-width:700px){
.rv-logos ul{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));justify-items:center;align-items:center;gap:var(--e5) var(--e3);width:100%}
.rv-logos li{grid-column:span 2}
.rv-logos li:nth-child(4):nth-last-child(2){grid-column:2/4}
.rv-logos li:nth-child(5):last-child{grid-column:4/6}
.rv-logo img{max-height:none;max-width:100%;width:auto}
.rv-logo img[alt="Gfima"]{height:2.05rem}
.rv-logo img[alt="Planform"]{height:1.3rem}
.rv-logo img[alt="Akris"]{height:2.2rem}
.rv-logo img[alt^="Sol Properties"]{height:1.4rem}
.rv-logo-texto{font-size:1.5rem}
.rv-eras .rv-eras-fondo{height:clamp(11rem,26vh,16rem)}
.rv-eras .rv-eras-texto{padding-top:var(--e4);padding-bottom:var(--e6)}
.rv-eras .rv-rotulo{margin-bottom:var(--e4)}
.rv-eras-controles{flex-wrap:nowrap;gap:.75rem;margin-top:var(--e4)}
.rv-cta-fija.rv-cta-fija-oculta{transform:translateY(110%);visibility:hidden}
.rv-lista-pasos .rv-cuadro{aspect-ratio:16/9}
}
@media (max-width:700px) and (prefers-reduced-motion:no-preference){
.rv-cta-fija{transition:transform var(--d2) var(--sale),visibility 0s}
.rv-cta-fija.rv-cta-fija-oculta{transition:transform var(--d2) var(--sale),visibility 0s var(--d2)}
}

/* MOB-001 · Ajustes tras el cruce 1452 de Codex (Claude, 15-oct-2026). Va detrás de mob1_movil.css.
   1) «Saltar introducción» pisaba el titular a 320 y 360 px (estaba arriba a la derecha del texto, en el espacio del
      rótulo). Pasa a la foto: esquina inferior derecha, como una etiqueta clara sobre la imagen. Tiene su sitio propio,
      no invade el titular ni añade una fila; el texto y su función no cambian.
   2) A 320 px el botón principal aún no cabía entero (Codex: su borde quedaba unos 27 px bajo la pantalla de 844, una vez
      quitado el aviso de prototipo). Solo ≤360 px: foto algo más baja, titular y entradilla un punto menores y menos
      separación entre titular, entradilla y botones. La medida buena es la de la versión final, sin aviso de prototipo. */
@media (max-width:700px){
}
@media (max-width:360px){
.rv-eras .rv-eras-fondo{height:clamp(10rem,22vh,14rem)}
.rv-eras .rv-propuesta{gap:var(--e4)}
.rv-eras .rv-h1{font-size:2.25rem}
.rv-eras .rv-sub{font-size:.9375rem;line-height:1.5}
}

/* Quiénes somos (Claude, 28-oct-2026): «los dos lados de la mesa». Cada socio a lo ancho, la foto alterna de lado; en móvil, apilado */
/* Fondos por sección (28-oct, Marcos: «una sí y otra no… no está bien cuadrada»): papel y yeso alternos, granate en los momentos clave */
.rv-fondo-papel{--fondo:var(--papel);--superficie:var(--yeso);background:var(--papel)}
.rv-fondo-yeso{--fondo:var(--yeso);--superficie:var(--papel);background:var(--yeso)}
.rv-fondo-granate{--fondo:#740f25;--superficie:#740f25;--tinta:#f4efe9;--suave:#e7ddd0;--filete:rgba(244,239,233,.2);--acento:#e7ddd0;--foco:#f4efe9;background:#740f25 radial-gradient(90% 70% at 0% 100%,#740f25 0%,#740f25 65%);color:var(--tinta)}
.rv-fondo-granate .rv-lista-num p{color:var(--suave);font-weight:400}
.rv-srv-caso.rv-fondo-papel,.rv-srv-caso.rv-fondo-yeso{padding-top:var(--sec)}
.rv-caja-granate .rv-caso-caja{--tinta:#f4efe9;--suave:#e7ddd0;--acento:#e7ddd0;--foco:#f4efe9;background:#740f25 radial-gradient(90% 90% at 100% 0%,#740f25 0%,#740f25 70%);color:var(--tinta)}
/* La cadena del ecosistema (28-oct): cada negocio, lo que recibe y lo que entrega; en móvil, apilado */
.rv-cadena .wrap{display:flex;flex-direction:column;gap:var(--e7)}
.rv-cadena-lista{list-style:none;display:grid;grid-template-columns:minmax(0,1fr);gap:var(--e3)}
.rv-cadena-fila{--tinta:#000000;--acento:#740f25;--filete:rgba(60,60,60,.25);display:flex;flex-direction:column;gap:var(--e4);padding:clamp(1.5rem,1.2rem + 1vw,2.25rem);background:var(--superficie);color:var(--tinta)}
.rv-cadena-nombre{font:400 clamp(1.5rem,1.35rem + .5vw,1.875rem)/1.15 var(--ft);color:var(--tinta);text-decoration:none;align-self:start;min-height:44px}
.rv-cadena-nombre:hover{color:var(--acento);text-decoration:underline;text-underline-offset:.2em}
.rv-cadena-dato{display:flex;flex-direction:column;gap:var(--e1);font:450 1.0625rem/1.6 var(--fc);color:var(--tinta)}
.rv-cadena-dato+.rv-cadena-dato{padding-top:var(--e4);border-top:1px solid var(--filete)}
.rv-cadena-dato .rv-ey{font-size:.75rem}
.rv-cadena-nombre{color:var(--tinta)}
.rv-cadena-cierre{display:flex;align-items:center;padding:clamp(1.5rem,1.2rem + 1vw,2.25rem);background:#740f25 radial-gradient(90% 90% at 100% 0%,#740f25 0%,#740f25 70%)}
.rv-cadena-cierre p{font:italic 400 clamp(1.375rem,1.2rem + .6vw,1.75rem)/1.3 var(--ft);color:#f4efe9}
.rv-relato .wrap{display:flex;flex-direction:column;gap:var(--e7)}
.rv-relato-lista{list-style:none;border-top:1px solid var(--filete)}
/* Relato en granate de la marca (28-oct, Marcos: «ese rosa no tiene nada que ver con REVIRAI»): acento crema, sin rosa */
.rv-relato.rv-osc{--fondo:#740f25;--superficie:#740f25;--tinta:#f4efe9;--suave:#e7ddd0;--filete:rgba(244,239,233,.2);--acento:#e7ddd0;--foco:#f4efe9;background:#740f25 radial-gradient(90% 70% at 100% 0%,#740f25 0%,#740f25 65%)}
.rv-ficha.rv-osc{--acento:#e7ddd0;--foco:#f4efe9}
.rv-relato-cap{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--e3);padding:var(--e6) 0;border-bottom:1px solid var(--filete)}
.rv-relato-izq{display:flex;flex-direction:column;gap:var(--e3)}
.rv-relato-izq .rv-ey{opacity:.8}
.rv-relato-t{font:400 clamp(1.5rem,1.3rem + .8vw,2rem)/1.15 var(--ft);color:var(--tinta);max-width:20ch}
.rv-relato-x{font:400 clamp(1.0625rem,1rem + .2vw,1.1875rem)/1.7 var(--fc);color:var(--suave);max-width:38rem}
.rv-relato-cita{max-width:56rem;padding-left:var(--e5);border-left:2px solid var(--acento)}
.rv-relato-cita p{font-style:italic}
.rv-duo{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--e3);align-self:end}
.rv-duo-fig{margin:0;display:flex;flex-direction:column;gap:var(--e2)}
.rv-duo-fig .rv-retrato{margin:0;max-height:62svh}
.rv-duo-fig .rv-retrato img{object-position:50% 25%}
.rv-duo-fig figcaption{display:flex;flex-direction:column;gap:var(--e0)}
.rv-duo-nombre{font:400 clamp(1.25rem,1.1rem + .5vw,1.625rem)/1.15 var(--ft)}
.rv-duo-fig:nth-child(2){margin-top:var(--e7)}
.rv-mesa-rej.rv-mesa-sinfoto{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,22rem),1fr));gap:0 var(--e7);border-top:0}
.rv-mesa-sinfoto .rv-mesa-persona{display:flex;flex-direction:column;padding:var(--e6) 0;border-top:1px solid var(--filete);border-bottom:0}
.rv-mesa-sinfoto .rv-mesa-txt{align-self:stretch;max-width:none}
.rv-mesa-sinfoto .rv-mesa-txt .rv-nombre{font-size:clamp(2rem,1.6rem + 1.4vw,3rem)}
.rv-mesa .wrap{display:flex;flex-direction:column;gap:var(--e7)}
.rv-mesa-rej{display:flex;flex-direction:column;border-top:1px solid var(--filete)}
.rv-mesa-persona{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--e5);padding:var(--e7) 0;border-bottom:1px solid var(--filete)}
.rv-mesa-persona .rv-retrato{margin:0;max-width:26rem;max-height:70svh}
.rv-mesa-persona .rv-retrato img{object-position:50% 25%}
.rv-mesa-txt{display:flex;flex-direction:column;gap:var(--e4);align-self:center;max-width:38rem}
.rv-mesa-txt .rv-nombre{font-size:clamp(2.35rem,1.8rem + 2vw,3.75rem);line-height:1.02}
.rv-mesa-bloque{display:flex;flex-direction:column;gap:var(--e1);padding-top:var(--e4);border-top:1px solid var(--filete)}
.rv-mesa-bloque p:last-child{font:400 clamp(1.0625rem,1rem + .2vw,1.1875rem)/1.65 var(--fc);color:var(--tinta)}
.rv-mesa-bloque em{font-family:var(--ft);font-size:1.15em;color:var(--tinta)}
.rv-caso-enl{margin-top:var(--e2)}
.rv-srv-caso .rv-caso-caja p:last-child,.rv-srv-caso .rv-caso-caja p:nth-last-child(2){font-weight:400;color:var(--tinta)}
.rv-nosotros .rv-caso-enl{margin-top:0}
.rv-ficha-lista{display:flex;flex-direction:column;border-top:1px solid var(--filete)}
.rv-ficha-lista div{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--e1);padding:var(--e4) 0;border-bottom:1px solid var(--filete)}
.rv-ficha-lista dt{font:500 .8125rem/1.5 var(--fc);letter-spacing:.2em;text-transform:uppercase;color:var(--acento)}
.rv-ficha-lista dd{font:400 clamp(1.125rem,1rem + .4vw,1.375rem)/1.45 var(--fc)}
@media (min-width:900px){
.rv-cadena-lista{grid-template-columns:repeat(2,minmax(0,1fr))}
.rv-relato-cap{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(2.5rem,1rem + 4vw,6rem);align-items:start}
.rv-relato-x{padding-top:var(--e5)}
.rv-mesa-persona{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(2.5rem,1rem + 4vw,6rem);align-items:center}
.rv-mesa-persona:nth-child(even) .rv-retrato{order:2;justify-self:end}
.rv-ficha-lista div{grid-template-columns:minmax(0,1fr) minmax(0,2fr);align-items:baseline}
}

@media (min-width:1180px){.rv-cadena-lista{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* Damero granate y crema en las tarjetas del ecosistema (28-oct, Marcos: «doble color»). La octava (el cierre) siempre es granate:
   móvil, una columna: pares en granate · dos columnas: 1, 4, 5 y 8 · cuatro columnas: 1, 3, 6 y 8 */
.rv-cadena-fila:nth-child(even){background:#740f25;--tinta:#f4efe9;--acento:#e7ddd0;--filete:rgba(244,239,233,.22);--foco:#f4efe9}
@media (min-width:900px){.rv-cadena-fila:nth-child(even){background:var(--superficie);--tinta:#000000;--acento:#740f25;--filete:rgba(60,60,60,.25);--foco:#740f25}.rv-cadena-fila:nth-child(4n+1),.rv-cadena-fila:nth-child(4n){background:#740f25;--tinta:#f4efe9;--acento:#e7ddd0;--filete:rgba(244,239,233,.22);--foco:#f4efe9}}
@media (min-width:1180px){.rv-cadena-fila:nth-child(n){background:var(--superficie);--tinta:#000000;--acento:#740f25;--filete:rgba(60,60,60,.25);--foco:#740f25}.rv-cadena-fila:nth-child(1),.rv-cadena-fila:nth-child(3),.rv-cadena-fila:nth-child(6){background:#740f25;--tinta:#f4efe9;--acento:#e7ddd0;--filete:rgba(244,239,233,.22);--foco:#f4efe9}}

/* Bloque auditoría REA (Claude, 29-oct-2026) · La oferta se ve desde el primer fotograma. Las frases de Ayer y Después
   ya no se superponen al escenario entero (bloques 20 y 21), que ahora pisaría titular y botón: las tres frases comparten
   la misma celda del rótulo y este mide lo que la más larga. Las que no tocan llevan rv-reservado desde el HTML (no
   hidden), así el alto es el mismo antes y después del JavaScript: sin saltos. */
.rv-eras .rv-rotulo{display:grid;min-height:0}
.rv-eras .rv-rotulo>.rv-frase,.rv-eras .rv-frase[data-frase-era="0"],.rv-eras .rv-frase[data-frase-era="1"]{grid-area:1/1;position:static;margin:0;align-self:end}

/* WEB-061, veredicto de Codex (29-oct-2026) · Dos bloqueos de la cabeza 1d204f1b, más el «queda muy mal» de Marcos:
   la frase de cada escena salía al tamaño del titular y se leían dos titulares seguidos.
   - La frase de la escena pasa a ser una línea de apoyo, más pequeña: el titular manda.
   - Escritorio: la frase y el enlace del autodiagnóstico no pasan del tope del titular (bloque 1, --rv-hasta), para no
     caer sobre la ventana oscura del vídeo (1,24:1 medido por Codex a 1060 px). El enlace baja bajo el botón si no cabe.
   - Móvil: el botón va justo después del titular, por encima del aviso de cookies en la primera visita (390×844). */
.rv-eras .rv-dice{font-size:clamp(1.375rem,1.1rem + 1vw,1.875rem);line-height:1.2}
.rv-eras .rv-rotulo{margin-bottom:clamp(.75rem,1.5svh,1.25rem)}
@media (min-width:901px){
.rv-eras .rv-frases{--rv-hasta:calc(30vw + 252*max(100vw/1920,var(--rv-portada)/1032) - max(0px,(100vw - var(--ancho))/2) - var(--gutter) - 4rem)}
.rv-eras .rv-rotulo,.rv-eras .rv-propuesta>.rv-acciones{max-width:var(--rv-hasta)}
}
@media (max-width:700px){
.rv-eras .rv-propuesta>.rv-h1{order:-2}
.rv-eras .rv-propuesta>.rv-acciones{order:-1}
}

/* Claude, 30-oct-2026 · Seis momentos de la vida de un inmueble en lugar de una tarjeta por negocio (Marcos: «sin abrumar la web,
   meter a todos»). Los nombres van seguidos, separados por un punto medio; solo los enlaces llevan subrayado. Sin desplegables:
   en el móvil cabe entero. El menú «Para quién» usa los mismos grupos. */
.rv-puertas-rej{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--e3)}
.rv-puerta{display:flex;flex-direction:column;gap:var(--e2);padding:clamp(1rem,.75rem + 1vw,1.75rem);background:var(--superficie);border-top:2px solid var(--acento);min-width:0}
.rv-puerta .rv-h3{margin:0}
.rv-puerta-nombres{display:flex;flex-wrap:wrap;margin:0;padding:0;list-style:none;font:400 1rem/1.9 var(--fc);color:var(--tinta)}
.rv-puerta-nombres li:not(:last-child)::after{content:"·";margin:0 .45em;color:var(--suave)}
.rv-puerta-nombres a{color:var(--acento);text-decoration:underline;text-underline-offset:.2em}
.rv-puertas-cierre{margin:0;font:400 1.0625rem/1.6 var(--fc);color:var(--tinta)}
.rv-puertas-cierre .rv-enl{display:inline}
@media (min-width:701px){.rv-puertas-rej{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--e4)}}
@media (min-width:1100px){.rv-puertas-rej{grid-template-columns:repeat(3,minmax(0,1fr))}}
ul.rv-sol-panel{display:grid;grid-template-columns:repeat(2,minmax(0,15rem));column-gap:var(--e3);min-width:0;width:max-content;padding:.75rem 0}
.rv-sol-grupo ul{margin:0;padding:0;list-style:none}
.rv-sol-tit{margin:.5rem 0 0;padding:0 1.25rem .25rem;font:500 .6875rem/1.2 var(--fc);letter-spacing:.18em;text-transform:uppercase;color:#3c3c3c}
.rv-sol-panel .rv-sol-todo{grid-column:1/-1}
.rv-cabecera .menu .panel .rv-menu-grupo{margin:var(--e3) 0 0;font:500 .6875rem/1.2 var(--fc);letter-spacing:.18em;text-transform:uppercase;color:var(--suave)}

/* Claude, 31-oct-2026 · Marcos: «aquí no has puesto colores corporativos» y «este granate no es el color revirai». Las secciones oscuras
   usan el granate oficial del logotipo (#740f25, direccion.md), liso, y los velos sobre imagen funden hacia él. El pie se queda en
   #740f25: sobre #740f25 desaparecen los dos círculos granates del logotipo. */
.rv-osc,.rv-granate{--fondo:#740f25;--superficie:#740f25;--suave:#f4efe9;--filete:rgba(244,239,233,.3);--acento:#f4efe9;--sobre-acento:#740f25;--sobre-boton:#740f25;background:#740f25}
.rv-pie.rv-osc{--fondo:#740f25;--superficie:#740f25;--filete:rgba(244,239,233,.3);--sobre-acento:#740f25;--sobre-boton:#740f25;background:#740f25}
.rv-velo-osc-izq{background:linear-gradient(90deg,#740f25 0%,#740f25 56%,rgba(116,15,37,0) 80%)}
.rv-velo-osc-der{background:linear-gradient(90deg,rgba(116,15,37,0) 20%,#740f25 44%,#740f25 100%)}
@media (max-width:900px){.rv-velo-osc-izq,.rv-velo-osc-der{background:linear-gradient(180deg,rgba(116,15,37,.1) 0%,rgba(116,15,37,.3) 30%,rgba(116,15,37,.92) 58%,rgba(116,15,37,1) 100%)}}
/* Claude, 31-oct-2026 · Las reglas propias que pisaban el granate oficial: preguntas, relato, fondos y cajas de Quiénes somos, y las
   opciones marcadas del autodiagnóstico (--granate-osc). Los velos dejan la zona del texto en #740f25 exacto. */
:root{--granate-osc:#740f25}
.rv-preguntas.rv-osc,.rv-relato.rv-osc,.rv-fondo-granate{--fondo:#740f25;--superficie:#740f25;--suave:#f4efe9;--filete:rgba(244,239,233,.3);--acento:#f4efe9;--sobre-acento:#740f25;--sobre-boton:#740f25;background:#740f25}
.rv-caja-granate .rv-caso-caja,.rv-cadena-cierre{background:#740f25}
@media (max-width:899px){.rv-cadena-fila:nth-child(even){background:#740f25}}
@media (min-width:900px) and (max-width:1179px){.rv-cadena-fila:nth-child(4n+1),.rv-cadena-fila:nth-child(4n){background:#740f25}}
@media (min-width:1180px){.rv-cadena-fila:nth-child(1),.rv-cadena-fila:nth-child(3),.rv-cadena-fila:nth-child(6){background:#740f25}}
/* Claude, 31-oct-2026 · La foto de «Tu empresa ya funciona», limpia: el granate liso acaba donde acaba el texto (.rv-tres, 50rem) y se funde
   en 8rem, en cualquier ancho. */
@media (min-width:901px){
.rv-problema{--rv-texto:calc(max(0px,(100vw - var(--ancho))/2) + var(--gutter) + 51rem)}
.rv-problema .rv-velo-osc-izq{background:linear-gradient(90deg,#740f25 0,#740f25 var(--rv-texto),rgba(116,15,37,0) calc(var(--rv-texto) + 8rem))}
}
/* Claude, 31-oct-2026 · Bloqueos de Codex en WEB-064 (BUS 3378). Con seis grupos el menú móvil es más alto que la pantalla: el panel se
   limita a la altura bajo la cabecera y se desplaza por dentro, también con el aviso de cookies a la vista. En el móvil las seis puertas
   dejan de ser tarjetas y pasan a filas compactas, para verse aproximadamente en una pantalla. */
@media (max-width:1060px){
.rv-cabecera .menu .panel{box-sizing:border-box;max-height:calc(100svh - 5.5rem);overflow-y:auto;overscroll-behavior:contain}
body:has(#ck:not([hidden])) .rv-cabecera .menu .panel{max-height:calc(100svh - 5.5rem - 10.5rem)}
}
/* WhatsApp visible en todas las páginas: independiente de la barra de diagnóstico. */
.rv-wa-fija{position:fixed;right:max(1rem,env(safe-area-inset-right));bottom:calc(var(--rv-wa-cookie,0px) + 1rem + env(safe-area-inset-bottom));z-index:150;display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;padding:0;border:0;border-radius:6px;background:#128c7e;color:#fff;text-decoration:none;box-shadow:0 2px 8px #0002}
.rv-wa-fija svg,.rv-btn-cab svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.rv-btn-cab svg{width:18px;height:18px;margin-left:.6rem;vertical-align:middle}
.rv-wa-fija:hover{background:#075e54;color:#fff}
.rv-wa-fija:focus-visible{outline:3px solid #740f25;outline-offset:3px}
body:has(#ck:not([hidden])) .rv-wa-fija{bottom:calc(var(--rv-wa-cookie,12rem) + 1rem + env(safe-area-inset-bottom))}
@media (max-width:700px){body:has(.rv-cta-fija:not(.rv-cta-fija-oculta)):not(:has(#consulta)) .rv-wa-fija{bottom:calc(var(--rv-wa-cookie,0px) + 5rem + env(safe-area-inset-bottom))}body:has(#ck:not([hidden])) .rv-wa-fija{bottom:calc(var(--rv-wa-cookie,12rem) + 1rem + env(safe-area-inset-bottom))}}
@media print{.rv-wa-fija{display:none}}
@media (max-width:700px){
.rv-puertas-rej{gap:0;border-top:1px solid var(--filete)}
.rv-puerta{gap:.125rem;padding:.625rem 0;background:none;border-top:0;border-bottom:1px solid var(--filete)}
.rv-puerta .rv-h3{font:500 .75rem/1.4 var(--fc);letter-spacing:.16em;text-transform:uppercase;color:var(--acento)}
.rv-puerta-nombres{font-size:.9375rem;line-height:1.7}
.rv-puerta-nombres li:not(:last-child)::after{margin:0 .35em}
}

/* Claude, 31-oct-2026 · WEB-065. Un solo granate (Marcos: «homogeneizar absolutamente toda la web»). Pie negro con el logo oscuro oficial;
   al pasar el ratón, negro: la ficha no tiene un granate más oscuro. Las tarjetas de clientes refuerzan su línea superior. */
:root{--filete:rgba(60,60,60,.25)}
.rv-pie.rv-osc{--fondo:#000000;--superficie:#000000;--filete:rgba(244,239,233,.3);--sobre-acento:#000000;--sobre-boton:#000000;background:#000000;border-top:0}
.rv-pie-base{border-top-color:rgba(244,239,233,.3)}
.rv-btn-claro:hover{background:#000000;border-color:#000000;color:#f4efe9}
.rv-cliente{border-top:3px solid var(--acento)}
/* Chat propio de FAQ: contenido y conversacion en el navegador, sin proveedor. */
.rv-chat-abrir{position:fixed;right:max(1rem,env(safe-area-inset-right));bottom:var(--rv-chat-bottom,76px);z-index:151;display:flex;align-items:center;gap:.45rem;min-height:44px;padding:.55rem .9rem;border:1px solid #740f25;border-radius:6px;background:#f4efe9;color:#740f25;box-shadow:0 2px 8px #0002;font:500 .9rem/1.2 var(--fc);cursor:pointer}
.rv-chat-abrir svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.rv-chat-abrir:focus-visible,.rv-chat-panel :focus-visible{outline:3px solid #000000;outline-offset:3px}
.rv-chat-panel{padding:0;margin:0;position:fixed;right:max(1rem,env(safe-area-inset-right));bottom:calc(var(--rv-chat-bottom,76px) + 56px);z-index:152;display:flex;flex-direction:column;width:min(390px,calc(100% - 32px));height:500px;max-height:calc(100svh - var(--rv-chat-bottom,76px) - 100px);border:1px solid rgba(60,60,60,.25);border-radius:12px;background:#f4efe9;color:#000000;box-shadow:0 8px 40px #0003;font:400 .95rem/1.5 var(--fc);overflow:hidden;box-sizing:border-box}
.rv-chat-panel[hidden],.rv-chat-abrir[hidden]{display:none}
.rv-chat-panel *{box-sizing:border-box}
.rv-chat-cab{position:static;top:auto;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:14px 16px;background:#740f25;color:#f4efe9;flex:none}
.rv-chat-cab h2{font:500 1.05rem/1.3 var(--fc);margin:0;color:inherit}
.rv-chat-cab p{font-size:.75rem;line-height:1.4;margin:3px 0 0;color:inherit;opacity:.9}
.rv-chat-cerrar{width:36px;height:36px;flex:none;padding:0;border:0;border-radius:4px;background:transparent;color:#f4efe9;font-size:26px;cursor:pointer}
.rv-chat-cuerpo{overflow:auto;overscroll-behavior:contain;padding:14px 16px;flex:1;min-height:0}
.rv-chat-aviso{font-size:.75rem;line-height:1.45;padding:10px;background:#e7ddd0;border-radius:6px;margin:0 0 12px}
.rv-chat-bienvenida{margin:0 0 10px;font-weight:500}
.rv-chat-opciones{display:flex;flex-wrap:wrap;gap:7px}
.rv-chat-opciones button{min-height:36px;padding:7px 10px;border:1px solid rgba(60,60,60,.25);border-radius:16px;background:#f4efe9;color:#740f25;font:400 .82rem/1.3 var(--fc);cursor:pointer}
.rv-chat-mensaje{padding:11px 12px;margin:12px 0 0;border-radius:8px;background:#e7ddd0;overflow-wrap:anywhere;white-space:pre-line}
.rv-chat-mensaje[data-quien="tu"]{margin-left:24px;background:#e7ddd0}
.rv-chat-mensaje small{display:block;font-size:.7rem;font-weight:500;letter-spacing:.04em;margin-bottom:5px}
.rv-chat-mensaje p{margin:0 0 8px;font-size:.88rem}
.rv-chat-mensaje p:last-child{margin:0}
.rv-chat-mensaje a{font-size:.78rem;color:#740f25;text-decoration:underline}
.rv-chat-escribir{flex:none;padding:10px 16px 6px;border-top:1px solid rgba(60,60,60,.25);background:#f4efe9}
.rv-chat-escribir label{display:block;font-size:.75rem;margin-bottom:4px}
.rv-chat-escribir>div{display:flex;align-items:stretch;gap:8px}
.rv-chat-escribir textarea{width:100%;min-width:0;resize:none;min-height:48px;max-height:80px;padding:8px;border:1px solid #3c3c3c;border-radius:5px;background:#f4efe9;color:#000000;font:400 16px/1.4 var(--fc)}
.rv-chat-enviar{padding:8px 10px;border:0;border-radius:5px;background:#740f25;color:#f4efe9;font:500 .8rem/1.2 var(--fc);cursor:pointer}
.rv-chat-enviar:disabled{opacity:.4;cursor:default}
.rv-chat-contador{font-size:.65rem;margin:5px 0 0;color:#3c3c3c}
.rv-chat-pie{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px 12px;padding:9px 12px 12px;font-size:.72rem;flex:none}
.rv-chat-pie a{color:#3c3c3c}
.rv-chat-pie .rv-chat-wa{padding:8px 12px;border-radius:5px;background:#075e54;color:#fff;font-size:.8rem;text-decoration:none}
@media(max-width:700px){.rv-chat-panel{right:16px;width:calc(100% - 32px);height:480px}.rv-chat-cab{padding:10px 12px}.rv-chat-cuerpo{padding:10px 12px}.rv-chat-escribir{padding:8px 12px 5px}}
@media print{.rv-chat-panel,.rv-chat-abrir{display:none}}
.rv-chat-cab :focus-visible{outline-color:#f4efe9}
}@layer chasis{.c-281d1c{background-color:#281d1c}.c-2e180e{background-color:#2e180e}.c-402619{background-color:#402619}.c-563f34{background-color:#563f34}.c-7b5f4c{background-color:#7b5f4c}.c-8c847c{background-color:#8c847c}.c-92745f{background-color:#92745f}.c-987a64{background-color:#987a64}.c-ae8a6e{background-color:#ae8a6e}.c-e2d9d0{background-color:#e2d9d0}.c-e5d8cc{background-color:#e5d8cc}.c-e7d3bb{background-color:#e7d3bb}.c-e9d2b5{background-color:#e9d2b5}}