*{box-sizing:border-box;margin:0}
html{background:var(--color-void);scroll-snap-type:y mandatory;scroll-behavior:smooth}
body{background:var(--color-void);color:var(--color-text-2);font-family:var(--font-sans)}
section{position:relative;height:100vh;height:100svh;scroll-snap-align:start;scroll-snap-stop:always;display:grid;align-items:center;padding:88px clamp(24px,5.5vw,80px) 0;max-width:1440px;margin:auto}
.wrap{width:100%}
/* ——— Cabecera única: logo · (centro reservado) · idioma · menú ——— */
header{position:fixed;inset:0 0 auto 0;z-index:20;height:88px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 clamp(24px,5.5vw,80px);max-width:1440px;margin:auto;pointer-events:none}
header>*{pointer-events:auto}
.logo{justify-self:start;display:flex;align-items:center;gap:var(--space-3);text-decoration:none;color:var(--color-text-1)}
.logo img{display:block;height:30px;width:auto;mix-blend-mode:lighten}
.logo span{padding-left:var(--space-3);border-left:1px solid var(--color-hair-strong);font:400 var(--text-caption)/1 var(--font-mono);letter-spacing:.32em;color:var(--color-text-3)}
.center{justify-self:center}
.tools{justify-self:end;display:flex;align-items:center;gap:var(--space-4)}
.lang{display:flex;gap:2px;font:400 var(--text-caption)/1 var(--font-mono);letter-spacing:var(--tracking-eyebrow)}
.lang button{min-width:44px;min-height:44px;border:0;background:none;color:var(--color-text-4);font:inherit;letter-spacing:inherit;cursor:pointer;transition:color var(--duration-fast) var(--ease-out)}
.lang button[aria-pressed="true"]{color:var(--color-text-1)}
.lang button:focus-visible,.burger:focus-visible,.menu a:focus-visible{outline:2px solid var(--color-light);outline-offset:3px;border-radius:var(--radius-sm)}
@media (hover:hover) and (pointer:fine){.lang button:hover{color:var(--color-text-2)}}
.burger{width:44px;height:44px;border:0;background:none;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;color:var(--color-text-1)}
.burger i{display:block;width:22px;height:1.2px;background:currentColor;transition:transform var(--duration-base) var(--ease-out)}
.burger i+i{margin-top:7px}
.burger[aria-expanded="true"] i:first-child{transform:translateY(4.1px) rotate(45deg)}
.burger[aria-expanded="true"] i:last-child{transform:translateY(-4.1px) rotate(-45deg)}
/* ——— Menú hamburguesa: panel de cristal (estructura de la referencia del Fundador, en negro y platino) ——— */
.scrim{position:fixed;inset:0;z-index:14;background:rgba(0,0,0,.5);opacity:0;visibility:hidden;transition:opacity 300ms var(--ease-out),visibility 300ms}
.scrim.open{opacity:1;visibility:visible}
.menu{position:fixed;z-index:16;top:80px;right:12px;bottom:12px;width:min(340px,calc(100vw - 24px));display:flex;flex-direction:column;padding:var(--space-4);border:var(--border);border-radius:var(--radius-lg);background:rgba(18,18,18,.5);-webkit-backdrop-filter:blur(28px);backdrop-filter:blur(28px);box-shadow:inset 0 1px 0 rgba(236,235,232,.1);opacity:0;visibility:hidden;transform:translateX(20px);transition:opacity 300ms var(--ease-out),transform 300ms var(--ease-out),visibility 300ms,width 300ms var(--ease-out)}
.menu.open{opacity:1;visibility:visible;transform:none}
.mhead{display:flex;align-items:center;gap:var(--space-3);min-height:44px;padding:0 var(--space-2) var(--space-4);border-bottom:var(--border)}
.mhead img{height:24px;width:auto;mix-blend-mode:lighten}
.mhead .nm{font:400 var(--text-caption)/1 var(--font-mono);letter-spacing:.32em;color:var(--color-text-3);white-space:nowrap;overflow:hidden}
.collapse{margin-left:auto;width:32px;height:32px;border:var(--border);border-radius:50%;background:var(--color-glass);color:var(--color-text-2);display:grid;place-items:center;cursor:pointer;transition:transform 300ms var(--ease-out)}
.collapse svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.collapse:focus-visible{outline:2px solid var(--color-light);outline-offset:3px}
.mlabel{padding:var(--space-5) var(--space-3) var(--space-2);font:400 var(--text-caption)/1 var(--font-mono);letter-spacing:var(--tracking-eyebrow);color:var(--color-text-4)}
.menu ul{list-style:none;padding:0;display:grid;gap:var(--space-1)}
.menu li a{display:flex;align-items:center;gap:var(--space-4);min-height:52px;padding:0 var(--space-3);border:1px solid transparent;border-radius:var(--radius-md);color:var(--color-text-3);text-decoration:none;font-size:var(--text-body);letter-spacing:var(--tracking-body-sm);white-space:nowrap;transition:background var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out)}
.menu li a svg{flex:none;width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round}
.menu li a[aria-current]{background:var(--color-glass-hover);border-color:var(--color-hair);color:var(--color-text-3)}
@media (hover:hover) and (pointer:fine){.menu li a:hover{background:var(--color-glass);color:var(--color-text-1)}}
.menu li a:focus-visible{outline:2px solid var(--color-light);outline-offset:2px}

/* Microanimación del menú: al tocar, apuntar con el ratón o con el teclado, las letras se alumbran poco a poco y una línea de luz se llena por debajo; la opción actual también respira */
.menu li a{position:relative}
.menu li a .lbl{position:relative;display:inline-block}
.menu li a .lit::after{background-image:linear-gradient(90deg,#ecebe8 0%,#ecebe8 70%,rgba(236,235,232,0) 100%)}
.menu li a::before{content:"";position:absolute;left:var(--space-3);right:var(--space-3);bottom:6px;height:1px;background:linear-gradient(90deg,rgba(236,235,232,0) 0%,rgba(236,235,232,.55) 70%,rgba(255,255,255,.95) 100%);transform-origin:0 50%;transform:scaleX(0);animation:line 5s cubic-bezier(.35,.1,.35,1) infinite}
.menu li a:not([aria-current]):not(:hover):not(:focus-visible):not(:active) .lit::after,.menu li a:not([aria-current]):not(:hover):not(:focus-visible):not(:active)::before{animation:none;opacity:0}
.menu li a svg{transition:color var(--duration-fast) var(--ease-out)}
.menu li a:hover svg,.menu li a:focus-visible svg,.menu li a:active svg,.menu li a[aria-current] svg{color:#ecebe8;animation:icolit 5s cubic-bezier(.35,.1,.35,1) infinite}
.menu.collapsed li a .lbl{display:none}
@media (prefers-reduced-motion:reduce){.menu li a .lit::after,.menu li a::before,.menu li a svg{animation:none}.menu li a .lit::after,.menu li a::before{display:none}}
.mfoot{margin-top:auto;padding:var(--space-4) var(--space-3) var(--space-2);border-top:var(--border);display:grid;gap:var(--space-2);font:400 var(--text-caption)/1.4 var(--font-mono);letter-spacing:.08em;color:var(--color-text-4)}
.mfoot b{font-weight:400;color:var(--color-text-3)}
.menu.collapsed{width:76px}
.menu.collapsed .nm,.menu.collapsed .mlabel,.menu.collapsed .mfoot{display:none}
.menu.collapsed .mhead{justify-content:center;flex-wrap:wrap;gap:var(--space-2)}
.menu.collapsed .collapse{margin-left:0;transform:rotate(180deg)}
.menu.collapsed li a{justify-content:center;padding:0}
@media(max-width:700px){.menu{top:68px}.collapse{display:none}.menu.collapsed{width:min(340px,calc(100vw - 24px))}}
/* ——— Luz sutil compartida ——— */
.lit{position:relative;display:inline-block}
.lit::after{content:attr(data-t);position:absolute;left:0;top:0;white-space:nowrap;color:transparent;background:linear-gradient(90deg,#ecebe8 0%,#ecebe8 70%,rgba(244,244,242,0) 100%) no-repeat 0 0/0% 100%;-webkit-background-clip:text;background-clip:text;animation:fill 5s cubic-bezier(.35,.1,.35,1) infinite}
.under{position:relative}
.under::before{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,rgba(242,242,240,0) 0%,rgba(242,242,240,.55) 70%,rgba(255,255,255,.95) 100%);transform-origin:0 50%;transform:scaleX(0);animation:line 5s cubic-bezier(.35,.1,.35,1) infinite}
@keyframes fill{0%{background-size:0% 100%;opacity:1}76%{background-size:125% 100%;opacity:1}84%{background-size:125% 100%;opacity:1}100%{background-size:125% 100%;opacity:0}}
@keyframes line{0%{transform:scaleX(0);opacity:1}76%{transform:scaleX(1);opacity:1}84%{transform:scaleX(1);opacity:1}100%{transform:scaleX(1);opacity:0}}
@keyframes ring{0%{stroke-dashoffset:1;opacity:1}76%,84%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:0;opacity:0}}
@keyframes icolit{0%{color:#98978f}76%,84%{color:#ecebe8}100%{color:#98978f}}
@keyframes turn{to{transform:rotate(360deg)}}
.ico{position:relative;width:40px;height:40px;color:#98978f}
.ico svg{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round}
.ico .ring{stroke:rgba(242,242,240,.14)}
.ico .glyph{inset:8px;width:24px;height:24px}
.ico .fillring{stroke:#ecebe8;stroke-dasharray:1;stroke-dashoffset:1;transform:rotate(-90deg);transform-origin:50% 50%;opacity:0}
.row.on .ico{animation:icolit 5s cubic-bezier(.35,.1,.35,1) infinite}
.row.on .fillring{animation:ring 5s cubic-bezier(.35,.1,.35,1) infinite}
.row:not(.on) .lit::after{animation:none;opacity:0}
.row:not(.on) .under::before{animation:none}
@media (hover:hover) and (pointer:fine){.row:not(.on):hover .ico{color:var(--color-text-3)}}
h1,h2{font-family:var(--font-serif);font-weight:var(--weight-regular);color:var(--color-text-1)}
/* ——— 1 · Inicio ——— */
.hero{position:relative;display:block;padding:0;max-width:none;overflow:hidden}
.hero .txt{position:relative;z-index:2;max-width:1440px;margin:auto;padding:clamp(112px,16svh,150px) clamp(24px,5.5vw,80px) 0}
.hero h1{font-size:var(--text-display);line-height:var(--leading-display);letter-spacing:-.01em}
.hero h1 span{display:block}
.hero .line{margin-top:var(--space-5);max-width:34ch;font-size:var(--text-lead);line-height:var(--leading-lead);letter-spacing:var(--tracking-h4);color:var(--color-text-3)}
.hero .photo{position:absolute;z-index:1;left:50%;bottom:-4svh;width:min(940px,100vw);aspect-ratio:1;transform:translateX(-50%);pointer-events:none;
 -webkit-mask-image:linear-gradient(to bottom,transparent 0,transparent 30%,#000 64%),radial-gradient(closest-side,#000 62%,transparent 100%);-webkit-mask-composite:source-in;
 mask-image:linear-gradient(to bottom,transparent 0,transparent 30%,#000 64%),radial-gradient(closest-side,#000 62%,transparent 100%);mask-composite:intersect}
.hero .photo img{display:block;width:100%;height:100%;object-fit:cover}
/* ——— Listas (servicios, proceso) ——— */
.split{display:grid;grid-template-columns:.8fr 1.2fr;gap:var(--space-9);align-items:center}
.split h2{font-size:var(--text-h1);line-height:var(--leading-h1);letter-spacing:-.01em}
.split h2 span{display:block}
ol{list-style:none;padding:0}
.row{position:relative;display:grid;grid-template-columns:64px 1fr;align-items:center;min-height:104px;padding:var(--space-3) 0;color:var(--color-text-4);outline:none}
.row:focus-visible{outline:2px solid var(--color-light);outline-offset:4px;border-radius:var(--radius-sm)}
.row .tx{display:grid;justify-items:start}
.row .t{font-weight:var(--weight-regular);font-size:var(--text-h2);line-height:1;letter-spacing:var(--tracking-h2);color:#98978f}
.row.on .t::after{background-image:linear-gradient(90deg,#ecebe8 0%,#ecebe8 70%,rgba(244,244,242,0) 100%)}
.row .d{display:block;max-height:0;margin-top:0;overflow:hidden;transition:max-height 360ms var(--ease-out),margin-top 360ms var(--ease-out)}
.row .d .l{display:block;font-size:var(--text-body-sm);line-height:var(--leading-body-sm);letter-spacing:var(--tracking-body-sm);color:var(--color-text-3);opacity:0;transform:translateY(4px);transition:opacity 420ms var(--ease-out),transform 420ms var(--ease-out)}
.row .d .l+.l{margin-top:2px;color:var(--color-text-4)}
.row.on .d{max-height:120px;margin-top:var(--space-2)}
.row.on .d .l{opacity:1;transform:none}
.row.on .d .l+.l{transition-delay:90ms}
.proc .row{min-height:136px}
.split.two{grid-template-columns:1fr 1fr}
/* ——— 4 · Contacto ——— */
.contact h2{font-size:var(--text-display);line-height:var(--leading-display);letter-spacing:-.01em;display:inline-block;padding-bottom:var(--space-4);color:#bdbcb8}
.contact .cline{margin-top:var(--space-5);font-family:var(--font-serif);font-style:italic;font-size:clamp(26px,2.3vw,34px);line-height:1.2;letter-spacing:-.005em;color:var(--color-text-3)}
.contact .cline span{display:block;white-space:nowrap}
.contact .right{display:grid;gap:var(--space-3)}
.contact a.row{text-decoration:none;grid-template-columns:80px 1fr;min-height:104px}
.contact .row .t{font-size:var(--text-h3);letter-spacing:var(--tracking-h3);white-space:nowrap}
.contact .row .under{display:inline-block;padding-bottom:var(--space-3);justify-self:start}
.caps{padding-left:80px;display:flex;gap:var(--space-5);flex-wrap:wrap;margin-top:calc(var(--space-3)*-1)}
.caps a{display:inline-flex;align-items:center;min-height:44px;font:400 var(--text-caption)/1 var(--font-mono);letter-spacing:var(--tracking-eyebrow);color:var(--color-text-3);text-decoration:none;transition:color var(--duration-fast) var(--ease-out)}
.logo:focus-visible,.caps a:focus-visible,.dots a:focus-visible{outline:2px solid var(--color-light);outline-offset:3px;border-radius:var(--radius-sm)}
@media (hover:hover) and (pointer:fine){.caps a:hover{color:var(--color-text-1)}}
.legal{position:absolute;left:clamp(24px,5.5vw,80px);right:clamp(24px,5.5vw,80px);bottom:clamp(20px,4svh,36px);font:400 var(--text-caption)/1.5 var(--font-mono);letter-spacing:.14em;color:var(--color-text-4)}
.dots{position:fixed;right:clamp(10px,1.6vw,24px);top:50%;transform:translateY(-50%);display:grid;gap:var(--space-3);z-index:10}
.dots a{display:block;width:6px;height:6px;border-radius:50%;background:rgba(242,242,240,.22);transition:background var(--duration-base) var(--ease-out),transform var(--duration-base) var(--ease-out);position:relative}
.dots a::after{content:"";position:absolute;inset:-12px}
.dots a.on{background:var(--color-light);transform:scale(1.35)}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.lit::after,.under::before,.row .ico,.row .fillring,.menu,.burger i{animation:none;transition:none}.lit::after,.under::before{display:none}.row.on .t,.row.on .ico,.contact h2.row.on .fillring{opacity:1;stroke-dashoffset:0}}
@media(max-width:700px){
 section{padding-top:72px}
 header{height:72px}
 .hero{align-content:start}
 .hero .photo{width:124vw;bottom:-2svh}
 .hero h1{font-size:clamp(42px,12.1vw,var(--text-h2));line-height:var(--leading-h2)}
 .hero .line{font-size:var(--text-body);margin-top:var(--space-4)}
 .split,.split.two{grid-template-columns:1fr;gap:var(--space-7)}
 .split h2{font-size:var(--text-h2);line-height:var(--leading-h2)}
 .row{grid-template-columns:56px 1fr;min-height:84px}
 .row .t{font-size:var(--text-h3);letter-spacing:var(--tracking-h3)}
 .proc .row{min-height:140px}
 .contact h2{font-size:var(--text-h1);line-height:var(--leading-h1)}
 .contact .cline{font-size:22px;margin-top:var(--space-4)}
 .contact a.row{grid-template-columns:56px 1fr;min-height:84px}
 .contact .row .t{font-size:var(--text-lead);letter-spacing:var(--tracking-h4)}
 .caps{padding-left:56px;gap:var(--space-4)}
 .menu a{font-size:var(--text-h2)}
 .dots{display:none}
}

/* Rutas de fuentes para la nueva ubicación /css; tokens.css se conserva intacto. */
@font-face{font-family:"Inter";src:url("../fonts/inter-latin-wght-normal.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:"JetBrains Mono";src:url("../fonts/jetbrains-mono-latin-400-normal.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Instrument Serif";src:url("../fonts/instrument-serif-latin-400-normal.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Instrument Serif";src:url("../fonts/instrument-serif-latin-400-italic.woff2") format("woff2");font-weight:400;font-style:italic;font-display:swap}

body{overflow-x:hidden}
.logo{min-height:44px}
.collapse{width:44px;height:44px}
#servicios a.row{text-decoration:none}
.dots{gap:0}
.dots a{display:grid;width:44px;height:44px;place-items:center;background:transparent;transform:none}
.dots a::before{content:"";width:6px;height:6px;border-radius:50%;background:rgba(242,242,240,.22);transition:background var(--duration-base) var(--ease-out),transform var(--duration-base) var(--ease-out)}
.dots a::after{inset:0}
.dots a.on{background:transparent;transform:none}
.dots a.on::before{background:var(--color-light);transform:scale(1.35)}

html.door-page{scroll-snap-type:none}
.door-page body{min-height:100svh}
.door{min-height:100svh;display:grid;align-items:center;padding:88px clamp(24px,5.5vw,80px) 96px;max-width:1440px;margin:auto}
.door h1{font-size:var(--text-display);line-height:var(--leading-display);letter-spacing:-.01em}
.door-footer{position:fixed;z-index:2;left:50%;bottom:clamp(20px,4svh,36px);width:min(100%,1440px);transform:translateX(-50%);padding:0 clamp(24px,5.5vw,80px);font:400 var(--text-caption)/1.5 var(--font-mono);letter-spacing:.14em;color:var(--color-text-4)}
@media(max-width:700px){
 .door{padding-top:72px}
 .door h1{font-size:var(--text-h2);line-height:var(--leading-h2)}
 .contact .row .t{font-size:clamp(14px,4.8vw,var(--text-lead))}
}
@media (prefers-reduced-motion:reduce){
 *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}

/* Las puertas de «Lo que hacemos» se ven como botones: etiqueta «ENTRAR» con borde de 1 px */
#servicios a.row{padding-right:112px}
#servicios .go{position:absolute;right:0;top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;min-height:36px;padding:0 var(--space-3);border:var(--border);border-radius:var(--radius-sm);font:400 var(--text-caption)/1 var(--font-mono);letter-spacing:var(--tracking-eyebrow);color:var(--color-text-4);transition:color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out),background var(--duration-fast) var(--ease-out)}
#servicios .row.on .go{color:var(--color-text-1);border-color:var(--color-hair-strong);background:var(--color-glass)}
#servicios a.row:active .go{transform:translateY(-50%) scale(.97)}
@media (hover:hover) and (pointer:fine){#servicios a.row:hover .go{color:var(--color-text-1);border-color:var(--color-hair-strong)}}
@media (max-width:700px){#servicios a.row{padding-right:0;grid-template-rows:auto auto;row-gap:var(--space-2);min-height:112px}#servicios .go{position:static;transform:none;grid-column:2;justify-self:start}#servicios a.row:active .go{transform:scale(.97)}}
@media (prefers-reduced-motion:reduce){#servicios .go{transition:none}}

/* Webs */
.webs-page{height:auto;overflow-x:hidden;overflow-y:auto;scroll-snap-type:none;background:var(--color-void)}
.webs-page body{position:relative;isolation:isolate;height:auto;min-height:100svh;overflow:visible;background:var(--color-void);color:var(--color-text-2)}
.webs-page body::before{content:"";position:fixed;inset:-100px;z-index:-2;pointer-events:none;background:url("../img/portada-800.webp") center/cover no-repeat;filter:blur(60px) brightness(1.05)}
.webs-page body::after{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:rgba(0,0,0,.62)}
.webs-page section{position:relative;height:auto;max-width:none;margin:0;padding:0;display:block;scroll-snap-align:none;scroll-snap-stop:normal}
.webs-header{position:fixed;inset:0 auto auto 0;z-index:40;width:auto;height:auto;display:block;padding:18px;pointer-events:none}
.webs-mark{position:relative;width:48px;height:48px;border:var(--border-strong);border-radius:50%;background:var(--color-glass);color:var(--color-text-2);display:grid;place-items:center;font:var(--weight-medium) var(--text-caption)/1 var(--font-sans);letter-spacing:.1em;cursor:pointer;pointer-events:auto;transition:color var(--duration-base) var(--ease-out),border-color var(--duration-base) var(--ease-out),transform var(--duration-base) var(--ease-out)}
.webs-mark::before{content:"";position:absolute;inset:-7px;border:var(--border);border-radius:50%;opacity:.75}
.webs-mark[aria-expanded="true"]{color:var(--color-text-1);border-color:var(--color-light)}
.webs-mark:active{transform:scale(.96)}
.webs-mark:focus-visible,.webs-mode-menu a:focus-visible,.webs-style-card:focus-visible,.webs-progress button:focus-visible,.webs-contact-panel button:focus-visible,.webs-form input:focus-visible,.webs-form textarea:focus-visible,.webs-options input:focus-visible+span{outline:2px solid var(--color-light);outline-offset:3px}
.webs-mode-scrim{position:fixed;inset:0;z-index:30;background:var(--color-void);opacity:0;visibility:hidden;transition:opacity var(--duration-base) var(--ease-out),visibility var(--duration-base)}
.webs-mode-scrim.is-open{opacity:.985;visibility:visible}
.webs-mode-menu{position:fixed;z-index:35;top:106px;left:34px;width:min(360px,calc(100vw - 68px));display:grid;opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity var(--duration-base) var(--ease-out),transform var(--duration-base) var(--ease-out),visibility var(--duration-base)}
.webs-mode-menu.is-open{opacity:1;visibility:visible;transform:none}
.webs-mode-menu a{position:relative;display:block;padding:14px 0;border-bottom:var(--border);color:var(--color-text-3);text-decoration:none;font:var(--weight-regular) clamp(30px,10vw,var(--text-h2))/1 var(--font-serif);letter-spacing:var(--tracking-h2);transition:color var(--duration-fast) var(--ease-out)}
.webs-mode-menu a.is-current{color:var(--color-text-1)}
.webs-mode-menu a.is-current::after{content:"";display:inline-block;width:5px;height:5px;margin-left:var(--space-3);border-radius:50%;background:var(--color-light);box-shadow:0 0 8px var(--color-light-glow);vertical-align:middle}
.webs-mode-menu .webs-mode-all{padding-top:var(--space-5);border:0;font:var(--weight-regular) var(--text-caption)/1.4 var(--font-mono);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--color-text-3)}
.webs-shell{width:100%;height:100svh;padding:90px 0 84px}
.webs-layout{height:100%;display:flex;flex-direction:column;justify-content:center;gap:28px}
.webs-intro{padding:0 var(--space-5);text-align:center}
.webs-kicker{font:var(--weight-regular) var(--text-caption)/var(--leading-caption) var(--font-mono);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--color-text-3)}
.webs-intro h1{max-width:11ch;margin:10px auto 0;font-size:clamp(38px,12vw,var(--text-h1));line-height:1;letter-spacing:var(--tracking-h1);text-wrap:balance}
.webs-lead{max-width:34ch;margin:12px auto 0;font-size:13px;line-height:1.45;color:var(--color-text-2);text-wrap:balance}
.webs-gallery{min-width:0}
.webs-track{display:flex;gap:12px;overflow-x:auto;padding:0 0 0 44px;scroll-padding-left:44px;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-inline:contain}
.webs-track::-webkit-scrollbar{display:none}
.webs-style-card{position:relative;flex:0 0 min(70vw,260px);width:min(70vw,260px);height:300px;padding:14px;border:1px solid rgba(242,242,240,.3);border-radius:20px;color:inherit;text-align:left;text-decoration:none;scroll-snap-align:start;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 18px 40px rgba(0,0,0,.4);transition:border-color var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out)}
.webs-style-card.is-lujo{background:linear-gradient(180deg,#171717,#080808);color:#ecebe8;border-color:rgba(255,255,255,.7);box-shadow:0 0 0 1px rgba(255,255,255,.2)}
.webs-style-card.is-minimalista{background:#f3f2ee;color:#1a1a1a}
.webs-style-card.is-tecnologico{background:linear-gradient(180deg,#0b1626,#06101d);color:#cfe9f5}
.webs-style-card.is-comercial{background:linear-gradient(180deg,#fff3e6,#ffd9b3);color:#3a1d08}
.webs-card-label{font:10px/1.2 var(--font-mono);letter-spacing:.12em;text-transform:uppercase;opacity:.8}
.webs-card-phrase{display:block;margin-top:44px;font:var(--weight-regular) 25px/1.05 var(--font-serif)}
.webs-card-reserve{align-self:flex-start;margin-top:12px;padding:4px 10px;border:1px solid currentColor;font-size:10px;line-height:1.4}
.webs-card-go{margin-top:auto;font:var(--weight-medium) 12px/1.3 var(--font-sans)}
.webs-more-card{background:rgba(242,242,240,.05);border-style:dashed;color:#fff;font:inherit;cursor:pointer}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.webs-progress{display:flex;justify-content:center;align-items:center;gap:7px;margin-top:4px}
.webs-progress button{width:24px;height:24px;padding:0;border:0;background:transparent;display:grid;place-items:center;cursor:pointer}
.webs-progress button::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--color-hair-strong);transition:width var(--duration-base) var(--ease-out),background var(--duration-base) var(--ease-out),border-radius var(--duration-base) var(--ease-out)}
.webs-progress button.is-active::before{width:18px;border-radius:9px;background:var(--color-light)}
.webs-page .webs-contact-panel{position:relative!important;width:min(560px,calc(100vw - 40px));max-width:none;margin:0 auto;padding:72px 0 140px!important;border:0;background:transparent;opacity:1;visibility:visible;pointer-events:auto;transform:none}
.webs-contact-close{display:none!important}
.webs-contact-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4)}
.webs-contact-head h2{margin-top:var(--space-2);font-size:var(--text-h3);line-height:var(--leading-h3);letter-spacing:var(--tracking-h3)}
.webs-contact-close{width:44px;height:44px;flex:none;border:var(--border);border-radius:50%;background:transparent;color:var(--color-text-2);font:var(--weight-regular) var(--text-h4)/1 var(--font-sans);cursor:pointer}
.webs-style-chip{display:inline-block;margin-top:var(--space-4);padding:5px var(--space-3);border:var(--border);border-radius:var(--radius-sm);font:var(--weight-regular) var(--text-caption)/1.4 var(--font-mono);color:var(--color-text-2)}
.webs-form{margin-top:var(--space-4)}
.webs-form-lines{display:grid;grid-template-columns:1fr;gap:var(--space-1)}
.webs-form-lines label{margin-top:var(--space-2);font-size:var(--text-body-sm);color:var(--color-text-3)}
.webs-form input[type="text"],.webs-form textarea{width:100%;min-height:36px;padding:0 0 var(--space-2);border:0;border-bottom:var(--border-strong);border-radius:0;background:transparent;color:var(--color-text-1);font:var(--weight-regular) var(--text-body)/var(--leading-body) var(--font-sans);resize:vertical}
.webs-form input[type="text"]:focus,.webs-form textarea:focus{outline:none;border-color:var(--color-light)}
.webs-form fieldset{min-width:0;margin-top:var(--space-5);padding:0;border:0}
.webs-form legend{padding:0;font:var(--weight-regular) var(--text-caption)/var(--leading-caption) var(--font-mono);letter-spacing:.08em;color:var(--color-text-3)}
.webs-options{display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-4);margin-top:var(--space-3)}
.webs-options label{position:relative;cursor:pointer}
.webs-options input{position:absolute;inline-size:1px;block-size:1px;opacity:0}
.webs-options span{display:inline-block;min-height:28px;padding:4px 0;border-bottom:1px solid transparent;font-size:var(--text-body-sm);color:var(--color-text-4);transition:color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out)}
.webs-options input:checked+span{border-color:var(--color-light);color:var(--color-text-1)}
.webs-submit{width:100%;min-height:46px;margin-top:var(--space-5);border:var(--border-strong);border-radius:var(--radius-sm);background:transparent;color:var(--color-text-1);font:var(--weight-medium) var(--text-body-sm)/1 var(--font-sans);cursor:pointer;transition:background var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)}
.webs-form-status{min-height:20px;margin-top:var(--space-2);font-size:var(--text-caption);color:var(--color-text-3)}
.webs-write{position:fixed;z-index:25;left:14px;right:14px;bottom:16px;min-height:50px;border:var(--border-strong);border-radius:99px;background:var(--color-void);color:var(--color-text-1);font:var(--weight-medium) 14px/1 var(--font-sans);cursor:pointer;box-shadow:0 0 24px var(--color-light-glow)}


@media (hover:hover) and (pointer:fine){
 .webs-mark:hover,.webs-mode-menu a:hover{border-color:var(--color-light);color:var(--color-text-1)}
 .webs-style-card:hover{transform:translateY(-2px)}
 .webs-submit:hover{background:var(--color-light);color:var(--color-void)}
}

@media (min-width:900px){
 .webs-header{padding:26px 48px}
 .webs-mark{width:54px;height:54px}
 .webs-mode-menu{top:110px;left:48px;width:390px}
 .webs-mode-menu a{font-size:var(--text-h2)}
 .webs-shell{padding:72px 56px 94px}
 .webs-layout{gap:34px}
 .webs-intro{padding:0}
 .webs-intro h1{margin-top:8px;font-size:clamp(60px,9.777vh,88px);line-height:.98;letter-spacing:-.015em}
 .webs-lead{margin-top:18px;max-width:none;font-size:18px;line-height:1.5}
 .webs-track{width:min(1292px,calc(100vw - 112px));gap:18px;margin:0 auto;padding:0;overflow:visible;scroll-snap-type:none}
 .webs-style-card{flex:1 1 0;width:auto;min-width:0;height:clamp(260px,38.888vh,350px);padding:20px;border-radius:22px;box-shadow:0 24px 60px rgba(0,0,0,.45)}
 .webs-style-card.is-lujo{box-shadow:0 0 0 1px rgba(255,255,255,.2),0 0 44px rgba(242,242,240,.25)}
 .webs-card-phrase{margin-top:clamp(44px,4.86vw,70px);font-size:clamp(22px,2.222vw,32px);line-height:1.04}
 .webs-card-reserve{margin-top:16px;padding:5px 12px;font-size:11px}
 .webs-card-go{font-size:14px}
 .webs-progress{margin-top:6px;gap:8px}
 .webs-progress button{width:22px;height:22px}
 .webs-progress button.is-active::before{width:22px}


 .webs-write{left:50%;right:auto;bottom:44px;min-height:54px;padding:0 34px;transform:translateX(-50%);font-size:15px;box-shadow:0 0 30px var(--color-light-glow)}
}

@media (prefers-reduced-motion:reduce){
 .webs-mark,.webs-mode-scrim,.webs-mode-menu,.webs-mode-menu a,.webs-style-card,.webs-progress button::before,.webs-contact-panel,.webs-options span,.webs-submit{transition:none}
}

.webs-build-page{scroll-snap-type:none}
.webs-build-page body{min-height:100svh;display:grid;place-items:center;padding:var(--space-5);background:radial-gradient(circle at 50% 45%,var(--color-glass-hover),var(--color-void) 70%)}
.webs-build{width:min(100%,720px);padding:clamp(var(--space-6),8vw,var(--space-9));border:var(--border-strong);border-radius:var(--radius-lg);background:var(--color-glass);text-align:center}
.webs-build h1{margin-top:var(--space-4);font-size:clamp(var(--text-h2),10vw,var(--text-h1));line-height:var(--leading-h1);letter-spacing:var(--tracking-h1)}
.webs-build p:not(.webs-kicker){max-width:34ch;margin:var(--space-4) auto 0;color:var(--color-text-3);line-height:var(--leading-body)}
.webs-build-actions{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-6)}
.webs-build-actions a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 var(--space-4);border:var(--border-strong);border-radius:var(--radius-sm);color:var(--color-text-1);text-decoration:none;font-size:var(--text-body-sm)}
.webs-build-actions a:last-child{border-color:transparent;color:var(--color-text-3)}
.webs-build-actions a:focus-visible{outline:2px solid var(--color-light);outline-offset:3px}
@media (hover:hover) and (pointer:fine){.webs-build-actions a:hover{border-color:var(--color-light);color:var(--color-text-1)}}

.webs-write.is-hidden{opacity:0;visibility:hidden;pointer-events:none}
.webs-style-card.is-servicio{background:linear-gradient(180deg,#151515,#0a0a0a);color:#ecebe8;border-color:rgba(242,242,240,.3)}
@media (hover:hover) and (pointer:fine){.webs-style-card.is-servicio:hover{border-color:rgba(255,255,255,.7)}}
.webs-style-card.is-servicio:focus-visible{border-color:rgba(255,255,255,.7)}
.webs-video{inset:0;width:min(920px,calc(100vw - 24px));max-width:none;margin:auto;padding:16px;border:1px solid rgba(242,242,240,.3);border-radius:22px;background:#050505;color:#f2f2f0}
.webs-video::backdrop{background:rgba(0,0,0,.85)}
.webs-video video{width:100%;height:auto;display:block;border-radius:14px}
.webs-video-close{position:absolute;z-index:1;top:24px;left:24px;width:44px;height:44px;border:1px solid rgba(242,242,240,.3);border-radius:50%;background:#050505;color:#f2f2f0;font:var(--weight-regular) var(--text-h4)/1 var(--font-sans);cursor:pointer}
.webs-video-note{margin-top:12px;font-size:var(--text-caption);line-height:1.5;color:rgba(242,242,240,.65)}
.webs-video-contact{margin-top:16px}
.webs-video button:focus-visible{outline:2px solid #f2f2f0;outline-offset:3px}
@media (hover:hover) and (pointer:fine){.webs-video-close:hover{border-color:#f2f2f0}.webs-video-contact:hover{background:#f2f2f0;color:#050505}}
.webs-note{margin:var(--space-3) auto 0;max-width:46ch;text-align:center;font:var(--weight-regular) var(--text-caption)/1.5 var(--font-sans);color:var(--color-text-3)}
#entrada{position:fixed;inset:0;z-index:9999;background:#000;pointer-events:auto}
#entrada canvas{position:absolute;inset:0;width:100%;height:100%}
#entrada.is-done{pointer-events:none}
.webs-note a{color:inherit;text-decoration:underline;text-underline-offset:3px}
.webs-note a:focus-visible{outline:2px solid var(--color-light);outline-offset:3px}
.webs-video-text{margin-top:12px;color:var(--color-text-2);font:var(--weight-regular) var(--text-body-sm)/1.5 var(--font-sans)}
.webs-video-text summary{cursor:pointer}
.webs-video-text summary:focus-visible{outline:2px solid var(--color-light);outline-offset:3px}
.webs-video-text p{margin-top:var(--space-2)}
.webs-footer{padding:var(--space-6) var(--space-5) 112px;text-align:center;color:var(--color-text-3);font:var(--weight-regular) var(--text-caption)/1.5 var(--font-sans)}
.webs-footer nav{display:flex;justify-content:center;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-2)}
.webs-footer a{color:inherit;text-decoration:underline;text-underline-offset:3px}
.webs-footer a:focus-visible{outline:2px solid var(--color-light);outline-offset:3px}
.webs-plans{max-height:calc(100svh - 24px);overflow-y:auto;padding:72px 16px 16px}
.webs-plans h2{font-size:var(--text-h3);line-height:var(--leading-h3);letter-spacing:var(--tracking-h3)}
.webs-plans-intro,.webs-plans-quote{margin-top:var(--space-3);font:var(--weight-regular) var(--text-body-sm)/1.5 var(--font-sans);color:var(--color-text-2)}
.webs-plans-grid{display:grid;grid-template-columns:1fr;gap:var(--space-3);margin-top:var(--space-5)}
.webs-page .webs-plans-grid section{padding:var(--space-4);border:var(--border);border-radius:var(--radius-sm);background:var(--color-glass)}
.webs-plans-grid h3{font:var(--weight-medium) var(--text-body-sm)/1.4 var(--font-sans);color:var(--color-text-1)}
.webs-plans-grid ul{margin:var(--space-3) 0 0;padding-left:var(--space-4)}
.webs-plans-grid li{font:var(--weight-regular) var(--text-body-sm)/1.5 var(--font-sans);color:var(--color-text-2)}
.webs-plans-grid li+li{margin-top:var(--space-2)}
.webs-plans-quote{color:var(--color-text-1)}
@media (min-width:900px){.webs-plans-grid{grid-template-columns:repeat(3,1fr)}}
.webs-plans-terms{display:block;width:max-content;max-width:100%;margin:var(--space-4) auto 0;color:var(--color-text-2);font:var(--weight-regular) var(--text-body-sm)/1.5 var(--font-sans);text-align:center;text-decoration:underline;text-underline-offset:3px}
.webs-plans-terms:focus-visible{outline:2px solid var(--color-light);outline-offset:3px}

.legal-page{height:auto;overflow-x:hidden;overflow-y:auto;scroll-snap-type:none;background:var(--color-void)}
.legal-page body{min-height:100svh;overflow:visible;background:var(--color-void);color:var(--color-text-2)}
.legal-header{display:flex;align-items:center;justify-content:space-between;width:min(100% - 32px,72ch);margin:0 auto;padding:24px 0}
.legal-mark{display:grid;width:48px;height:48px;place-items:center;border:var(--border-strong);border-radius:50%;color:var(--color-text-1);font:var(--weight-medium) var(--text-caption)/1 var(--font-sans);letter-spacing:.1em;text-decoration:none}
.legal-back{color:var(--color-text-2);font:var(--weight-regular) var(--text-body-sm)/1.5 var(--font-sans);text-decoration:underline;text-underline-offset:3px}
.legal-shell{width:min(100% - 32px,72ch);margin:0 auto;padding:clamp(40px,7vw,80px) 0 96px}
.legal-doc{font:var(--weight-regular) var(--text-body)/1.75 var(--font-sans);color:var(--color-text-2)}
html[lang="en"] .legal-doc[data-doc="es"],html:not([lang="en"]) .legal-doc[data-doc="en"]{display:none}
.legal-doc h1{color:var(--color-text-1);font-family:var(--font-serif);font-size:clamp(var(--text-h2),7vw,var(--text-h1));line-height:var(--leading-h1);letter-spacing:var(--tracking-h1)}
.legal-doc h2{margin-top:var(--space-7);color:var(--color-text-1);font-family:var(--font-serif);font-size:var(--text-h3);line-height:var(--leading-h3);letter-spacing:var(--tracking-h3)}
.legal-doc h3{margin-top:var(--space-6);color:var(--color-text-1);font-family:var(--font-serif);font-size:var(--text-h4);line-height:var(--leading-h4)}
.legal-doc p,.legal-doc ul,.legal-doc ol,.legal-doc table{margin-top:var(--space-4)}
.legal-doc ul,.legal-doc ol{padding-left:clamp(24px,5vw,40px)}
.legal-doc li+li{margin-top:var(--space-2)}
.legal-doc strong{color:var(--color-text-1)}
.legal-doc a,.legal-header a{color:var(--color-text-1);text-decoration:underline;text-underline-offset:3px}
.legal-doc a:focus-visible,.legal-header a:focus-visible{outline:2px solid var(--color-light);outline-offset:3px}
.legal-doc code{font-family:var(--font-mono);font-size:.9em;color:var(--color-text-1)}
.legal-doc table{display:block;max-width:100%;overflow-x:auto;border-collapse:collapse;white-space:nowrap}
.legal-doc th,.legal-doc td{padding:var(--space-2) var(--space-3);border:var(--border);text-align:left;vertical-align:top}
.legal-pending{padding:.08em .28em;background:#ffe66d;color:#111;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.legal-footer{padding-bottom:96px}
.legal-page .legal-header{position:relative;inset:auto;height:auto;z-index:1}

.legal-links a{color:var(--color-text-2);text-decoration:underline;text-underline-offset:3px}
.webs-form input[type="text"]:focus-visible,.webs-form textarea:focus-visible{outline:2px solid var(--color-light);outline-offset:4px;border-color:var(--color-light)}
.webs-options input:focus-visible+span{outline:2px solid var(--color-light);outline-offset:3px}

.webs-preview{display:block;margin-top:12px;border-radius:10px;overflow:hidden;aspect-ratio:16/10;background:#f4f0e8;border:1px solid rgba(255,255,255,.18)}
.webs-preview video{display:block;width:100%;height:100%;object-fit:cover}
.webs-card-tag{display:block;margin-top:10px;font:10px/1.2 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;opacity:.78}
.webs-card-reserve{margin-bottom:12px}
.webs-style-card .webs-card-go{padding-top:8px}

.webs-preview{flex:1 1 auto;min-height:0;aspect-ratio:auto;margin-top:10px;border-radius:12px}
.webs-preview video{height:100%}
.webs-card-tag{margin-top:8px;font:11px/1.25 var(--font-mono);letter-spacing:.08em;opacity:.92}
.webs-card-go{padding-top:6px}
.webs-style-card:has(.webs-preview) .webs-card-go{margin-top:6px}
