:root{
  --bg:#141618;
  --cream:#FFFFFF;
  --fg:#FFFFFF;
  --muted:#C3C7CC;
  --accent:#610000;
  --ink:#171719;
  --utility-h:54px;
  --scroll-thumb:#610000;
  --scroll-track:transparent;
  --settings-surface:#111315;
  --settings-line:rgba(255,255,255,.11);

  --font-display:"Bricolage Grotesque","Arial Black","Helvetica Neue",sans-serif;
  --font-condensed:"Barlow Condensed","Arial Narrow","Helvetica Neue",sans-serif;
  --font-body:"Instrument Sans","Helvetica Neue",Arial,sans-serif;
  --font-editorial:"Newsreader",Georgia,serif;
  --font-mono:"IBM Plex Mono",Consolas,monospace;
}

*{box-sizing:border-box}

html,body{
  margin:0;
  width:100%;
  height:100%;
  overflow:hidden;
  background:var(--bg);
  color:var(--fg);
}

body{
  font-family:var(--font-body);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

button{font:inherit}

.intro{
  position:relative;
  width:100%;
  height:100dvh;
  min-height:540px;
  overflow:hidden;
  isolation:isolate;
  background:var(--bg);
}

.stage{
  position:relative;
  z-index:2;
  width:100%;
  height:100%;
  display:grid;
  place-items:center;
  padding:clamp(22px,5vw,72px);
}

.scene{
  position:absolute;
  width:min(92vw,1180px);
  height:min(80vh,730px);
  display:grid;
  place-items:center;
  text-align:center;
  pointer-events:none;
  opacity:0;
}

/* 1 — Escalera.
   Tipografía condensada editorial y caja suficientemente alta para que
   ningún glifo quede cortado al entrar o apagarse. */
.list{
  width:min(88vw,790px);
  display:grid;
  justify-items:start;
  gap:clamp(8px,1vw,13px);
}

.list-row{
  position:relative;
  overflow:hidden;
  height:1.18em;
  line-height:1.03;
  padding-bottom:.10em;
  font-family:var(--font-condensed);
  font-size:clamp(42px,6vw,78px);
  letter-spacing:.005em;
  font-weight:700;
  color:var(--fg);
  white-space:nowrap;
}

.list-row span{
  display:block;
  transform:translateY(112%);
  opacity:0;
  will-change:transform,opacity,color;
}

.list-row:nth-child(2){margin-left:clamp(15px,2vw,26px)}
.list-row:nth-child(3){margin-left:clamp(30px,4vw,52px)}
.list-row:nth-child(4){margin-left:clamp(45px,6vw,78px)}
.list-row:nth-child(5){margin-left:clamp(60px,8vw,104px)}
.list-row:nth-child(6){margin-left:clamp(75px,10vw,130px)}

/* 2 — Microeditor de PRESENCIA.
   PRESENCIA no cambia de color por estar activa: permanece marfil.
   Sólo una selección real invierte crema/grafito. */
.presence-mover{
  position:absolute;
  z-index:14;
  left:0;
  top:0;
  opacity:0;
  pointer-events:none;
  font-family:var(--font-condensed);
  font-size:clamp(42px,6vw,78px);
  line-height:1.03;
  letter-spacing:.005em;
  font-weight:700;
  color:var(--fg);
  white-space:nowrap;
  transform-origin:top left;
  padding:.02em .055em .06em;
  border-radius:.06em;
  will-change:transform,opacity,background,color;
}

.presence-mover.is-selected{
  background:var(--cream);
  color:var(--ink);
}

.type-toolbar{
  position:absolute;
  z-index:30;
  left:0;
  top:0;
  opacity:0;
  pointer-events:none;
  display:flex;
  align-items:center;
  gap:5px;
  padding:5px;
  border:1px solid rgba(231,225,215,.16);
  border-radius:11px;
  background:rgba(34,33,38,.97);
  box-shadow:0 12px 34px rgba(0,0,0,.28);
  backdrop-filter:blur(14px);
  transform:translateY(6px) scale(.97);
  will-change:opacity,transform;
}

.type-tool{
  position:relative;
  min-width:38px;
  height:34px;
  padding:0 9px;
  border:0;
  border-radius:7px;
  display:grid;
  place-items:center;
  background:transparent;
  color:rgba(243,240,233,.78);
  font-family:var(--font-mono);
  font-size:12px;
  font-weight:600;
  line-height:1;
  letter-spacing:-.02em;
}

.type-tool.case{
  min-width:42px;
  letter-spacing:.01em;
}

.type-tool.is-clicked{
  background:var(--accent);
  color:var(--fg);
}

.type-sep{
  width:1px;
  height:18px;
  margin:0 1px;
  background:rgba(231,225,215,.14);
}

/* 3 — Editor principal */
.editor-shell{
  position:relative;
  width:min(94vw,1100px);
  min-height:300px;
  display:grid;
  place-items:center;
}

.editor-line{
  position:relative;
  display:flex;
  align-items:baseline;
  justify-content:center;
  flex-wrap:wrap;
  font-family:var(--font-display);
  font-size:clamp(46px,7.15vw,100px);
  line-height:.98;
  letter-spacing:-.058em;
  font-weight:650;
  white-space:nowrap;
  transform-origin:center center;
}

.prefix{
  display:inline-flex;
  align-items:baseline;
}

.presence-target{
  display:inline-block;
}

.editable{
  position:relative;
  display:inline-block;
  margin-left:.20em;
  width:3.65em;
  text-align:left;
  isolation:isolate;
}

.word-base{
  position:relative;
  z-index:1;
  display:inline-block;
  white-space:nowrap;
}

.word-base.editorial-word{
  font-family:var(--font-editorial);
  font-style:italic;
  font-weight:560;
  letter-spacing:-.035em;
  color:var(--accent);
}

.selection{
  position:absolute;
  z-index:3;
  left:-.045em;
  top:-.03em;
  bottom:-.02em;
  width:0;
  overflow:hidden;
  border-radius:.07em;
  background:var(--cream);
  transform-origin:left center;
}

.selection-copy{
  position:absolute;
  left:.045em;
  top:.03em;
  color:var(--ink);
  white-space:nowrap;
  font-family:var(--font-display);
  line-height:.98;
  letter-spacing:-.058em;
  font-weight:650;
}

.caret{
  display:none;
  position:absolute;
  left:0;
  top:.08em;
  width:.052em;
  height:.82em;
  border-radius:999px;
  background:var(--accent);
}

.pointer,
.presence-pointer{
  position:absolute;
  z-index:45;
  width:28px;
  height:36px;
  opacity:0;
  left:0;
  top:0;
  filter:drop-shadow(0 5px 11px rgba(0,0,0,.42));
  will-change:transform,opacity;
}

.pointer svg,
.presence-pointer svg{
  display:block;
  width:100%;
  height:100%;
}

.delete-button{
  position:absolute;
  z-index:18;
  opacity:0;
  padding:9px 13px 8px;
  border-radius:999px;
  background:var(--accent);
  color:var(--fg);
  font-family:var(--font-mono);
  font-size:11.5px;
  font-weight:700;
  line-height:1;
  letter-spacing:.10em;
  text-transform:uppercase;
  box-shadow:0 10px 28px rgba(0,0,0,.26);
  white-space:nowrap;
}

/* 4 — Continuación */
.process-list{
  width:min(88vw,860px);
  display:grid;
  justify-items:start;
  gap:clamp(10px,1.2vw,15px);
  transform:translateY(clamp(68px,10vh,96px));
}

.process-row{
  position:relative;
  overflow:hidden;
  height:1.16em;
  line-height:1.03;
  padding-bottom:.08em;
  font-family:var(--font-condensed);
  font-size:clamp(42px,6vw,78px);
  letter-spacing:.005em;
  font-weight:700;
  white-space:nowrap;
}

.process-row span{
  display:block;
  transform:translateY(112%);
  opacity:0;
  will-change:transform,opacity;
}

.process-row:nth-child(2){margin-left:clamp(25px,4vw,55px)}
.process-row:nth-child(3){margin-left:clamp(50px,8vw,110px)}

/* Cierre */
.logo-wrap{
  width:min(88vw,1040px);
  display:grid;
  justify-items:center;
  gap:clamp(8px,1vw,12px);
}

.logo-mask{
  width:100%;
  aspect-ratio:1944/344;
  display:grid;
  place-items:center;
  overflow:hidden;
  clip-path:inset(0 50% 0 50%);
}

.logo-mask img{
  display:block;
  width:94%;
  height:auto;
  max-width:100%;
  max-height:100%;
  object-fit:contain;
}

.logo-subtitle{
  font-family:var(--font-body);
  font-size:clamp(15px,1.6vw,21px);
  line-height:1.4;
  letter-spacing:.012em;
  color:var(--muted);
  font-weight:500;
  opacity:0;
  transform:translateY(9px);
}


.logo-subtitle em{
  font-family:var(--font-editorial);
  font-style:italic;
  font-weight:520;
  color:var(--accent);
  font-size:1.13em;
}

.enter-button{
  margin-top:clamp(14px,1.7vw,18px);
  min-width:224px;
  min-height:54px;
  padding:0 12px 0 22px;
  border:1px solid rgba(255,255,255,.24);
  border-radius:4px;
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  background:rgba(255,255,255,.02);
  color:var(--fg);
  font-family:var(--font-body);
  font-size:16px;
  font-weight:600;
  letter-spacing:.015em;
  opacity:0;
  transform:translateY(10px);
  pointer-events:none;
  cursor:pointer;
  transition:background .28s ease,color .28s ease,border-color .28s ease,transform .28s ease;
}

.enter-button::after{
  content:'↗';
  width:30px;
  height:30px;
  display:grid;
  place-items:center;
  flex:0 0 30px;
  border-radius:2px;
  background:var(--accent);
  color:#fff;
  font-size:15px;
  line-height:1;
  transition:transform .28s ease,background .28s ease;
}

.enter-button:hover,
.enter-button:focus-visible{
  background:var(--fg);
  color:var(--bg);
  border-color:var(--fg);
  transform:translateY(8px);
  outline:none;
}

.enter-button:hover::after,
.enter-button:focus-visible::after{
  background:#760000;
  transform:translate(2px,-2px);
}

.enter-button.visible{pointer-events:auto}

.entry-dialog{
  position:fixed;
  z-index:120;
  inset:0;
  display:grid;
  place-items:center;
  padding:clamp(24px,6vw,72px);
  background:var(--bg);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .42s ease,visibility .42s ease;
}

.entry-dialog.open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}

.entry-dialog__content{
  width:min(92vw,760px);
  display:grid;
  justify-items:center;
  text-align:center;
  transform:translateY(16px);
  transition:transform .42s cubic-bezier(.2,.75,.25,1);
}

.entry-dialog.open .entry-dialog__content{transform:translateY(0)}


.entry-dialog__title{
  margin:0;
  max-width:700px;
  font-family:var(--font-display);
  font-size:clamp(30px,4.6vw,58px);
  line-height:1.02;
  letter-spacing:-.045em;
  font-weight:620;
  color:var(--fg);
}

.entry-dialog__copy{
  margin:22px 0 0;
  max-width:590px;
  color:rgba(255,255,255,.66);
  font-size:clamp(14px,1.45vw,18px);
  line-height:1.55;
}

.entry-dialog__actions{
  margin-top:32px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  flex-wrap:wrap;
}

.entry-dialog__button{
  min-width:136px;
  min-height:46px;
  padding:0 20px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:999px;
  background:transparent;
  color:var(--fg);
  font-family:var(--font-body);
  font-size:14.5px;
  font-weight:600;
  cursor:pointer;
  transition:background .25s ease,color .25s ease,border-color .25s ease,transform .25s ease;
}

.entry-dialog__button:hover,
.entry-dialog__button:focus-visible{
  border-color:rgba(255,255,255,.36);
  transform:translateY(-1px);
  outline:none;
}

.entry-dialog__button--primary{
  border-color:var(--accent);
  background:var(--accent);
}

.entry-dialog__button--primary:hover,
.entry-dialog__button--primary:focus-visible{
  border-color:#7b0000;
  background:#7b0000;
  color:#fff;
}

.site-shell{
  position:fixed;
  z-index:1;
  inset:0;
  overflow:hidden;
  background:var(--bg);
  opacity:0;
  pointer-events:none;
  transition:opacity .62s ease;
}

body.site-entered .site-shell,
html.returning-visitor .site-shell{
  opacity:1;
  pointer-events:auto;
}

body.site-entered .intro{
  opacity:0;
  pointer-events:none;
  transition:opacity .62s ease;
}

html.returning-visitor .intro,
html.returning-visitor .entry-dialog{
  display:none;
}

.utility-bar{
  position:absolute;
  z-index:45;
  top:0;
  left:0;
  width:100%;
  height:var(--utility-h);
  display:flex;
  align-items:stretch;
  overflow:hidden;
  background:var(--bg);
  border-bottom:1px solid rgba(255,255,255,.08);
}

.utility-bar__contact{
  position:relative;
  width:60%;
  min-width:620px;
  height:100%;
  padding:0 72px 0 clamp(34px,17vw,360px);
  display:flex;
  align-items:center;
  gap:28px;
  color:#fff;
  background:var(--accent);
  clip-path:polygon(0 0,100% 0,calc(100% - 44px) 100%,0 100%);
}

.utility-bar__contact-link{
  min-width:0;
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:#fff;
  text-decoration:none;
  font-family:var(--font-body);
  font-size:14px;
  font-weight:600;
  line-height:1;
  letter-spacing:0;
  white-space:nowrap;
  transition:opacity .22s ease;
}

.utility-bar__contact-link:hover,
.utility-bar__contact-link:focus-visible{
  opacity:.72;
  outline:none;
}

.utility-bar__contact-link svg{
  width:17px;
  height:17px;
  flex:0 0 17px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.utility-bar__socials{
  min-width:0;
  flex:1 1 auto;
  padding:0 34px 0 clamp(58px,7vw,140px);
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:22px;
  color:#fff;
  background:var(--bg);
}

.utility-social{
  width:30px;
  height:30px;
  padding:0;
  border:0;
  display:grid;
  place-items:center;
  background:transparent;
  color:#fff;
  cursor:default;
  transition:color .22s ease,transform .22s ease;
}

.utility-social:hover{
  color:var(--accent);
  transform:translateY(-1px);
}

.utility-social svg{
  width:17px;
  height:17px;
  fill:currentColor;
}

.site-header{
  position:absolute;
  z-index:40;
  top:var(--utility-h);
  left:0;
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:clamp(16px,2.5vw,28px) clamp(20px,4vw,54px);
  background:rgba(20,22,24,.78);
  border-bottom:1px solid rgba(255,255,255,.07);
  box-shadow:0 10px 32px rgba(0,0,0,.08);
  -webkit-backdrop-filter:blur(16px) saturate(112%);
  backdrop-filter:blur(16px) saturate(112%);
  pointer-events:none;
}

.site-brand,
.settings-toggle,
.language-toggle,
.menu-toggle{
  pointer-events:auto;
}

.site-header__actions{
  display:flex;
  align-items:center;
  gap:10px;
  pointer-events:auto;
}

.site-brand{
  width:clamp(136px,14vw,190px);
  padding:0;
  border:0;
  background:transparent;
  cursor:pointer;
  opacity:.98;
  transition:opacity .25s ease,transform .25s ease;
}

.site-brand:hover,
.site-brand:focus-visible{
  opacity:.76;
  transform:translateY(-1px);
  outline:none;
}

.site-brand img{
  display:block;
  width:100%;
  height:auto;
}

.settings-toggle,
.language-toggle,
.menu-toggle{
  position:relative;
  width:52px;
  height:52px;
  padding:0;
  border:1px solid rgba(255,255,255,.28);
  border-radius:2px;
  display:grid;
  place-items:center;
  background:rgba(255,255,255,.015);
  color:var(--fg);
  cursor:pointer;
  transition:border-color .26s ease,background .26s ease,color .26s ease;
}

.settings-toggle:hover,
.settings-toggle:focus-visible,
.language-toggle:hover,
.language-toggle:focus-visible,
.menu-toggle:hover,
.menu-toggle:focus-visible{
  border-color:rgba(255,255,255,.68);
  background:rgba(255,255,255,.055);
  outline:none;
}


.settings-toggle svg{
  width:23px;
  height:23px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
  transition:transform .42s cubic-bezier(.2,.75,.25,1);
}

.settings-toggle:hover svg,
.settings-toggle:focus-visible svg{
  transform:rotate(28deg);
}

.language-toggle img{
  display:block;
  width:28px;
  height:28px;
  object-fit:contain;
}

body.language-open .language-toggle{
  border-color:var(--accent);
  background:var(--accent);
}

.menu-toggle__icon{
  position:relative;
  width:21px;
  height:15px;
}

.menu-toggle__line{
  position:absolute;
  left:0;
  width:100%;
  height:1.5px;
  background:currentColor;
  transform-origin:center;
  transition:top .34s cubic-bezier(.2,.75,.25,1),transform .34s cubic-bezier(.2,.75,.25,1),opacity .2s ease,color .25s ease;
}

.menu-toggle__line:nth-child(1){top:0}
.menu-toggle__line:nth-child(2){top:6.75px}
.menu-toggle__line:nth-child(3){top:13.5px}

body.menu-open .menu-toggle{
  border-color:rgba(255,255,255,.42);
}

body.menu-open .menu-toggle__line:nth-child(1){top:6.75px;transform:rotate(45deg)}
body.menu-open .menu-toggle__line:nth-child(2){opacity:0}
body.menu-open .menu-toggle__line:nth-child(3){top:6.75px;transform:rotate(-45deg)}

.site-content{
  position:absolute;
  z-index:2;
  inset:0;
  background:var(--bg);
  transition:opacity .28s ease,transform .46s cubic-bezier(.2,.75,.25,1);
}

body.menu-open .site-content,
body.language-open .site-content{
  opacity:0;
  transform:scale(.985);
  pointer-events:none;
}

.site-view{
  position:absolute;
  inset:0;
  display:none;
  background:var(--bg);
}

.site-view.is-active{display:block}

.home-hero{
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:82dvh;
  overflow:hidden;
  background:#e8e6e1;
  color:#101214;
  isolation:isolate;
}

.home-hero__visual{
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
}

.home-hero__image{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  background-image:url('/assets/home-mural.webp');
  background-size:cover;
  background-position:center center;
  background-repeat:no-repeat;
}

.home-hero__image--mono{
  filter:grayscale(1) contrast(1.04) brightness(.97);
}

.home-hero__image--color{
  clip-path:circle(0px at 50% 50%);
  transition:clip-path .34s cubic-bezier(.2,.75,.25,1);
  will-change:clip-path;
}

.home-hero__content{
  position:relative;
  z-index:2;
  width:min(46vw,760px);
  height:100dvh;
  padding:calc(var(--utility-h) + clamp(118px,10vw,148px)) 0 clamp(44px,6vh,76px) clamp(28px,5vw,88px);
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:flex-start;
}

.home-hero__phrase-wrap{
  height:clamp(240px,29vw,410px);
  display:flex;
  align-items:flex-end;
}

.home-hero__phrase{
  margin:0;
  max-width:12.5ch;
  font-family:var(--font-display);
  font-size:clamp(48px,5.35vw,96px);
  font-weight:580;
  line-height:.93;
  letter-spacing:-.062em;
  text-wrap:balance;
  opacity:1;
  filter:blur(0);
  transform:translateY(0) scale(1);
  transition:
    opacity .42s cubic-bezier(.22,.72,.26,1),
    transform .56s cubic-bezier(.22,.72,.26,1),
    filter .44s ease;
  will-change:opacity,transform,filter;
}

.home-hero__phrase.is-changing{
  opacity:0;
  filter:blur(5px);
  transform:translateY(-12px) scale(.992);
}

.home-hero__phrase.is-entering{
  opacity:0;
  filter:blur(5px);
  transform:translateY(16px) scale(.992);
}

.home-hero__phrase span{
  color:var(--accent);
  font-weight:720;
}

.home-hero__subline{
  margin:clamp(20px,2.2vw,30px) 0 0;
  font-family:var(--font-body);
  font-size:clamp(16px,1.5vw,22px);
  font-weight:500;
  line-height:1.35;
  letter-spacing:-.018em;
  color:rgba(16,18,20,.70);
}

.home-hero__cta{
  margin-top:clamp(24px,3vw,38px);
  min-height:56px;
  padding:0 16px 0 22px;
  border:1px solid rgba(16,18,20,.68);
  border-radius:3px;
  display:inline-flex;
  align-items:center;
  gap:28px;
  background:rgba(20,22,24,.97);
  color:#fff;
  font-family:var(--font-body);
  font-size:14px;
  font-weight:600;
  letter-spacing:.015em;
  cursor:pointer;
  transition:background .25s ease,color .25s ease,border-color .25s ease,transform .25s ease;
}

.home-hero__cta::after{
  content:'↗';
  width:28px;
  height:28px;
  display:grid;
  place-items:center;
  background:var(--accent);
  color:#fff;
  font-size:14px;
  line-height:1;
  transition:transform .25s ease,background .25s ease;
}

.home-hero__cta:hover,
.home-hero__cta:focus-visible{
  background:#fff;
  color:#111315;
  border-color:#111315;
  transform:translateY(-2px);
  outline:none;
}

.home-hero__cta:hover::after,
.home-hero__cta:focus-visible::after{
  background:#780000;
  transform:translate(2px,-2px);
}

@media(max-width:860px){
  .home-hero{height:100dvh}

  .home-hero__image{
    background-position:62% center;
  }

  .home-hero__visual::after{
    content:'';
    position:absolute;
    inset:0;
    background:linear-gradient(90deg,rgba(235,233,228,.98) 0%,rgba(235,233,228,.94) 53%,rgba(235,233,228,.34) 78%,rgba(235,233,228,.10) 100%);
  }

  .home-hero__content{
    width:min(82vw,650px);
    height:100%;
    padding:calc(var(--utility-h) + 116px) 22px 42px;
  }

  .home-hero__phrase-wrap{
    height:230px;
  }

  .home-hero__phrase{
    max-width:12ch;
    font-size:clamp(44px,10vw,72px);
  }
}

@media(max-width:560px){
  .home-hero{height:100dvh}

  .home-hero__image{
    background-position:68% center;
  }

  .home-hero__content{
    width:100%;
    padding:calc(var(--utility-h) + 108px) 20px 34px;
    justify-content:flex-end;
  }

  .home-hero__phrase-wrap{
    height:215px;
  }

  .home-hero__phrase{
    max-width:11ch;
    font-size:clamp(40px,12vw,58px);
  }

  .home-hero__subline{
    max-width:300px;
    font-size:15px;
  }

  .home-hero__cta{
    min-height:52px;
    font-size:13px;
  }
}

/* Inicio: flujo vertical real, manteniendo las demás vistas aisladas. */
.site-view[data-view="inicio"]{
  overflow-y:auto;
  overflow-x:hidden;
  overscroll-behavior-y:contain;
  scrollbar-width:thin;
  scrollbar-color:var(--scroll-thumb) var(--scroll-track);
}

.site-view[data-view="inicio"]::-webkit-scrollbar{width:8px}
.site-view[data-view="inicio"]::-webkit-scrollbar-track{background:var(--scroll-track)}
.site-view[data-view="inicio"]::-webkit-scrollbar-thumb{
  background:var(--scroll-thumb);
  border-radius:999px;
}

.site-view[data-view="inicio"] .home-hero{
  position:relative;
  inset:auto;
  flex:0 0 auto;
}

.featured-project{
  position:relative;
  min-height:clamp(680px,78dvh,900px);
  margin:0;
  padding:clamp(34px,4.2vh,52px) clamp(26px,4vw,74px) clamp(46px,5.5vh,68px);
  display:block;
  background:
    radial-gradient(circle at 78% 18%,rgba(255,255,255,.035),transparent 24%),
    radial-gradient(circle at 18% 72%,rgba(255,255,255,.022),transparent 30%),
    #141618;
  color:var(--fg);
  overflow:hidden;
  isolation:isolate;
}

.featured-project::before{
  content:'';
  position:absolute;
  z-index:-2;
  left:-3%;
  width:106%;
  bottom:-4%;
  height:58%;
  background:url('/assets/project-red-stroke.webp') center bottom / 100% 100% no-repeat;
  opacity:.98;
}

.featured-project::after{
  content:'';
  position:absolute;
  z-index:-1;
  inset:0;
  pointer-events:none;
  background:radial-gradient(circle at 55% 58%,transparent 0 34%,rgba(0,0,0,.16) 74%,rgba(0,0,0,.30) 100%);
}

.featured-project__header{
  position:relative;
  z-index:2;
  width:min(100%,1840px);
  margin:0 auto clamp(26px,3.2vh,38px);
  display:grid;
  grid-template-columns:minmax(150px,1fr) minmax(0,1420px) minmax(150px,1fr);
  align-items:start;
  gap:24px;
}

.featured-project__header-spacer{grid-column:1}

.featured-project__heading{
  grid-column:2;
  margin:0;
  text-align:center;
  color:var(--fg);
  font-family:var(--font-display);
  font-size:clamp(52px,4.8vw,88px);
  font-weight:620;
  line-height:.94;
  letter-spacing:-.055em;
}

.featured-project__heading span{color:var(--accent)}

.featured-project__controls{
  grid-column:3;
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:10px;
  padding-top:4px;
}

.featured-project__control{
  width:52px;
  height:52px;
  padding:0;
  border:1px solid rgba(255,255,255,.24);
  border-radius:3px;
  display:grid;
  place-items:center;
  background:rgba(255,255,255,.045);
  color:#fff;
  font-family:var(--font-body);
  font-size:28px;
  font-weight:500;
  line-height:1;
  cursor:pointer;
  transition:background .2s ease,border-color .2s ease,color .2s ease,transform .2s ease;
}

.featured-project__control--toggle{font-size:19px}

.featured-project__control:hover,
.featured-project__control:focus-visible{
  background:var(--accent);
  border-color:var(--accent);
  color:#fff;
  transform:translateY(-2px);
  outline:none;
}

.featured-project__control.is-paused{
  background:var(--accent);
  border-color:var(--accent);
}

.featured-project__copy,
.featured-project__visual{
  transition:opacity .22s ease,transform .22s ease;
}

.featured-project__copy.is-switching{
  opacity:0;
  transform:translateX(-10px);
}

.featured-project__visual.is-switching{
  opacity:0;
  transform:translateX(16px);
}

.featured-project__inner{
  position:relative;
  z-index:2;
  width:min(100%,1840px);
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(360px,.72fr) minmax(760px,1.58fr);
  align-items:center;
  gap:clamp(30px,3.5vw,66px);
}

.featured-project__copy{
  max-width:620px;
  align-self:center;
}

.featured-project__title{
  margin:0;
  color:var(--fg);
  font-family:var(--font-display);
  font-size:clamp(70px,5.8vw,108px);
  font-weight:620;
  line-height:.89;
  letter-spacing:-.058em;
}

.featured-project__description{
  margin:clamp(24px,2.3vw,32px) 0 0;
  max-width:50ch;
  color:rgba(255,255,255,.78);
  font-family:var(--font-body);
  font-size:clamp(18px,1.35vw,23px);
  font-weight:430;
  line-height:1.5;
  letter-spacing:-.015em;
}

.featured-project__cta{
  margin-top:clamp(28px,2.8vw,38px);
  min-height:60px;
  padding:0 12px 0 20px;
  border:1px solid rgba(255,255,255,.30);
  border-radius:3px;
  display:inline-flex;
  align-items:center;
  gap:24px;
  background:rgba(20,22,24,.62);
  color:#fff;
  font-family:var(--font-body);
  font-size:14px;
  font-weight:600;
  letter-spacing:.015em;
  cursor:pointer;
  transition:background .2s ease,color .2s ease,border-color .2s ease;
}

.featured-project__cta::after{
  content:'↗';
  width:32px;
  height:32px;
  display:grid;
  place-items:center;
  background:var(--accent);
  color:#fff;
  font-size:14px;
  line-height:1;
}

.featured-project__cta:hover,
.featured-project__cta:focus-visible{
  background:#fff;
  color:#111315;
  border-color:#fff;
  outline:none;
}

.featured-project__visual{
  position:relative;
  min-width:0;
  height:clamp(500px,39vw,720px);
  display:flex;
  align-items:center;
  justify-content:center;
}

.featured-project__device{
  display:block;
  width:min(112%,1480px);
  height:auto;
  max-height:100%;
  object-fit:contain;
  filter:drop-shadow(0 30px 44px rgba(0,0,0,.36));
}

@media(max-width:1100px){
  .featured-project{
    min-height:auto;
    padding:38px 26px 58px;
  }

  .featured-project__header{
    grid-template-columns:1fr;
    gap:20px;
    margin-bottom:30px;
  }

  .featured-project__header-spacer{display:none}

  .featured-project__heading{
    grid-column:1;
    font-size:clamp(48px,8.4vw,76px);
  }

  .featured-project__controls{
    grid-column:1;
    justify-content:center;
    padding-top:0;
  }

  .featured-project__inner{
    grid-template-columns:1fr;
    gap:28px;
  }

  .featured-project__copy{max-width:780px}

  .featured-project__visual{
    width:100%;
    height:clamp(430px,62vw,650px);
  }

  .featured-project__device{width:min(100%,1180px)}
}

@media(max-width:620px){
  .featured-project{
    padding:30px 20px 46px;
  }

  .featured-project::before{
    left:-18%;
    width:136%;
    height:44%;
    bottom:5%;
    background-size:cover;
  }

  .featured-project__header{
    margin-bottom:26px;
    gap:16px;
  }

  .featured-project__heading{
    font-size:clamp(40px,12vw,56px);
  }

  .featured-project__control{
    width:46px;
    height:46px;
    font-size:25px;
  }

  .featured-project__control--toggle{font-size:17px}

  .featured-project__inner{gap:22px}

  .featured-project__title{
    font-size:clamp(52px,15vw,72px);
  }

  .featured-project__description{font-size:17px}

  .featured-project__visual{
    height:clamp(330px,95vw,480px);
  }

  .featured-project__device{
    width:108%;
    max-width:none;
  }
}


.brand-intro{
  position:relative;
  min-height:clamp(620px,76dvh,820px);
  overflow:hidden;
  isolation:isolate;
  background:#ebe9e4;
  color:#151719;
}

.brand-intro__background{
  position:absolute;
  z-index:-3;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
}

.brand-intro::before{
  content:'';
  position:absolute;
  z-index:-2;
  inset:0;
  background:linear-gradient(90deg,rgba(239,238,234,.97) 0%,rgba(239,238,234,.94) 37%,rgba(239,238,234,.72) 51%,rgba(239,238,234,.18) 69%,rgba(239,238,234,0) 82%);
  pointer-events:none;
}

.brand-intro::after{
  content:'';
  position:absolute;
  z-index:-1;
  inset:0;
  pointer-events:none;
  background:radial-gradient(circle at 29% 50%,rgba(255,255,255,.24),transparent 46%);
}

.brand-intro__inner{
  width:min(100%,1920px);
  min-height:inherit;
  margin:0 auto;
  padding:clamp(58px,7vw,116px) clamp(34px,7vw,132px);
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
}

.brand-intro__content{
  width:min(47vw,760px);
  min-height:clamp(340px,28vw,430px);
  display:flex;
  flex-direction:column;
  justify-content:center;
}

.brand-intro__title{
  margin:0;
  color:#141618;
  font-family:var(--font-display);
  font-size:clamp(54px,5vw,92px);
  font-weight:620;
  line-height:.94;
  letter-spacing:-.058em;
  text-wrap:balance;
}

.brand-intro__title em{
  color:var(--accent);
  font-family:var(--font-editorial);
  font-weight:600;
  font-style:italic;
  letter-spacing:-.035em;
}

.brand-intro__text{
  margin:clamp(24px,2.4vw,34px) 0 0;
  max-width:56ch;
  color:rgba(20,22,24,.76);
  font-family:var(--font-body);
  font-size:clamp(18px,1.35vw,23px);
  font-weight:440;
  line-height:1.55;
  letter-spacing:-.014em;
}

.brand-intro__cta{
  min-height:68px;
  margin-top:clamp(24px,2.4vw,34px);
  padding:0 12px 0 22px;
  border:1px solid rgba(20,22,24,.70);
  border-radius:3px;
  display:inline-flex;
  align-items:center;
  gap:24px;
  background:#141618;
  color:#fff;
  font-family:var(--font-body);
  font-size:15.5px;
  font-weight:650;
  letter-spacing:.01em;
  cursor:pointer;
  transition:background .22s ease,color .22s ease,border-color .22s ease;
}

.brand-intro__cta::after{
  content:'↗';
  width:32px;
  height:32px;
  display:grid;
  place-items:center;
  background:var(--accent);
  color:#fff;
  font-size:14px;
  line-height:1;
}

.brand-intro__cta:hover,
.brand-intro__cta:focus-visible{
  background:var(--accent);
  color:#fff;
  border-color:var(--accent);
  outline:none;
}

@media(max-width:980px){
  .brand-intro{
    min-height:680px;
  }

  .brand-intro::before{
    background:linear-gradient(90deg,rgba(239,238,234,.98) 0%,rgba(239,238,234,.94) 50%,rgba(239,238,234,.64) 68%,rgba(239,238,234,.18) 88%);
  }

  .brand-intro__inner{
    padding:64px 34px;
  }

  .brand-intro__content{
    width:min(68vw,680px);
    min-height:360px;
  }
}

@media(max-width:620px){
  .brand-intro{
    min-height:720px;
  }

  .brand-intro__background{
    object-position:62% center;
  }

  .brand-intro::before{
    background:linear-gradient(90deg,rgba(239,238,234,.98) 0%,rgba(239,238,234,.94) 72%,rgba(239,238,234,.54) 100%);
  }

  .brand-intro__inner{
    padding:54px 20px 46px;
    justify-content:flex-end;
  }

  .brand-intro__content{
    width:100%;
    min-height:420px;
    justify-content:flex-end;
  }

  .brand-intro__title{
    max-width:12ch;
    font-size:clamp(46px,13vw,64px);
  }

  .brand-intro__text{
    max-width:35ch;
    font-size:17px;
  }

  .brand-intro__cta{
    min-height:54px;
    font-size:13px;
  }
}

.language-panel{
  position:absolute;
  z-index:30;
  inset:0;
  display:flex;
  align-items:center;
  background:var(--bg);
  visibility:hidden;
  pointer-events:none;
  clip-path:circle(0 at calc(100% - clamp(108px,10vw,142px)) calc(var(--utility-h) + clamp(40px,5vw,62px)));
  transition:clip-path .68s cubic-bezier(.72,0,.18,1),visibility .68s;
}

body.language-open .language-panel{
  visibility:visible;
  pointer-events:auto;
  clip-path:circle(150vmax at calc(100% - clamp(108px,10vw,142px)) calc(var(--utility-h) + clamp(40px,5vw,62px)));
}

.language-panel__inner{
  width:100%;
  padding:calc(var(--utility-h) + clamp(108px,14vh,150px)) clamp(24px,8vw,120px) clamp(36px,6vh,72px);
}


.language-panel__heading{
  margin:0 0 clamp(10px,1.8vh,16px);
  max-width:880px;
  color:var(--fg);
  font-family:var(--font-display);
  font-size:clamp(38px,5.6vw,80px);
  font-weight:620;
  line-height:.98;
  letter-spacing:-.045em;
}

.language-panel__prompt{
  margin:0 0 clamp(26px,4.2vh,44px);
  color:var(--accent);
  font-family:var(--font-body);
  font-size:clamp(17px,1.8vw,23px);
  font-weight:600;
  line-height:1.25;
  letter-spacing:.01em;
}

.language-panel__list{
  width:min(100%,900px);
  margin:0;
  padding:0;
  list-style:none;
}

.language-panel__item{
  width:auto;
  min-height:clamp(56px,7vh,74px);
  padding:0 2px;
  border:0;
  display:flex;
  align-items:center;
  gap:14px;
  background:transparent;
  color:rgba(255,255,255,.72);
  text-align:left;
  cursor:pointer;
  transition:color .22s ease,transform .28s cubic-bezier(.2,.75,.25,1);
}

.language-panel__flag{
  font-size:22px;
  line-height:1;
  filter:saturate(.88);
}

.language-panel__label{
  display:inline-flex;
  align-items:baseline;
  gap:10px;
  min-width:0;
}

.language-panel__name{
  font-family:var(--font-condensed);
  font-size:clamp(30px,4.2vw,54px);
  font-weight:700;
  line-height:1;
  letter-spacing:-.018em;
}


.language-panel__item:hover,
.language-panel__item:focus-visible{
  color:var(--accent);
  transform:translateX(8px);
  outline:none;
}

.language-panel__item.is-active{
  color:var(--accent);
  transform:none;
}

.site-menu{
  position:absolute;
  z-index:30;
  inset:0;
  display:flex;
  align-items:center;
  background:var(--bg);
  visibility:hidden;
  pointer-events:none;
  clip-path:circle(0 at calc(100% - clamp(46px,7vw,80px)) calc(var(--utility-h) + clamp(40px,5vw,62px)));
  transition:clip-path .68s cubic-bezier(.72,0,.18,1),visibility .68s;
}

body.menu-open .site-menu{
  visibility:visible;
  pointer-events:auto;
  clip-path:circle(150vmax at calc(100% - clamp(46px,7vw,80px)) calc(var(--utility-h) + clamp(40px,5vw,62px)));
}

.site-menu__inner{
  width:100%;
  padding:calc(var(--utility-h) + clamp(92px,12vh,130px)) clamp(24px,8vw,120px) clamp(32px,6vh,72px);
}

.site-menu__list{
  margin:0;
  padding:0;
  list-style:none;
  display:grid;
  gap:clamp(0px,.35vh,4px);
}

.site-menu__clip{
  overflow:visible;
  padding:0;
}

.site-menu__item{
  --delay:0ms;
  width:max-content;
  max-width:100%;
  padding:.11em .05em .15em;
  margin-left:-.05em;
  border:0;
  display:block;
  overflow:visible;
  background:transparent;
  color:var(--fg);
  font-family:var(--font-condensed);
  font-size:clamp(46px,min(7.4vw,8.7vh),100px);
  font-weight:700;
  line-height:1.04;
  letter-spacing:-.025em;
  text-align:left;
  cursor:pointer;
  clip-path:inset(100% -8% -22% -8%);
  transform:translateY(24%);
  opacity:0;
  transition:clip-path .58s cubic-bezier(.2,.75,.25,1),transform .58s cubic-bezier(.2,.75,.25,1),opacity .32s ease,color .22s ease;
}

body.menu-open .site-menu__item{
  clip-path:inset(-20% -8% -22% -8%);
  transform:translateY(0);
  opacity:1;
  transition-delay:var(--delay),var(--delay),var(--delay),0ms;
}

.site-menu__item:hover,
.site-menu__item:focus-visible,
.site-menu__item:active,
.site-menu__item.is-active{
  color:var(--accent);
  outline:none;
}

.site-menu__item.is-active{cursor:default}


.skip-intro{
  position:absolute;
  z-index:52;
  left:50%;
  bottom:max(24px,calc(env(safe-area-inset-bottom) + 14px));
  min-height:36px;
  padding:0 6px;
  border:0;
  display:inline-flex;
  align-items:center;
  gap:10px;
  transform:translateX(-50%);
  background:transparent;
  color:rgba(255,255,255,.50);
  font-family:var(--font-body);
  font-size:12px;
  font-weight:500;
  letter-spacing:.035em;
  white-space:nowrap;
  cursor:pointer;
  transition:color .25s ease;
}

.skip-intro::before{
  content:'';
  width:16px;
  height:1px;
  background:var(--accent);
  transform-origin:left center;
  transition:width .25s ease,background .25s ease;
}

.skip-intro::after{
  content:'↗';
  margin-left:1px;
  color:rgba(255,255,255,.62);
  font-size:12px;
  line-height:1;
  transition:transform .25s ease,color .25s ease;
}

.skip-intro:hover,
.skip-intro:focus-visible{
  color:#fff;
  outline:none;
}

.skip-intro:hover::before,
.skip-intro:focus-visible::before{
  width:26px;
  background:#7a0000;
}

.skip-intro:hover::after,
.skip-intro:focus-visible::after{
  color:#fff;
  transform:translate(2px,-2px);
}

.replay{
  position:absolute;
  z-index:50;
  left:50%;
  bottom:max(24px,calc(env(safe-area-inset-bottom) + 14px));
  transform:translate(-50%,7px);
  border:0;
  background:transparent;
  color:rgba(231,225,215,.48);
  font-family:var(--font-mono);
  font-size:10px;
  letter-spacing:.12em;
  text-transform:uppercase;
  opacity:0;
  pointer-events:none;
  cursor:pointer;
}

.replay.visible{
  pointer-events:auto;
}

@media(max-width:640px){
  :root{--utility-h:68px}

  .utility-bar__contact{
    width:72%;
    min-width:0;
    padding:6px 38px 6px 16px;
    flex-direction:column;
    align-items:flex-start;
    justify-content:center;
    gap:5px;
    clip-path:polygon(0 0,100% 0,calc(100% - 24px) 100%,0 100%);
  }

  .utility-bar__contact-link{
    gap:6px;
    font-size:10px;
  }

  .utility-bar__contact-link svg{
    width:15px;
    height:15px;
    flex-basis:13px;
  }

  .utility-bar__socials{
    padding:0 12px 0 8px;
    gap:10px;
    justify-content:center;
  }

  .utility-social{
    width:21px;
    height:21px;
  }

  .utility-social svg{
    width:13px;
    height:13px;
  }
  .stage{padding:20px}
  .scene{height:min(82vh,700px)}

  .list{
    width:min(92vw,420px);
    gap:7px;
  }

  .list-row,
  .presence-mover{
    font-size:clamp(38px,12vw,54px);
  }

  .list-row:nth-child(2){margin-left:8px}
  .list-row:nth-child(3){margin-left:16px}
  .list-row:nth-child(4){margin-left:24px}
  .list-row:nth-child(5){margin-left:32px}
  .list-row:nth-child(6){margin-left:40px}

  .editor-shell{
    width:94vw;
    min-height:300px;
  }

  .editor-line{
    max-width:350px;
    font-size:clamp(41px,12.2vw,56px);
    line-height:1;
    white-space:normal;
    row-gap:.05em;
  }

  .prefix{
    width:100%;
    justify-content:center;
  }

  .editable{
    margin-left:0;
    margin-top:.08em;
    width:3.65em;
    text-align:left;
  }

  .selection-copy{
    line-height:1;
  }

  .pointer,
  .presence-pointer{
    width:24px;
    height:31px;
  }

  .delete-button{
    font-size:9px;
    padding:8px 10px 7px;
  }

  .process-list{
    width:min(92vw,390px);
    gap:8px;
    transform:translateY(82px);
  }

  .process-row{
    font-size:clamp(38px,12vw,54px);
  }

  .process-row:nth-child(2){margin-left:12px}
  .process-row:nth-child(3){margin-left:24px}

  .logo-wrap{
    width:min(92vw,640px);
    gap:8px;
  }

  .logo-subtitle{
    font-size:14px;
    letter-spacing:.015em;
    max-width:380px;
  }

  .enter-button{
    margin-top:12px;
    min-width:208px;
    min-height:52px;
    font-size:13px;
  }

  .site-header{
    padding:16px 20px;
  }

  .site-brand{
    width:132px;
  }

  .site-header__actions{gap:8px}

  .settings-toggle,
  .language-toggle,
  .menu-toggle{
    width:48px;
    height:48px;
  }

  .language-toggle img{
    width:26px;
    height:26px;
  }

  .language-panel__inner{
    padding:calc(var(--utility-h) + 98px) 20px 28px;
  }


  .language-panel__heading{
    margin-bottom:10px;
    font-size:clamp(34px,10.6vw,50px);
  }

  .language-panel__prompt{
    margin-bottom:22px;
    font-size:14px;
  }

  .language-panel__item{
    min-height:56px;
    gap:10px;
  }

  .language-panel__flag{font-size:20px}
  .language-panel__label{gap:7px}
  .language-panel__name{font-size:clamp(30px,9.2vw,42px)}

  .site-menu__inner{
    padding:calc(var(--utility-h) + 96px) 20px 30px;
  }

  .site-menu__list{
    gap:2px;
  }

  .site-menu__item{
    padding:.11em .05em .15em;
    font-size:clamp(42px,min(14.2vw,9.2vh),66px);
    line-height:1.04;
  }

  .entry-dialog__actions{
    width:100%;
    max-width:320px;
    display:grid;
    grid-template-columns:1fr;
  }

  .entry-dialog__button{width:100%}
}




.concept-stream{
  position:relative;
  width:100%;
  min-height:132px;
  overflow:hidden;
  background:#141618;
  color:#f5f5f2;
}

.concept-stream__field{
  width:100%;
  min-height:132px;
  padding:0 clamp(26px,3.2vw,72px);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:clamp(12px,1.15vw,24px);
}

.concept-stream__word{
  display:flex;
  align-items:center;
  flex:0 1 auto;
  margin:0;
  color:#f5f5f2;
  font-family:var(--font-body);
  font-size:clamp(18px,1.34vw,27px);
  font-weight:650;
  line-height:1;
  letter-spacing:.075em;
  white-space:nowrap;
  opacity:0;
  filter:blur(7px);
  transform:translateY(10px);
  transition:
    opacity .48s ease var(--delay),
    filter .54s ease var(--delay),
    transform .54s cubic-bezier(.2,.75,.25,1) var(--delay);
}

.concept-stream__word:not(:last-child)::after{
  content:"—";
  margin-left:clamp(12px,1.15vw,24px);
  color:#676b6e;
  font-weight:400;
  letter-spacing:0;
}

.concept-stream.is-visible .concept-stream__word{
  opacity:1;
  filter:blur(0);
  transform:translateY(0);
}

.concept-stream__word:nth-child(1){--delay:0ms}
.concept-stream__word:nth-child(2){--delay:90ms}
.concept-stream__word:nth-child(3){--delay:180ms}
.concept-stream__word:nth-child(4){--delay:270ms}
.concept-stream__word:nth-child(5){--delay:360ms}
.concept-stream__word:nth-child(6){--delay:450ms}
.concept-stream__word:nth-child(7){--delay:540ms}
.concept-stream__word:nth-child(8){--delay:630ms}
.concept-stream__word:nth-child(9){--delay:720ms}
.concept-stream__word:nth-child(10){--delay:810ms}
.concept-stream__word:nth-child(11){--delay:900ms}

@media(max-width:1180px){
  .concept-stream{
    min-height:168px;
  }

  .concept-stream__field{
    min-height:168px;
    padding:28px 26px;
    flex-wrap:wrap;
    justify-content:center;
    align-content:center;
    gap:18px 0;
  }

  .concept-stream__word{
    font-size:clamp(17px,2vw,22px);
  }

  .concept-stream__word:not(:last-child)::after{
    margin-left:18px;
    margin-right:18px;
  }
}

@media(max-width:620px){
  .concept-stream{
    min-height:208px;
  }

  .concept-stream__field{
    min-height:208px;
    padding:28px 18px;
    gap:16px 0;
  }

  .concept-stream__word{
    font-size:14px;
    letter-spacing:.06em;
  }

  .concept-stream__word:not(:last-child)::after{
    margin-left:12px;
    margin-right:12px;
  }
}



/* ¿Quiénes somos? — presentación personal */
.about-person{
  position:relative;
  width:100%;
  min-height:clamp(540px,64vh,680px);
  overflow:hidden;
  background:#141618;
  color:#F3F0E9;
  border-top:1px solid rgba(243,240,233,.08);
}

.about-person__inner{
  width:min(100%,1840px);
  min-height:inherit;
  margin:0 auto;
  padding:clamp(62px,4.8vw,82px) clamp(28px,3.2vw,58px) clamp(54px,4.2vw,70px);
  display:grid;
  grid-template-columns:minmax(360px,.58fr) minmax(900px,1.42fr);
  gap:clamp(44px,4.6vw,78px);
  align-items:center;
}

.about-person__title{
  margin:0;
  max-width:650px;
  font-family:var(--font-display);
  font-size:clamp(68px,7vw,118px);
  font-weight:730;
  line-height:.84;
  letter-spacing:-.065em;
  color:#F3F0E9;
}

.about-person__body{
  position:relative;
  align-self:center;
  display:grid;
  grid-template-columns:clamp(300px,20vw,380px) minmax(0,1fr);
  gap:clamp(38px,3.4vw,58px);
  align-items:center;
}

.about-person__portrait{
  position:relative;
  width:100%;
  aspect-ratio:1;
  display:grid;
  place-items:center;
  opacity:0;
  transform:scale(.84) rotate(-5deg);
  transform-origin:center;
  transition:opacity .58s ease,transform .86s cubic-bezier(.16,.8,.24,1);
}

.about-person.is-visible .about-person__portrait{
  opacity:1;
  transform:scale(1) rotate(0deg);
}

.about-person__portrait-frame{
  position:relative;
  width:100%;
  height:100%;
  overflow:hidden;
  border-radius:50%;
  border:2px solid rgba(255,255,255,.92);
  background:transparent;
  box-shadow:none;
}

.about-person__portrait-photo{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:60% 42%;
  filter:grayscale(1);
  transform:scale(1.18);
  transform-origin:60% 42%;
  transition:filter .46s ease, transform .58s cubic-bezier(.2,.75,.25,1);
}

.about-person__portrait:hover .about-person__portrait-photo,
.about-person__portrait:focus-within .about-person__portrait-photo{
  filter:grayscale(0);
  transform:scale(1.21);
}

.about-person__content{
  position:relative;
  padding-left:clamp(24px,2.1vw,36px);
  opacity:0;
  transform:translateX(24px);
  transition:opacity .55s ease .18s,transform .7s cubic-bezier(.16,.8,.24,1) .18s;
}

.about-person__content::before{
  content:'';
  position:absolute;
  left:0;
  top:4px;
  width:5px;
  height:100%;
  background:#610000;
}

.about-person.is-visible .about-person__content{
  opacity:1;
  transform:none;
}

.about-person__name{
  margin:0 0 28px;
  font-family:var(--font-display);
  font-size:clamp(40px,4.2vw,72px);
  font-weight:720;
  line-height:.88;
  letter-spacing:-.055em;
  color:#F3F0E9;
}

.about-person__copy{
  max-width:860px;
}

.about-person__copy p{
  margin:0;
  font-family:var(--font-editorial);
  font-size:clamp(18px,1.32vw,24px);
  font-weight:480;
  line-height:1.24;
  letter-spacing:-.014em;
  color:#F3F0E9;
}

.about-person__copy p + p{
  margin-top:17px;
  color:rgba(243,240,233,.76);
}

@media(max-width:1180px){
  .about-person__inner{
    grid-template-columns:1fr;
    gap:46px;
  }
  .about-person__title{max-width:760px}
  .about-person__body{max-width:1120px;grid-template-columns:320px minmax(0,1fr)}
}

@media(max-width:720px){
  .about-person{min-height:auto}
  .about-person__inner{padding:64px 20px 54px;gap:38px}
  .about-person__title{font-size:clamp(58px,18vw,82px);line-height:.85}
  .about-person__body{grid-template-columns:1fr;gap:34px}
  .about-person__portrait{width:min(78vw,330px);justify-self:center}
  .about-person__content{padding-left:20px}
  .about-person__content::before{width:4px}
  .about-person__name{margin-bottom:24px;font-size:clamp(43px,13vw,62px)}
  .about-person__copy p{font-size:clamp(19px,5.8vw,24px);line-height:1.24}
  .about-person__copy p + p{margin-top:16px}
}

@media(prefers-reduced-motion:reduce){
  .about-person__portrait,
  .about-person__content{
    opacity:1;
    transform:none;
    transition:none;
  }
  .about-person__portrait-photo{
    transition:none;
  }
}



/* ¿Quiénes somos? — perfil / publicaciones */
.about-feed{
  position:relative;
  width:100%;
  overflow:hidden;
  background:#F3F0E9;
  color:#141618;
  border-top:1px solid rgba(20,22,24,.10);
}

.about-feed__inner{
  width:min(100%,1840px);
  margin:0 auto;
  padding:clamp(72px,5.5vw,104px) clamp(28px,3.2vw,58px) clamp(58px,4.8vw,88px);
}

.about-feed__header{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:48px;
  align-items:end;
  padding-bottom:clamp(38px,3.2vw,54px);
  border-bottom:1px solid rgba(20,22,24,.18);
}

.about-feed__title{
  margin:0;
  max-width:760px;
  font-family:var(--font-display);
  font-size:clamp(68px,6.5vw,112px);
  font-weight:730;
  line-height:.90;
  letter-spacing:-.065em;
  color:#141618;
}

.about-feed__profile{
  min-width:330px;
  display:grid;
  grid-template-columns:68px 1fr;
  gap:16px;
  align-items:center;
}

.about-feed__avatar{
  width:68px;
  height:68px;
  border-radius:50%;
  overflow:hidden;
  border:1px solid rgba(20,22,24,.28);
  background:#141618;
}

.about-feed__avatar img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 42%;
  filter:none;
}

.about-feed__profile-name{
  margin:0;
  font-family:var(--font-display);
  font-size:24px;
  font-weight:700;
  line-height:.95;
  letter-spacing:-.035em;
}

.about-feed__profile-meta{
  display:flex;
  align-items:center;
  gap:10px;
  margin-top:8px;
  font-family:var(--font-mono);
  font-size:9px;
  font-weight:700;
  letter-spacing:.11em;
  color:rgba(20,22,24,.55);
}

.about-feed__profile-meta span + span::before{
  content:'·';
  margin-right:10px;
  color:#610000;
}

.about-feed__viewport{
  position:relative;
  margin-top:clamp(34px,3.2vw,54px);
}

.about-feed__stage{
  position:relative;
  width:100%;
  height:clamp(570px,33vw,630px);
  overflow:hidden;
}

.about-feed__post{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  display:grid;
  grid-template-columns:minmax(460px,.9fr) minmax(560px,1.1fr);
  gap:clamp(44px,5vw,88px);
  align-items:stretch;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateX(42px);
  transition:opacity .34s ease,transform .48s cubic-bezier(.2,.75,.25,1),visibility 0s linear .48s;
}

.about-feed__post.is-active{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:none;
  transition-delay:0s;
}

.about-feed__post.is-exiting-left{transform:translateX(-42px);opacity:0}
.about-feed__post.is-exiting-right{transform:translateX(42px);opacity:0}

.about-feed__post > div:first-child{
  min-width:0;
  height:100%;
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  padding:4px 0 8px;
}

.about-feed__post-title{
  max-width:920px;
  margin:0;
  font-family:var(--font-display);
  font-size:clamp(42px,4.15vw,74px);
  font-weight:720;
  line-height:.9;
  letter-spacing:-.055em;
  color:#141618;
}

.about-feed__copy{
  max-width:800px;
  margin-top:clamp(24px,2.1vw,34px);
}

.about-feed__copy p{
  margin:0;
  font-family:var(--font-editorial);
  font-size:clamp(17px,1.18vw,22px);
  font-weight:480;
  line-height:1.4;
  letter-spacing:-.012em;
  color:rgba(20,22,24,.79);
}

.about-feed__copy p + p{margin-top:14px}
.about-feed__copy strong{color:#141618;font-weight:650}

.about-feed__media{
  position:relative;
  width:100%;
  height:100%;
  min-height:0;
  overflow:hidden;
  border:1px solid rgba(20,22,24,.14);
  background:#E8E6E1;
}

.about-feed__media > img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
}

.about-feed__socials{
  position:absolute;
  z-index:3;
  top:16px;
  right:16px;
  display:flex;
  gap:8px;
  margin:0;
}

.about-feed__social{
  min-height:42px;
  padding:0 12px;
  display:inline-flex;
  align-items:center;
  gap:8px;
  border:1px solid rgba(20,22,24,.18);
  background:rgba(243,240,233,.94);
  color:#141618;
  text-decoration:none;
  font-family:var(--font-body);
  font-size:12px;
  font-weight:650;
  box-shadow:0 8px 22px rgba(20,22,24,.10);
  backdrop-filter:blur(6px);
  transition:background .22s ease,color .22s ease,transform .22s ease;
}

.about-feed__social:hover{
  background:#141618;
  color:#F3F0E9;
  transform:translateY(-2px);
}

.about-feed__social svg{width:16px;height:16px;display:block;fill:currentColor}

.about-feed__nav{
  display:grid;
  grid-template-columns:auto minmax(160px,1fr) auto;
  gap:24px;
  align-items:center;
  margin-top:clamp(30px,2.8vw,44px);
  padding-top:24px;
  border-top:1px solid rgba(20,22,24,.18);
}

.about-feed__arrows{display:flex;gap:8px}

.about-feed__arrow{
  width:62px;
  height:62px;
  display:grid;
  place-items:center;
  border:1px solid rgba(20,22,24,.25);
  border-radius:50%;
  background:transparent;
  color:#141618;
  cursor:pointer;
  transition:background .22s ease,color .22s ease,border-color .22s ease,transform .22s ease;
}

.about-feed__arrow:hover{
  background:#141618;
  color:#F3F0E9;
  border-color:#141618;
  transform:scale(1.035);
}

.about-feed__arrow svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}

.about-feed__progress{
  position:relative;
  height:2px;
  overflow:hidden;
  background:rgba(20,22,24,.13);
}

.about-feed__progress span{
  display:block;
  width:10%;
  height:100%;
  background:#610000;
  transform-origin:left center;
  transition:width .42s cubic-bezier(.2,.75,.25,1);
}

.about-feed__count{
  min-width:88px;
  display:flex;
  align-items:baseline;
  justify-content:flex-end;
  gap:7px;
  font-family:var(--font-mono);
  font-weight:700;
  line-height:1;
}

.about-feed__count-current{font-size:18px;color:#141618}
.about-feed__count-total{font-size:9px;letter-spacing:.1em;color:rgba(20,22,24,.48)}

@media(max-width:920px){
  .about-feed__header{grid-template-columns:1fr;align-items:start}
  .about-feed__profile{min-width:0}
  .about-feed__stage{height:auto;min-height:880px;transition:height .28s ease}
  .about-feed__post{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) 470px;gap:36px}
  .about-feed__post > div:first-child{height:auto}
  .about-feed__post-title{max-width:980px;font-size:clamp(46px,7.2vw,72px)}
  .about-feed__copy{max-width:900px}
  .about-feed__copy p{font-size:clamp(18px,2.3vw,22px)}
}

@media(max-width:720px){
  .about-feed__inner{padding:62px 20px 50px}
  .about-feed__header{gap:30px;padding-bottom:32px}
  .about-feed__title{font-size:clamp(58px,17vw,80px)}
  .about-feed__profile{grid-template-columns:56px 1fr;gap:13px}
  .about-feed__avatar{width:56px;height:56px}
  .about-feed__profile-name{font-size:20px}
  .about-feed__profile-meta{font-size:8px;flex-wrap:wrap;gap:6px}
  .about-feed__viewport{margin-top:32px}
  .about-feed__stage{min-height:760px}
  .about-feed__post{grid-template-rows:minmax(0,1fr) 330px;gap:28px}
  .about-feed__post-title{font-size:clamp(38px,11.5vw,54px);line-height:.92}
  .about-feed__copy{margin-top:22px}
  .about-feed__copy p{font-size:clamp(17px,5vw,21px);line-height:1.36}
  .about-feed__copy p + p{margin-top:13px}
  .about-feed__socials{top:10px;right:10px;gap:6px}
  .about-feed__social{min-height:38px;padding:0 10px;font-size:11px}
  .about-feed__nav{grid-template-columns:auto 1fr auto;gap:14px;margin-top:30px;padding-top:20px}
  .about-feed__arrow{width:52px;height:52px}
  .about-feed__count{min-width:62px}
}

@media(prefers-reduced-motion:reduce){
  .about-feed__post,
  .about-feed__progress span,
  .about-feed__arrow,
  .about-feed__social{transition:none}
}

.services-preview{
  position:relative;
  width:100%;
  overflow:hidden;
  background:
    linear-gradient(180deg, rgba(118, 6, 6, .92) 0%, rgba(128, 5, 5, .94) 100%),
    url("/assets/services-section-bg.webp") center center / cover no-repeat;
  color:#fff;
}

.services-preview__inner{
  width:min(100%,1600px);
  margin:0 auto;
  padding:clamp(84px,7vw,116px) clamp(34px,4vw,72px) clamp(82px,6.5vw,108px);
}

.services-preview__intro{
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);
  gap:clamp(64px,7vw,120px);
  align-items:center;
  margin-bottom:clamp(72px,6vw,96px);
}

.services-preview__title{
  max-width:760px;
  margin:0;
  font-family:var(--font-display);
  font-size:clamp(62px,5.35vw,96px);
  font-weight:720;
  line-height:.93;
  letter-spacing:-.05em;
  text-wrap:balance;
}

.services-preview__title span{
  display:block;
  margin-top:.08em;
  max-width:720px;
  font-family:var(--font-editorial);
  font-size:.82em;
  font-weight:500;
  line-height:.98;
  letter-spacing:-.035em;
}

.services-preview__copy{
  max-width:600px;
  justify-self:end;
}

.services-preview__copy p{
  margin:0;
  font-family:var(--font-body);
  font-size:clamp(18px,1.26vw,21px);
  font-weight:450;
  line-height:1.55;
  color:rgba(255,255,255,.86);
}

.services-preview__copy strong{
  display:block;
  max-width:470px;
  margin-top:28px;
  font-family:var(--font-editorial);
  font-size:clamp(22px,1.75vw,29px);
  font-weight:500;
  line-height:1.26;
  color:#fff;
}

.services-preview__list{
  width:100%;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(46px,5.2vw,88px);
}

.services-preview__row{
  position:relative;
  width:100%;
  min-height:270px;
  padding:0 0 18px;
  border:0;
  display:grid;
  grid-template-columns:1fr auto;
  grid-template-rows:auto auto 1fr;
  column-gap:18px;
  row-gap:20px;
  align-content:start;
  background:transparent;
  color:#fff;
  text-align:left;
  cursor:pointer;
  opacity:0;
  transform:translateY(18px);
  transition:
    opacity .58s ease var(--service-delay),
    transform .62s cubic-bezier(.2,.75,.25,1) var(--service-delay);
}

.services-preview.is-visible .services-preview__row{
  opacity:1;
  transform:translateY(0);
}

.services-preview__row:nth-child(1){--service-delay:90ms}
.services-preview__row:nth-child(2){--service-delay:190ms}
.services-preview__row:nth-child(3){--service-delay:290ms}

.services-preview__row:hover,
.services-preview__row:focus-visible{
  transform:translateY(-5px);
  outline:none;
}

.services-preview__index{
  grid-column:1 / -1;
  font-family:var(--font-mono);
  font-size:12px;
  font-weight:600;
  letter-spacing:.12em;
  color:rgba(255,255,255,.52);
}

.services-preview__name{
  grid-column:1;
  max-width:9.8em;
  font-family:var(--font-display);
  font-size:clamp(31px,2.35vw,44px);
  font-weight:650;
  line-height:.98;
  letter-spacing:-.04em;
}

.services-preview__description{
  grid-column:1 / -1;
  align-self:start;
  max-width:39ch;
  font-family:var(--font-body);
  font-size:clamp(15px,1vw,17px);
  font-weight:430;
  line-height:1.56;
  color:rgba(255,255,255,.74);
}

.services-preview__arrow{
  grid-column:2;
  grid-row:2;
  width:46px;
  height:46px;
  display:grid;
  place-items:center;
  align-self:start;
  background:#141618;
  color:#fff;
  font-family:var(--font-body);
  font-size:16px;
  line-height:1;
  transition:transform .22s ease,background .22s ease,color .22s ease;
}

.services-preview__row:hover .services-preview__arrow,
.services-preview__row:focus-visible .services-preview__arrow{
  transform:translate(3px,-3px);
  background:#fff;
  color:#141618;
}

.services-preview__footer{
  margin-top:clamp(34px,3.5vw,52px);
  display:flex;
  justify-content:flex-end;
}

.services-preview__cta{
  min-height:58px;
  padding:0 12px 0 22px;
  border:1px solid #141618;
  border-radius:3px;
  display:inline-flex;
  align-items:center;
  gap:24px;
  background:#141618;
  color:#fff;
  font-family:var(--font-body);
  font-size:14px;
  font-weight:650;
  letter-spacing:.01em;
  cursor:pointer;
  transition:background .22s ease,color .22s ease,border-color .22s ease;
}

.services-preview__cta::after{
  content:"↗";
  width:32px;
  height:32px;
  display:grid;
  place-items:center;
  background:#fff;
  color:#141618;
  font-size:14px;
  line-height:1;
}

.services-preview__cta:hover,
.services-preview__cta:focus-visible{
  background:#fff;
  color:#141618;
  border-color:#fff;
  outline:none;
}

@media(max-width:1080px){
  .services-preview__inner{
    width:min(100%,980px);
    padding:78px 30px 72px;
  }

  .services-preview__intro{
    grid-template-columns:1fr;
    gap:38px;
    margin-bottom:64px;
  }

  .services-preview__title{
    max-width:820px;
    font-size:clamp(58px,8.7vw,88px);
  }

  .services-preview__copy{
    max-width:700px;
    justify-self:start;
  }

  .services-preview__list{
    grid-template-columns:1fr;
    gap:42px;
  }

  .services-preview__row{
    min-height:0;
    grid-template-columns:1fr auto;
    grid-template-rows:auto auto auto;
    row-gap:14px;
    padding:0;
  }

  .services-preview__name{
    max-width:none;
    font-size:clamp(30px,5vw,42px);
  }

  .services-preview__description{
    max-width:62ch;
  }

  .services-preview__arrow{
    grid-row:2;
  }
}

@media(max-width:620px){
  .services-preview__inner{
    padding:64px 20px 60px;
  }

  .services-preview__intro{
    gap:28px;
    margin-bottom:54px;
  }

  .services-preview__title{
    font-size:clamp(50px,14vw,70px);
  }

  .services-preview__title span{
    font-size:.8em;
  }

  .services-preview__copy p{
    font-size:17px;
  }

  .services-preview__copy strong{
    margin-top:22px;
    font-size:22px;
  }

  .services-preview__list{
    gap:38px;
  }

  .services-preview__name{
    font-size:clamp(28px,8.7vw,38px);
  }

  .services-preview__description{
    font-size:15px;
  }

  .services-preview__arrow{
    width:40px;
    height:40px;
  }

  .services-preview__footer{
    justify-content:flex-start;
    margin-top:44px;
  }
}

@media(prefers-reduced-motion:reduce){
  .services-preview__row{
    opacity:1;
    transform:none;
    transition:none;
  }
}



.home-contact-cta{
  position:relative;
  width:100%;
  overflow:hidden;
  background:#141618;
  color:#fff;
}
.home-contact-cta__inner{
  width:min(100%,1600px);
  margin:0 auto;
  padding:clamp(54px,4.6vw,76px) clamp(34px,4vw,72px);
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(420px,1fr);
  gap:clamp(46px,6vw,100px);
  align-items:center;
}
.home-contact-cta__title{
  max-width:760px;
  margin:0;
  font-family:var(--font-display);
  font-size:clamp(58px,4.65vw,84px);
  font-weight:720;
  line-height:.9;
  letter-spacing:-.055em;
  text-wrap:balance;
}
.home-contact-cta__title span{
  display:block;
  margin-top:.08em;
  font-family:var(--font-editorial);
  font-size:.84em;
  font-weight:500;
  line-height:.96;
  letter-spacing:-.038em;
  color:var(--accent);
}
.home-contact-cta__side{
  max-width:680px;
  justify-self:end;
  padding-bottom:0;
}
.home-contact-cta__copy{
  margin:0;
  font-family:var(--font-body);
  font-size:clamp(18px,1.35vw,23px);
  font-weight:430;
  line-height:1.58;
  color:rgba(255,255,255,.76);
}
.home-contact-cta__actions{
  margin-top:28px;
  display:flex;
  flex-wrap:wrap;
  gap:14px 18px;
  align-items:center;
}
.home-contact-cta__whatsapp,
.home-contact-cta__contact{
  min-height:58px;
  border-radius:3px;
  font-family:var(--font-body);
  font-size:14px;
  font-weight:650;
  letter-spacing:.01em;
  text-decoration:none;
  cursor:pointer;
}
.home-contact-cta__whatsapp{
  padding:0 12px 0 22px;
  border:1px solid var(--accent);
  display:inline-flex;
  align-items:center;
  gap:24px;
  background:var(--accent);
  color:#fff;
  transition:background .22s ease,color .22s ease,border-color .22s ease;
}
.home-contact-cta__whatsapp::after{
  content:"↗";
  width:32px;
  height:32px;
  display:grid;
  place-items:center;
  background:#fff;
  color:#141618;
  font-size:14px;
  line-height:1;
}
.home-contact-cta__whatsapp:hover,
.home-contact-cta__whatsapp:focus-visible{
  background:#fff;
  border-color:#fff;
  color:#141618;
  outline:none;
}
.home-contact-cta__contact{
  padding:0 4px;
  border:0;
  display:inline-flex;
  align-items:center;
  gap:10px;
  background:transparent;
  color:#fff;
  opacity:.74;
  transition:opacity .22s ease,transform .22s ease;
}
.home-contact-cta__contact::after{
  content:"→";
  font-size:16px;
}
.home-contact-cta__contact:hover,
.home-contact-cta__contact:focus-visible{
  opacity:1;
  transform:translateX(4px);
  outline:none;
}
.home-contact-cta__note{
  margin:16px 0 0;
  font-family:var(--font-mono);
  font-size:11px;
  line-height:1.5;
  letter-spacing:.05em;
  color:rgba(255,255,255,.38);
}
@media(max-width:980px){
  .home-contact-cta__inner{
    width:min(100%,980px);
    grid-template-columns:1fr;
    gap:28px;
    padding:58px 30px 56px;
  }
  .home-contact-cta__title{
    max-width:760px;
    font-size:clamp(54px,8.7vw,78px);
  }
  .home-contact-cta__side{
    max-width:680px;
    justify-self:start;
  }
}
@media(max-width:620px){
  .home-contact-cta__inner{
    padding:48px 20px 46px;
    gap:28px;
  }
  .home-contact-cta__title{font-size:clamp(52px,14vw,70px);}
  .home-contact-cta__copy{font-size:17px;}
  .home-contact-cta__actions{
    margin-top:28px;
    align-items:flex-start;
    flex-direction:column;
  }
  .home-contact-cta__whatsapp{
    width:100%;
    justify-content:space-between;
  }
}



.site-footer{
  position:relative;
  width:100%;
  min-height:320px;
  overflow:hidden;
  background:#eceae5;
  color:#141618;
}

.site-footer::after{
  content:"";
  position:absolute;
  inset:0 0 0 auto;
  width:43%;
  background:var(--accent);
  clip-path:polygon(8% 0,100% 0,100% 100%,0 100%);
  pointer-events:none;
}

.site-footer__inner{
  position:relative;
  z-index:1;
  width:min(100%,1600px);
  min-height:320px;
  margin:0 auto;
  padding:clamp(48px,4.3vw,68px) clamp(34px,4vw,72px) 38px;
  display:grid;
  grid-template-columns:minmax(0,1.36fr) minmax(430px,.94fr);
  gap:clamp(54px,5.6vw,96px);
}

.site-footer__brand{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  min-width:0;
}

.site-footer__logo{
  width:clamp(175px,13vw,230px);
  height:auto;
  display:block;
  filter:brightness(0);
}

.site-footer__tagline{
  max-width:460px;
  margin:22px 0 0;
  font-family:var(--font-editorial);
  font-size:clamp(24px,1.8vw,31px);
  font-weight:500;
  line-height:1.2;
  letter-spacing:-.025em;
  color:#2b2d2f;
}

.site-footer__nav{
  margin-top:36px;
  display:flex;
  flex-wrap:wrap;
  gap:11px 25px;
}

.site-footer__nav button{
  padding:0;
  border:0;
  background:transparent;
  color:#141618;
  font-family:var(--font-body);
  font-size:14px;
  font-weight:650;
  line-height:1.2;
  cursor:pointer;
  transition:color .2s ease,transform .2s ease;
}

.site-footer__nav button:hover,
.site-footer__nav button:focus-visible{
  color:var(--accent);
  transform:translateY(-1px);
  outline:none;
}

.site-footer__copyright{
  margin:auto 0 0;
  padding-top:34px;
  font-family:var(--font-mono);
  font-size:10px;
  line-height:1.5;
  letter-spacing:.07em;
  color:#74706b;
}

.site-footer__top{
  width:max-content;
  margin-top:18px;
  padding:10px 14px;
  border:1px solid #fff;
  background:#fff;
  color:var(--accent);
  font-family:var(--font-body);
  font-size:12px;
  font-weight:750;
  line-height:1;
  cursor:pointer;
  transition:background .2s ease,color .2s ease,border-color .2s ease,transform .2s ease;
}
.site-footer__top:hover,.site-footer__top:focus-visible{
  background:transparent;
  color:#fff;
  border-color:#fff;
  transform:translateY(-1px);
  outline:none;
}

.site-footer__contact{
  position:relative;
  z-index:2;
  padding-left:clamp(128px,8vw,172px);
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  color:#fff;
}

.site-footer__contact-title{
  margin:0;
  font-family:var(--font-display);
  font-size:clamp(52px,4.35vw,74px);
  font-weight:720;
  line-height:.94;
  letter-spacing:-.045em;
}

.site-footer__contact-copy{
  max-width:390px;
  margin:16px 0 26px;
  font-family:var(--font-body);
  font-size:15.5px;
  line-height:1.52;
  color:rgba(255,255,255,.76);
}

.site-footer__links{
  width:100%;
  display:grid;
  gap:8px;
}

.site-footer__links a,
.site-footer__links button{
  width:max-content;
  max-width:100%;
  padding:5px 0;
  border:0;
  background:transparent;
  color:#fff;
  font-family:var(--font-body);
  font-size:14px;
  font-weight:650;
  line-height:1.2;
  text-decoration:none;
  cursor:pointer;
  opacity:.88;
  transition:opacity .2s ease,transform .2s ease;
}

.site-footer__links a:hover,
.site-footer__links a:focus-visible,
.site-footer__links button:hover,
.site-footer__links button:focus-visible{
  opacity:1;
  transform:translateX(4px);
  outline:none;
}

@media(max-width:980px){
  .site-footer::after{
    width:47%;
  }

  .site-footer__inner{
    grid-template-columns:minmax(0,1.04fr) minmax(340px,.96fr);
    gap:40px;
    padding:52px 30px 34px;
  }

  .site-footer__contact{
    padding-left:88px;
  }
}

@media(max-width:720px){
  .site-footer{
    background:#eceae5;
  }

  .site-footer::after{
    inset:auto 0 0 0;
    width:100%;
    height:47%;
    clip-path:polygon(0 14%,100% 0,100% 100%,0 100%);
  }

  .site-footer__inner{
    min-height:0;
    padding:44px 20px 30px;
    grid-template-columns:1fr;
    gap:64px;
  }

  .site-footer__nav{
    margin-top:28px;
    gap:12px 20px;
  }

  .site-footer__copyright{
    margin-top:32px;
    padding-top:0;
  }

  .site-footer__contact{
    min-height:220px;
    padding:36px 0 0;
  }

  .site-footer__contact-title{
    font-size:52px;
  }
}



/* Preferencias globales, scroll y cursor */
.site-view,
.settings-panel__body{
  scrollbar-width:thin;
  scrollbar-color:var(--scroll-thumb) var(--scroll-track);
}
.site-view::-webkit-scrollbar,
.settings-panel__body::-webkit-scrollbar{width:8px}
.site-view::-webkit-scrollbar-track,
.settings-panel__body::-webkit-scrollbar-track{background:var(--scroll-track)}
.site-view::-webkit-scrollbar-thumb,
.settings-panel__body::-webkit-scrollbar-thumb{background:var(--scroll-thumb);border-radius:999px}
html[data-scroll="red"]{--scroll-thumb:#610000}
html[data-scroll="gray"]{--scroll-thumb:#7b7f82}
html[data-scroll="white"]{--scroll-thumb:#f2f1ed}

@media(pointer:fine){
  html[data-custom-cursor="on"] body,
  html[data-custom-cursor="on"] body *,
  html[data-custom-cursor="on"] dialog,
  html[data-custom-cursor="on"] dialog *{cursor:none}
}

.nodevia-cursor{
  position:fixed;
  z-index:10000;
  left:0;
  top:0;
  width:32px;
  height:32px;
  pointer-events:none;
  opacity:0;
  visibility:hidden;
  transform:translate3d(-80px,-80px,0);
  transform-origin:center;
  transition:opacity .12s ease,filter .16s ease;
  will-change:transform;
}
.nodevia-cursor.is-visible{opacity:1;visibility:visible}
.nodevia-cursor svg{width:100%;height:100%;display:block;overflow:visible;transition:transform .12s ease}
.nodevia-cursor.is-interactive{filter:drop-shadow(0 0 4px rgba(255,255,255,.22))}
.nodevia-cursor.is-pressed svg{transform:scale(.88)}
@media(pointer:coarse){.nodevia-cursor{display:none}}

body.settings-open .settings-toggle{background:var(--accent);border-color:var(--accent)}
body.settings-open .settings-toggle svg{transform:rotate(118deg)}

.settings-backdrop{
  position:absolute;
  z-index:56;
  inset:0;
  background:rgba(8,9,10,.64);
  -webkit-backdrop-filter:blur(4px);
  backdrop-filter:blur(4px);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .34s ease,visibility .34s;
}
body.settings-open .settings-backdrop{opacity:1;visibility:visible;pointer-events:auto}
body.settings-open .site-content{opacity:.84;transform:scale(.993) translateX(-12px)}

.settings-panel{
  position:absolute;
  z-index:60;
  top:0;
  right:0;
  width:min(560px,calc(100% - 24px));
  height:100%;
  overflow:hidden;
  color:#fff;
  background:var(--settings-surface);
  border-left:1px solid rgba(255,255,255,.12);
  box-shadow:-30px 0 82px rgba(0,0,0,.42);
  visibility:hidden;
  pointer-events:none;
  opacity:.38;
  transform:translateX(104%) perspective(900px) rotateY(-1.5deg);
  transform-origin:right center;
  transition:transform .62s cubic-bezier(.22,.82,.2,1),opacity .36s ease,visibility .62s;
}
.settings-panel::before{
  content:"";
  position:absolute;
  z-index:4;
  inset:0 auto 0 0;
  width:5px;
  background:var(--accent);
  transform:scaleY(0);
  transform-origin:top;
  transition:transform .62s cubic-bezier(.2,.78,.2,1) .1s;
}
body.settings-open .settings-panel{visibility:visible;pointer-events:auto;opacity:1;transform:none}
body.settings-open .settings-panel::before{transform:scaleY(1)}

.settings-panel__shell{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr) auto}
.settings-panel__header{
  padding:34px 32px 27px 38px;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:28px;
  border-bottom:1px solid var(--settings-line);
}
.settings-panel__title{
  margin:0;
  font-family:var(--font-display);
  font-size:52px;
  font-weight:680;
  line-height:.94;
  letter-spacing:-.05em;
}
.settings-panel__intro{
  margin:12px 0 0;
  color:rgba(255,255,255,.55);
  font-family:var(--font-body);
  font-size:13px;
  line-height:1.45;
}
.settings-panel__close{
  flex:0 0 auto;
  width:44px;
  height:44px;
  border:1px solid rgba(255,255,255,.22);
  border-radius:2px;
  display:grid;
  place-items:center;
  background:transparent;
  color:#fff;
  font-size:28px;
  font-weight:300;
  line-height:1;
  cursor:pointer;
  transition:background .2s ease,border-color .2s ease,transform .24s ease;
}
.settings-panel__close:hover,
.settings-panel__close:focus-visible{background:var(--accent);border-color:var(--accent);transform:rotate(5deg);outline:none}

.settings-panel__body{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:28px 32px 30px 38px}

.settings-preview{
  width:100%;
  margin:0 0 34px;
  display:flex;
  justify-content:flex-start;
}
.settings-preview__canvas{
  position:relative;
  width:min(100%,360px);
  height:138px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.13);
  border-radius:3px;
  background:
    radial-gradient(circle at 76% 26%,rgba(97,0,0,.32),transparent 37%),
    linear-gradient(138deg,#222528 0%,#131517 72%);
  box-shadow:0 18px 38px rgba(0,0,0,.20);
}
.settings-preview__card{
  position:absolute;
  left:24px;
  top:26px;
  width:150px;
  height:84px;
  border:1px solid rgba(255,255,255,.09);
  border-radius:2px;
  background:rgba(255,255,255,.025);
  transform:skewY(-2deg);
}
.settings-preview__card::before,
.settings-preview__card::after{
  content:"";
  position:absolute;
  left:16px;
  height:2px;
  background:rgba(255,255,255,.16);
}
.settings-preview__card::before{top:24px;width:76px}
.settings-preview__card::after{top:38px;width:48px}
.settings-preview__cursor{
  position:absolute;
  z-index:3;
  left:64%;
  top:53%;
  width:30px;
  height:30px;
  transform:translate(-50%,-50%);
  pointer-events:none;
  transition:transform .26s ease;
}
.settings-preview__cursor svg{width:100%;height:100%;display:block;overflow:visible}
.settings-preview__scroll{
  position:absolute;
  top:15px;
  right:13px;
  width:4px;
  height:calc(100% - 30px);
  border-radius:999px;
  background:rgba(255,255,255,.08);
}
.settings-preview__scroll span{
  position:absolute;
  top:18%;
  left:0;
  width:100%;
  height:34%;
  border-radius:inherit;
  background:var(--scroll-thumb);
  transition:background .2s ease;
}

.settings-groups{border-top:1px solid var(--settings-line)}
.settings-group{padding:28px 0 30px;border-bottom:1px solid var(--settings-line)}
.settings-group__heading{
  margin-bottom:20px;
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:24px;
}
.settings-group h3{
  margin:0;
  font-family:var(--font-display);
  font-size:31px;
  font-weight:620;
  line-height:1;
  letter-spacing:-.04em;
}
.settings-group__heading p{
  max-width:210px;
  margin:0;
  color:rgba(255,255,255,.45);
  font-family:var(--font-body);
  font-size:11px;
  line-height:1.4;
  text-align:right;
}
.settings-group__label{
  margin:22px 0 10px;
  color:#8e9295;
  font-family:var(--font-body);
  font-size:10px;
  font-weight:650;
  letter-spacing:.05em;
  text-transform:uppercase;
}

.settings-options{display:grid;gap:8px}
.settings-options--colors{grid-template-columns:repeat(3,minmax(0,1fr))}
.settings-options--shapes{grid-template-columns:repeat(4,minmax(0,1fr))}
.settings-options button{
  min-height:54px;
  padding:9px 10px;
  border:1px solid rgba(255,255,255,.13);
  border-radius:2px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  background:#181a1c;
  color:rgba(255,255,255,.68);
  font-family:var(--font-body);
  font-size:11px;
  font-weight:620;
  cursor:pointer;
  transition:background .2s ease,border-color .2s ease,color .2s ease,transform .2s ease;
}
.settings-options button:hover,
.settings-options button:focus-visible{border-color:rgba(255,255,255,.36);color:#fff;transform:translateY(-1px);outline:none}
.settings-options button[aria-pressed="true"]{border-color:#8d0909;background:#4b0707;color:#fff}
.settings-swatch{
  width:11px;
  height:11px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.22);
  box-shadow:0 0 0 2px rgba(255,255,255,.02);
}
.settings-swatch--red{background:#8c0000}
.settings-swatch--gray{background:#85898c}
.settings-swatch--white{background:#f4f3ef}
.settings-icon{
  width:24px;
  height:24px;
  display:grid;
  place-items:center;
  color:#fff;
}
.settings-icon svg{width:22px;height:22px;display:block;overflow:visible}
.settings-icon svg path,
.settings-icon svg circle{fill:currentColor;stroke:#0f1112;stroke-width:1.1;stroke-linecap:round;stroke-linejoin:round}
.settings-icon svg path[fill="none"]{fill:none;stroke:currentColor;stroke-width:2.1}
.settings-icon svg .settings-icon__cut{fill:none;stroke:rgba(17,19,21,.72);stroke-width:1.25}
.settings-options button[aria-pressed="true"] .settings-icon{color:#fff}

.settings-panel__footer{
  min-height:68px;
  padding:14px 32px 14px 38px;
  border-top:1px solid var(--settings-line);
  display:flex;
  align-items:center;
  background:#0e1011;
}
.settings-reset{
  padding:0;
  border:0;
  background:transparent;
  color:rgba(255,255,255,.66);
  font-family:var(--font-body);
  font-size:11px;
  font-weight:650;
  cursor:pointer;
  transition:color .2s ease;
}
.settings-reset:hover,
.settings-reset:focus-visible{color:#d11a1a;outline:none}

@media(max-width:720px){
  .settings-panel{width:100%;max-width:none;border-left:0}
  .settings-panel__header{padding:28px 20px 23px 26px}
  .settings-panel__body{padding:24px 20px 28px 26px}
  .settings-panel__footer{padding:14px 20px 14px 26px}
  .settings-options--shapes{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:480px){
  .settings-panel__title{font-size:44px}
  .settings-panel__intro{font-size:12px}
  .settings-preview__canvas{width:100%;height:126px}
  .settings-group__heading{align-items:flex-start;flex-direction:column;gap:7px}
  .settings-group__heading p{text-align:left}
  .settings-options--colors{grid-template-columns:1fr}
  .settings-options button{justify-content:flex-start;padding-left:14px}
}



/* ¿Quiénes somos? — apertura */
.site-view[data-view="nosotros"]{
  overflow-y:auto;
  overflow-x:hidden;
  overscroll-behavior-y:contain;
  background:#141618;
  color:#151719;
}

.about-opening{
  position:relative;
  width:100%;
  overflow:hidden;
  background:
    radial-gradient(circle at 84% 19%,rgba(97,0,0,.055),transparent 26%),
    radial-gradient(circle at 15% 78%,rgba(97,0,0,.022),transparent 22%),
    #eceae5;
  color:#151719;
}

.about-opening__inner{
  width:min(100%,1640px);
  margin:0 auto;
  padding:calc(var(--utility-h) + clamp(108px,7.6vw,126px)) clamp(38px,5vw,92px) 14px;
  display:grid;
  grid-template-rows:auto auto;
  gap:clamp(24px,2.8vh,32px);
}

.about-opening__top{
  display:grid;
  grid-template-columns:minmax(0,.82fr) minmax(520px,1.18fr);
  gap:clamp(54px,6vw,104px);
  align-items:start;
}

.about-opening__title{
  max-width:7.8ch;
  margin:0;
  padding-top:10px;
  font-family:var(--font-display);
  font-size:clamp(70px,6.45vw,112px);
  font-weight:720;
  line-height:.85;
  letter-spacing:-.062em;
  color:#141618;
  opacity:0;
  transform:translateY(20px);
  transition:opacity .62s ease .06s,transform .76s cubic-bezier(.2,.78,.22,1) .06s;
}

.about-opening__story{
  max-width:780px;
  justify-self:end;
  padding-top:8px;
}

.about-opening__lead{
  max-width:17ch;
  margin:0;
  font-family:var(--font-display);
  font-size:clamp(34px,3vw,52px);
  font-weight:620;
  line-height:.99;
  letter-spacing:-.043em;
  color:#16181a;
  opacity:0;
  transform:translateY(16px);
  transition:opacity .58s ease .22s,transform .7s cubic-bezier(.2,.78,.22,1) .22s;
}

.about-opening__copy{
  max-width:750px;
  margin:20px 0 0;
  font-family:var(--font-body);
  font-size:clamp(15px,1.02vw,18px);
  font-weight:450;
  line-height:1.55;
  color:rgba(21,23,25,.70);
  opacity:0;
  transform:translateY(12px);
  transition:opacity .52s ease .4s,transform .66s cubic-bezier(.2,.78,.22,1) .4s;
}

.about-opening__copy--secondary{
  margin-top:12px;
  color:rgba(21,23,25,.49);
  transition-delay:.52s;
}

.about-opening__collective{
  position:relative;
  min-height:0;
  display:grid;
  grid-template-rows:auto auto auto;
  align-items:end;
}

.about-opening__roles{
  width:100%;
  padding:0 1.5% 27px;
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:18px;
}

.about-opening__roles span{
  font-family:var(--font-mono);
  font-size:clamp(10.5px,.76vw,13px);
  font-weight:700;
  line-height:1.25;
  letter-spacing:.09em;
  color:var(--accent);
  opacity:1;
  transform:none;
}

.about-opening__word-stage{
  position:relative;
  min-height:clamp(104px,9.8vw,148px);
  display:flex;
  align-items:flex-end;
  overflow:visible;
  padding-right:7%;
}

.about-opening__editor{
  position:relative;
  display:inline-flex;
  align-items:flex-end;
  width:max-content;
  max-width:100%;
  min-height:1em;
  font-family:var(--font-display);
  font-size:clamp(84px,10.6vw,174px);
  font-weight:760;
  line-height:.78;
  letter-spacing:-.072em;
  color:#141618;
}

.about-opening__typed-word{
  position:relative;
  z-index:2;
  display:inline-block;
  min-width:.02em;
  white-space:nowrap;
  border-radius:.025em;
  color:#141618;
  transition:color .18s ease,background .18s ease,box-shadow .18s ease,transform .18s ease;
}

.about-opening__typed-word.is-selected{
  color:#fff;
  background:var(--accent);
  box-shadow:0 0 0 .045em var(--accent);
  transform:translateY(-.01em);
}

.about-opening__caret{
  position:relative;
  z-index:2;
  display:inline-block;
  width:.035em;
  height:.76em;
  margin:0 0 .015em .035em;
  border-radius:999px;
  background:var(--accent);
  opacity:0;
}

.about-opening__caret.is-visible{
  opacity:1;
  animation:aboutCaretBlink .72s steps(1,end) infinite;
}

@keyframes aboutCaretBlink{50%{opacity:0}}

.about-opening__delete{
  position:absolute;
  z-index:6;
  left:calc(100% + 24px);
  top:.05em;
  padding:9px 12px 8px;
  border-radius:999px;
  background:var(--accent);
  color:#fff;
  font-family:var(--font-mono);
  font-size:11px;
  font-weight:700;
  line-height:1;
  letter-spacing:.10em;
  opacity:0;
  transform:translateY(7px) scale(.96);
  box-shadow:0 10px 24px rgba(0,0,0,.17);
  white-space:nowrap;
  pointer-events:none;
  transition:opacity .18s ease,transform .24s cubic-bezier(.2,.75,.25,1),background .12s ease;
}

.about-opening__delete.is-visible{
  opacity:1;
  transform:translateY(0) scale(1);
}

.about-opening__delete.is-clicked{
  background:#141618;
  transform:translateY(0) scale(.92);
}

.about-opening__edit-pointer{
  position:absolute;
  z-index:7;
  left:calc(100% + 102px);
  top:.58em;
  width:22px;
  height:28px;
  color:#141618;
  opacity:0;
  pointer-events:none;
  filter:drop-shadow(0 4px 8px rgba(0,0,0,.18));
  transition:left .72s cubic-bezier(.2,.75,.25,1),top .72s cubic-bezier(.2,.75,.25,1),opacity .18s ease,transform .16s ease;
}

.about-opening__edit-pointer svg{display:block;width:100%;height:100%}
.about-opening__edit-pointer path{fill:currentColor;stroke:#fff;stroke-width:1.15;stroke-linejoin:round}
.about-opening__edit-pointer.is-visible{opacity:1}
.about-opening__edit-pointer.is-clicking{transform:scale(.86)}

.about-opening__closing{
  position:absolute;
  right:2.5%;
  bottom:8px;
  max-width:500px;
  margin:0;
  font-family:var(--font-editorial);
  font-size:clamp(14px,1vw,17px);
  font-weight:500;
  line-height:1.34;
  text-align:right;
  color:rgba(21,23,25,.56);
  opacity:0;
  transform:translateY(7px);
  transition:opacity .48s ease 7.25s,transform .56s cubic-bezier(.2,.75,.25,1) 7.25s;
}

.about-opening.is-visible .about-opening__title,
.about-opening.is-visible .about-opening__lead,
.about-opening.is-visible .about-opening__copy,
.about-opening.is-visible .about-opening__closing{
  opacity:1;
  transform:translateY(0);
}

@media(max-width:1080px){
  .about-opening__inner{
    padding:calc(var(--utility-h) + 108px) 30px 12px;
    gap:34px;
  }
  .about-opening__top{
    grid-template-columns:1fr;
    gap:26px;
  }
  .about-opening__title{
    max-width:none;
    font-size:clamp(70px,11.2vw,104px);
  }
  .about-opening__story{
    max-width:780px;
    justify-self:start;
  }
  .about-opening__lead{max-width:17ch}
  .about-opening__roles{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 26px}
  .about-opening__word-stage{padding-right:0}
}

@media(max-width:620px){
  .about-opening__inner{
    padding:calc(var(--utility-h) + 104px) 20px 12px;
    gap:30px;
  }
  .about-opening__title{
    padding-top:6px;
    font-size:clamp(56px,17vw,76px);
    line-height:.87;
  }
  .about-opening__lead{font-size:clamp(31px,9vw,41px)}
  .about-opening__copy{font-size:15px;line-height:1.5}
  .about-opening__roles{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:11px 18px;
    padding:0 0 16px;
  }
  .about-opening__roles span{font-size:10px}
  .about-opening__word-stage{min-height:96px}
  .about-opening__editor{font-size:clamp(62px,20.5vw,86px);letter-spacing:-.065em}
  .about-opening__delete{
    left:0;
    top:-38px;
    padding:7px 10px 6px;
    font-size:9px;
  }
  .about-opening__edit-pointer{display:none}
  .about-opening__closing{
    position:static;
    max-width:300px;
    margin:8px auto 0 0;
    font-size:14px;
    text-align:left;
  }
}


/* ¿Quiénes somos? — evolución / cómo nace NODEVIA */
.about-origin{
  position:relative;
  width:100%;
  min-height:clamp(660px,78vh,790px);
  overflow:hidden;
  background:#610000;
  color:#f2efe8;
  border-top:1px solid rgba(255,255,255,.12);
}

.about-origin__inner{
  width:min(100%,1640px);
  min-height:inherit;
  margin:0 auto;
  padding:clamp(66px,6vw,92px) clamp(38px,5vw,92px) clamp(48px,4.5vw,68px);
  display:flex;
  flex-direction:column;
}

.about-origin__head{
  display:grid;
  grid-template-columns:minmax(0,.88fr) minmax(420px,1.12fr);
  gap:clamp(54px,7vw,116px);
  align-items:end;
}

.about-origin__title{
  max-width:8.2ch;
  margin:0;
  font-family:var(--font-display);
  font-size:clamp(64px,6.5vw,112px);
  font-weight:730;
  line-height:.84;
  letter-spacing:-.062em;
  color:#f4f0e8;
}

.about-origin__intro{
  max-width:760px;
  margin:0;
  padding-bottom:5px;
  font-family:var(--font-editorial);
  font-size:clamp(24px,2.15vw,38px);
  font-weight:470;
  line-height:1.08;
  letter-spacing:-.026em;
  color:rgba(255,255,255,.88);
}

.about-origin__intro strong{
  color:#fff;
  font-weight:620;
}

.about-origin__explore{
  position:relative;
  flex:1;
  min-height:404px;
  margin-top:clamp(36px,4.4vw,58px);
}

.about-origin__hint{
  position:absolute;
  z-index:20;
  left:50%;
  top:0;
  display:flex;
  align-items:center;
  gap:12px;
  width:max-content;
  max-width:calc(100% - 32px);
  padding:11px 0;
  color:rgba(255,255,255,.78);
  font-family:var(--font-mono);
  font-size:10px;
  font-weight:700;
  line-height:1.25;
  letter-spacing:.10em;
  text-transform:uppercase;
  opacity:0;
  transform:translate(-50%,10px);
  pointer-events:none;
}

.about-origin__hint::before{
  content:'↘';
  display:grid;
  place-items:center;
  width:27px;
  height:27px;
  border:1px solid rgba(255,255,255,.38);
  border-radius:50%;
  color:#fff;
  font-family:var(--font-body);
  font-size:14px;
  letter-spacing:0;
}

.about-origin__hint-mobile{display:none}
.about-origin__hint.is-guiding{animation:originGuide 7s cubic-bezier(.2,.75,.25,1) forwards}

@keyframes originGuide{
  0%{opacity:0;transform:translate(-50%,10px)}
  10%,78%{opacity:1;transform:translate(-50%,0)}
  100%{opacity:0;transform:translate(-50%,-7px);visibility:hidden}
}

.about-origin__timeline{
  position:absolute;
  inset:52px 0 0;
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  min-height:352px;
  isolation:isolate;
}

.about-origin__timeline::before{
  content:'';
  position:absolute;
  z-index:0;
  left:2.5%;
  right:2.5%;
  top:50%;
  height:1px;
  background:linear-gradient(90deg,rgba(255,255,255,.18),rgba(255,255,255,.72) 16%,rgba(255,255,255,.38) 82%,rgba(255,255,255,.14));
}

.about-origin__step{
  position:relative;
  z-index:2;
  min-width:0;
}

.about-origin__step::before{
  content:'';
  position:absolute;
  z-index:1;
  left:50%;
  top:50%;
  width:8px;
  height:8px;
  border:1px solid rgba(255,255,255,.88);
  border-radius:50%;
  background:#610000;
  transform:translate(-50%,-50%);
  transition:background .22s ease,transform .22s ease,box-shadow .22s ease;
}

.about-origin__step::after{
  content:'';
  position:absolute;
  z-index:0;
  left:50%;
  width:1px;
  background:rgba(255,255,255,.32);
  transform:translateX(-50%);
}

.about-origin__step--up::after{top:calc(50% - 28px);height:28px}
.about-origin__step--down::after{top:50%;height:28px}

.about-origin__trigger{
  position:absolute;
  z-index:4;
  left:50%;
  width:max-content;
  max-width:calc(100% + 70px);
  padding:0;
  border:0;
  background:transparent;
  color:#f4f0e8;
  text-align:center;
  cursor:default;
  transform:translateX(-50%);
}

.about-origin__step--up .about-origin__trigger{bottom:calc(50% + 28px)}
.about-origin__step--down .about-origin__trigger{top:calc(50% + 28px)}

.about-origin__index{
  display:block;
  margin-bottom:7px;
  font-family:var(--font-mono);
  font-size:9px;
  font-weight:700;
  line-height:1;
  letter-spacing:.14em;
  color:rgba(255,255,255,.38);
  transition:color .22s ease;
}

.about-origin__word{
  position:relative;
  display:block;
  width:max-content;
  max-width:100%;
  cursor:pointer;
  font-family:var(--font-display);
  font-size:clamp(23px,2.35vw,39px);
  font-weight:690;
  line-height:.94;
  letter-spacing:-.048em;
  white-space:nowrap;
  transition:transform .25s cubic-bezier(.2,.75,.25,1),color .22s ease;
}

.about-origin__word::after{
  content:'';
  position:absolute;
  left:0;
  right:0;
  bottom:-8px;
  height:2px;
  background:#fff;
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .28s cubic-bezier(.2,.75,.25,1);
}

.about-origin__word:hover,
.about-origin__trigger:focus-visible .about-origin__word,
.about-origin__step.is-active .about-origin__word{transform:translateY(-3px)}
.about-origin__trigger:focus-visible{outline:none}
.about-origin__word:hover::after,
.about-origin__trigger:focus-visible .about-origin__word::after,
.about-origin__step.is-active .about-origin__word::after{transform:scaleX(1)}
.about-origin__step.is-active .about-origin__index{color:rgba(255,255,255,.76)}
.about-origin__step.is-active::before{
  background:#fff;
  transform:translate(-50%,-50%) scale(1.35);
  box-shadow:0 0 0 6px rgba(255,255,255,.08);
}

.about-origin__card{
  position:absolute;
  z-index:10;
  left:50%;
  width:min(318px,28vw);
  min-width:250px;
  padding:21px 23px 22px;
  border:1px solid rgba(20,22,24,.09);
  background:#f2efe8;
  color:#16181a;
  box-shadow:0 18px 46px rgba(24,0,0,.24);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .22s ease,transform .28s cubic-bezier(.2,.75,.25,1),visibility 0s linear .28s;
}

.about-origin__step--up .about-origin__card{
  bottom:calc(50% + 98px);
  transform:translateX(-50%) translateY(10px) scale(.975);
}
.about-origin__step--down .about-origin__card{
  top:calc(50% + 78px);
  transform:translateX(-50%) translateY(-10px) scale(.975);
}

.about-origin__step.is-active .about-origin__card{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translateX(-50%) translateY(0) scale(1);
  transition-delay:0s;
}

.about-origin__card-label{
  display:flex;
  align-items:center;
  gap:9px;
  margin:0 0 13px;
  font-family:var(--font-mono);
  font-size:9px;
  font-weight:700;
  line-height:1;
  letter-spacing:.14em;
  color:#610000;
}

.about-origin__card-label::before{
  content:'';
  width:17px;
  height:2px;
  background:#610000;
}

.about-origin__card p:last-child{
  margin:0;
  font-family:var(--font-body);
  font-size:14px;
  font-weight:470;
  line-height:1.48;
  color:rgba(20,22,24,.76);
}

.about-origin__close{
  align-self:flex-end;
  max-width:650px;
  margin:10px 0 0;
  font-family:var(--font-editorial);
  font-size:clamp(17px,1.4vw,23px);
  font-weight:500;
  line-height:1.18;
  text-align:right;
  color:rgba(255,255,255,.58);
}

.about-origin__close strong{color:#fff;font-weight:600}

@media(max-width:1120px){
  .about-origin__head{grid-template-columns:1fr;gap:24px}
  .about-origin__title{max-width:none}
  .about-origin__intro{max-width:840px}
  .about-origin__word{font-size:clamp(21px,2.75vw,32px)}
  .about-origin__card{width:min(286px,32vw);min-width:230px;padding:21px 21px 22px}
}

@media(max-width:760px){
  .about-origin{min-height:auto}
  .about-origin__inner{padding:64px 20px 58px}
  .about-origin__title{font-size:clamp(54px,16.5vw,76px);line-height:.86}
  .about-origin__intro{font-size:clamp(22px,6.8vw,30px);line-height:1.08}
  .about-origin__explore{min-height:0;margin-top:48px}
  .about-origin__hint{top:-18px;font-size:9px;text-align:center;white-space:normal}
  .about-origin__hint-desktop{display:none}
  .about-origin__hint-mobile{display:inline}
  .about-origin__timeline{
    position:relative;
    inset:auto;
    display:block;
    min-height:0;
    padding:42px 0 6px;
  }
  .about-origin__timeline::before{
    left:15px;
    right:auto;
    top:42px;
    bottom:8px;
    width:1px;
    height:auto;
    transform:none;
    background:linear-gradient(180deg,rgba(255,255,255,.18),rgba(255,255,255,.66) 18%,rgba(255,255,255,.32) 84%,rgba(255,255,255,.10));
  }
  .about-origin__step{
    min-height:84px;
    padding:0 0 26px 48px;
  }
  .about-origin__step::before{
    left:15px;
    top:15px;
    transform:translate(-50%,-50%);
  }
  .about-origin__step::after{display:none}
  .about-origin__trigger,
  .about-origin__step--up .about-origin__trigger,
  .about-origin__step--down .about-origin__trigger{
    position:relative;
    inset:auto;
    left:auto;
    width:100%;
    max-width:none;
    text-align:left;
    transform:none;
  }
  .about-origin__index{margin-bottom:6px;font-size:8px}
  .about-origin__word{font-size:clamp(30px,10vw,42px);white-space:normal}
  .about-origin__word::after{right:auto;width:72px;bottom:-6px}
  .about-origin__card,
  .about-origin__step--up .about-origin__card,
  .about-origin__step--down .about-origin__card,
  .about-origin__step:first-child .about-origin__card,
  .about-origin__step:last-child .about-origin__card{
    position:relative;
    inset:auto;
    left:auto;
    width:100%;
    min-width:0;
    max-height:0;
    margin:0;
    padding:0 19px;
    overflow:hidden;
    border-width:0;
    opacity:0;
    visibility:hidden;
    transform:translateY(-5px);
    box-shadow:none;
    transition:max-height .38s cubic-bezier(.2,.75,.25,1),margin .28s ease,padding .28s ease,opacity .2s ease,transform .28s ease,visibility 0s linear .38s,border-width 0s linear .38s;
  }
  .about-origin__step.is-active .about-origin__card{
    max-height:260px;
    margin:19px 0 4px;
    padding:19px 19px 20px;
    border-width:1px;
    opacity:1;
    visibility:visible;
    transform:none;
    transition-delay:0s;
  }
  .about-origin__card p:last-child{font-size:14px;line-height:1.5}
  .about-origin__close{align-self:flex-start;max-width:330px;margin-top:28px;font-size:18px;text-align:left}
}



/* ¿Quiénes somos? — identidad / logo NODEVIA */
.about-logo{
  position:relative;
  width:100%;
  min-height:clamp(560px,66vh,700px);
  overflow:hidden;
  background:#E8E6E1;
  color:#141618;
  border-top:1px solid rgba(20,22,24,.08);
}

.about-logo__inner{
  width:min(100%,1640px);
  min-height:inherit;
  margin:0 auto;
  padding:clamp(72px,6vw,100px) clamp(38px,5vw,92px);
  display:grid;
  grid-template-columns:minmax(330px,.84fr) minmax(560px,1.16fr);
  gap:clamp(54px,7vw,110px);
  align-items:center;
}

.about-logo__copy{
  position:relative;
  z-index:2;
  max-width:560px;
}

.about-logo__title{
  margin:0;
  font-family:var(--font-display);
  font-size:clamp(56px,5.6vw,96px);
  font-weight:730;
  line-height:.86;
  letter-spacing:-.06em;
  color:#141618;
}

.about-logo__intro{
  max-width:470px;
  margin:28px 0 0;
  font-family:var(--font-editorial);
  font-size:clamp(21px,1.8vw,30px);
  font-weight:480;
  line-height:1.14;
  letter-spacing:-.02em;
  color:rgba(20,22,24,.68);
}

.about-logo__stage{
  --logo-color:#141618;
  position:relative;
  min-height:clamp(290px,33vw,420px);
  display:grid;
  align-items:center;
  justify-items:center;
  padding:clamp(94px,7vw,112px) clamp(28px,4vw,52px) clamp(54px,4.5vw,68px);
}

.about-logo__mark{
  display:block;
  width:min(100%,860px);
  height:auto;
  aspect-ratio:1944/344;
  background:transparent;
  transition:transform .38s cubic-bezier(.2,.75,.25,1),opacity .28s ease;
}

.about-logo__stage.is-changing .about-logo__mark{
  transform:scale(.985);
  opacity:.88;
}

.about-logo__paint{
  position:absolute;
  z-index:3;
  top:4px;
  left:6px;
  width:178px;
  height:178px;
  display:block;
  padding:0;
  border:0;
  background:transparent;
  cursor:pointer;
  transition:transform .22s cubic-bezier(.2,.75,.25,1),opacity .22s ease;
}

.about-logo__paint:hover{transform:translateY(-2px)}

.about-logo__paint:focus-visible{
  outline:2px solid #610000;
  outline-offset:4px;
}

.about-logo__paint-icon{
  width:100%;
  height:100%;
  display:block;
}

.about-logo__paint-image{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center;
}

.about-logo__paint.is-pouring .about-logo__paint-image{
  animation:logoPaintPour .42s cubic-bezier(.2,.75,.25,1);
}

@keyframes logoPaintPour{
  0%{transform:translateY(0) scale(1) rotate(0deg);opacity:1}
  45%{transform:translateY(2px) scale(1.03) rotate(-1.5deg);opacity:.96}
  100%{transform:translateY(0) scale(1) rotate(0deg);opacity:1}
}

.about-logo__color{
  position:absolute;
  left:18px;
  bottom:10px;
  display:flex;
  align-items:center;
  gap:10px;
  margin:0;
  font-family:var(--font-mono);
  font-size:9px;
  font-weight:700;
  line-height:1;
  letter-spacing:.12em;
  color:rgba(20,22,24,.46);
}

.about-logo__color b{font-weight:700;color:#610000}

@media(max-width:1040px){
  .about-logo__inner{grid-template-columns:1fr;gap:42px}
  .about-logo__copy{max-width:760px}
  .about-logo__stage{min-height:350px;padding:88px 24px 56px}
  .about-logo__paint{top:2px;left:-2px;width:154px;height:154px}
}

@media(max-width:620px){
  .about-logo{min-height:auto}
  .about-logo__inner{padding:62px 20px 54px;gap:34px}
  .about-logo__title{font-size:clamp(49px,15.5vw,70px);line-height:.87}
  .about-logo__intro{margin-top:22px;font-size:clamp(20px,6.4vw,27px)}
  .about-logo__stage{min-height:230px;padding:76px 8px 44px}
  .about-logo__paint{top:-2px;left:-6px;width:126px;height:126px}
  .about-logo__color{left:8px;bottom:4px;font-size:8px;gap:8px}
}

@media(prefers-reduced-motion:reduce){
  .about-opening__title,
  .about-opening__lead,
  .about-opening__copy,
  .about-opening__closing,
  .about-opening__roles span{
    opacity:1;
    transform:none;
    transition:none;
  }
  .about-opening__caret,
  .about-opening__delete,
  .about-opening__edit-pointer{display:none}
  .about-origin__hint.is-guiding{animation:originGuideReduced 7s linear forwards}
  .about-origin__word,
  .about-origin__card,
  .about-origin__step::before{transition:none}
}
@keyframes originGuideReduced{
  0%{opacity:0;transform:translate(-50%,0)}
  10%,78%{opacity:1;transform:translate(-50%,0)}
  100%{opacity:0;transform:translate(-50%,0);visibility:hidden}
}



body.cv-open{overflow:hidden}

/* CV */
.about-cv-cta{
  position:relative;
  width:100%;
  overflow:hidden;
  background:#610000;
  color:#F3F0E9;
}
.about-cv-cta__inner{
  width:min(100%,1640px);
  min-height:clamp(270px,32vh,360px);
  margin:0 auto;
  padding:clamp(54px,5vw,78px) clamp(34px,5vw,86px);
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:48px;
  align-items:center;
}
.about-cv-cta__title{
  margin:0;
  max-width:980px;
  font-family:var(--font-display);
  font-size:clamp(54px,5.4vw,94px);
  font-weight:730;
  line-height:.88;
  letter-spacing:-.06em;
  color:#F3F0E9;
}
.about-cv-cta__copy{
  max-width:680px;
  margin:20px 0 0;
  font-family:var(--font-editorial);
  font-size:clamp(20px,1.55vw,27px);
  line-height:1.18;
  color:rgba(243,240,233,.78);
}
.about-cv-cta__button{
  min-width:190px;
  min-height:62px;
  padding:0 26px;
  border:1px solid #F3F0E9;
  background:#F3F0E9;
  color:#141618;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:18px;
  font-family:var(--font-body);
  font-size:14px;
  font-weight:750;
  letter-spacing:.08em;
  cursor:pointer;
  transition:transform .24s ease,background .24s ease,color .24s ease;
}
.about-cv-cta__button:hover{transform:translateY(-3px);background:transparent;color:#F3F0E9}
.about-cv-cta__button svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8}

.cv-modal{
  width:100vw;
  max-width:none;
  height:100dvh;
  max-height:none;
  margin:0;
  padding:0;
  border:0;
  background:#141618;
  color:#F3F0E9;
  overflow:hidden;
}
.cv-modal::backdrop{background:rgba(14,16,17,.88)}
.cv-modal[open]{display:block}
.cv-modal__toolbar{
  position:sticky;
  top:0;
  z-index:10;
  min-height:70px;
  padding:0 clamp(18px,3vw,48px);
  background:#0f1112;
  border-bottom:1px solid rgba(243,240,233,.12);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}
.cv-modal__brand img{display:block;width:118px;height:auto}
.cv-modal__actions{display:flex;align-items:center;gap:10px}
.cv-modal__action,
.cv-modal__close{
  min-height:40px;
  padding:0 15px;
  border:1px solid rgba(243,240,233,.22);
  background:transparent;
  color:#F3F0E9;
  font-family:var(--font-body);
  font-size:11px;
  font-weight:700;
  letter-spacing:.08em;
  text-decoration:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
}
.cv-modal__action:hover,.cv-modal__close:hover{border-color:#F3F0E9;background:#F3F0E9;color:#141618}
.cv-modal__close{width:42px;padding:0;font-size:24px;font-weight:400;line-height:1}
.cv-modal__scroll{height:calc(100dvh - 70px);overflow:auto;overscroll-behavior:contain;padding:44px 22px 80px}
.cv-sheet{
  width:min(100%,1240px);
  margin:0 auto;
  padding:clamp(46px,5vw,72px);
  background:#F3F0E9;
  color:#141618;
  box-shadow:0 28px 80px rgba(0,0,0,.28);
}
.cv-sheet__hero{
  display:grid;
  grid-template-columns:150px minmax(0,1fr);
  gap:34px;
  align-items:center;
  padding-bottom:34px;
  border-bottom:1px solid rgba(20,22,24,.18);
}
.cv-sheet__photo{width:150px;aspect-ratio:1;border-radius:50%;overflow:hidden;border:2px solid #610000;background:#141618}
.cv-sheet__photo img{width:100%;height:100%;object-fit:cover;object-position:60% 42%;filter:grayscale(1);transform:scale(1.08);transform-origin:60% 42%}
.cv-sheet__name{margin:0;font-family:var(--font-display);font-size:clamp(56px,5vw,86px);font-weight:730;line-height:.82;letter-spacing:-.055em}
.cv-sheet__role{margin:15px 0 0;font-family:var(--font-body);font-size:clamp(18px,1.7vw,24px);font-weight:750;letter-spacing:.055em;color:#610000}
.cv-sheet__availability{margin:10px 0 0;font-family:var(--font-body);font-size:14px;font-weight:600;color:rgba(20,22,24,.62)}
.cv-sheet__contacts{display:flex;flex-wrap:wrap;gap:8px 20px;margin:20px 0 0;font-family:var(--font-body);font-size:13px;line-height:1.4}
.cv-sheet__contacts a{color:#141618;text-decoration:none;border-bottom:1px solid rgba(20,22,24,.28)}
.cv-specialties{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;margin:32px 0 0;background:rgba(20,22,24,.16);border:1px solid rgba(20,22,24,.16)}
.cv-specialty{min-height:78px;padding:17px 18px;background:#F3F0E9;display:flex;align-items:center;font-family:var(--font-mono);font-size:10px;font-weight:750;line-height:1.35;letter-spacing:.08em;text-transform:uppercase}
.cv-sheet__grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.72fr);gap:clamp(46px,5vw,78px);margin-top:42px}
.cv-section{margin-top:38px}.cv-section:first-child{margin-top:0}
.cv-section__title{margin:0 0 17px;font-family:var(--font-display);font-size:30px;font-weight:720;line-height:.95;letter-spacing:-.03em;text-transform:uppercase}
.cv-section__title::after{content:'';display:block;width:44px;height:4px;margin-top:10px;background:#610000}
.cv-summary{margin:0;font-family:var(--font-body);font-size:15px;line-height:1.58;color:rgba(20,22,24,.84)}
.cv-entry{padding:0 0 24px;margin:0 0 24px;border-bottom:1px solid rgba(20,22,24,.14)}
.cv-entry:last-child{margin-bottom:0}
.cv-entry__head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:start}
.cv-entry__role{margin:0;font-family:var(--font-body);font-size:17px;font-weight:800;line-height:1.25}
.cv-entry__org{margin:5px 0 0;font-family:var(--font-body);font-size:13px;font-weight:700;color:#610000}
.cv-entry__date{font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:.06em;white-space:nowrap;color:rgba(20,22,24,.56)}
.cv-entry__points{display:grid;gap:9px;margin-top:15px}
.cv-entry__point{position:relative;margin:0;padding-left:18px;font-family:var(--font-body);font-size:14px;line-height:1.48;color:rgba(20,22,24,.78)}
.cv-entry__point::before{content:'';position:absolute;left:0;top:.62em;width:8px;height:2px;background:#610000}
.cv-project{padding:16px 0;border-bottom:1px solid rgba(20,22,24,.12)}
.cv-project:first-of-type{padding-top:0}.cv-project:last-of-type{border-bottom:0}
.cv-project h4{margin:0;font-family:var(--font-body);font-size:15px;font-weight:800}
.cv-project p{margin:6px 0 0;font-family:var(--font-body);font-size:13.5px;line-height:1.48;color:rgba(20,22,24,.72)}
.cv-stack{display:grid;gap:17px}
.cv-stack__group h4{margin:0 0 7px;font-family:var(--font-body);font-size:12px;font-weight:800;text-transform:uppercase;color:#610000}
.cv-stack__group p{margin:0;font-family:var(--font-body);font-size:13.5px;line-height:1.48;color:rgba(20,22,24,.76)}
.cv-mini{padding:0 0 17px;margin:0 0 17px;border-bottom:1px solid rgba(20,22,24,.12)}
.cv-mini:last-child{border-bottom:0;margin-bottom:0}
.cv-mini h4{margin:0;font-family:var(--font-body);font-size:14px;font-weight:800;line-height:1.35}
.cv-mini p{margin:5px 0 0;font-family:var(--font-body);font-size:12.8px;line-height:1.45;color:rgba(20,22,24,.68)}
.cv-list{display:grid;gap:9px;margin:0;padding:0;list-style:none}
.cv-list li{font-family:var(--font-body);font-size:12.8px;line-height:1.4;color:rgba(20,22,24,.74)}
.cv-list strong{color:#141618}
.cv-sheet__footer{margin-top:46px;padding-top:22px;border-top:1px solid rgba(20,22,24,.18);display:flex;justify-content:space-between;gap:24px;align-items:center;font-family:var(--font-mono);font-size:9px;letter-spacing:.08em;color:rgba(20,22,24,.5);text-transform:uppercase}

@media(max-width:900px){
  .about-cv-cta__inner{grid-template-columns:1fr;gap:30px}
  .about-cv-cta__button{justify-self:start}
  .cv-modal__action--optional{display:none}
  .cv-sheet{padding:40px 28px}
  .cv-sheet__grid{grid-template-columns:1fr;gap:0}
  .cv-specialties{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:620px){
  .about-cv-cta__inner{min-height:auto;padding:52px 20px}
  .about-cv-cta__title{font-size:clamp(48px,15vw,68px)}
  .about-cv-cta__copy{font-size:20px}
  .about-cv-cta__button{width:100%}
  .cv-modal__toolbar{min-height:62px;padding:0 12px}
  .cv-modal__brand img{width:96px}
  .cv-modal__actions{gap:6px}
  .cv-modal__action{padding:0 9px;font-size:9px}
  .cv-modal__close{width:38px;font-size:22px}
  .cv-modal__scroll{height:calc(100dvh - 62px);padding:18px 10px 50px}
  .cv-sheet{padding:30px 20px}
  .cv-sheet__hero{grid-template-columns:92px minmax(0,1fr);gap:19px;padding-bottom:26px}
  .cv-sheet__photo{width:92px}
  .cv-sheet__name{font-size:clamp(42px,12vw,58px)}
  .cv-sheet__role{margin-top:10px;font-size:15px}
  .cv-sheet__availability{font-size:12px}
  .cv-sheet__contacts{grid-column:1/-1;margin-top:14px;font-size:11.5px;gap:6px 14px}
  .cv-specialties{grid-template-columns:1fr 1fr;margin-top:24px}
  .cv-specialty{min-height:66px;padding:13px;font-size:8.5px}
  .cv-sheet__grid{margin-top:32px}
  .cv-section{margin-top:32px}
  .cv-section__title{font-size:27px}
  .cv-entry__head{grid-template-columns:1fr;gap:5px}
  .cv-entry__date{white-space:normal}
  .cv-sheet__footer{align-items:flex-start;flex-direction:column}
}



/* ¿Quiénes somos? — cierre */
.about-close{
  position:relative;
  width:100%;
  overflow:hidden;
  background:#141618;
  color:#F3F0E9;
  border-top:1px solid rgba(243,240,233,.08);
}

.about-close__inner{
  width:min(100%,1640px);
  min-height:clamp(330px,40vh,430px);
  margin:0 auto;
  padding:clamp(54px,4.5vw,76px) clamp(38px,5vw,92px);
  display:grid;
  grid-template-columns:minmax(0,1.12fr) minmax(360px,.88fr);
  gap:clamp(46px,6vw,96px);
  align-items:center;
}

.about-close__title{
  margin:0;
  max-width:880px;
  font-family:var(--font-display);
  font-size:clamp(52px,5.3vw,88px);
  font-weight:730;
  line-height:.88;
  letter-spacing:-.058em;
  color:#F3F0E9;
  text-wrap:balance;
}

.about-close__title span{
  display:block;
  margin-top:.08em;
  color:#610000;
}

.about-close__side{
  align-self:center;
}

.about-close__copy{
  max-width:560px;
  margin:0 0 24px;
  font-family:var(--font-editorial);
  font-size:clamp(18px,1.35vw,23px);
  font-weight:480;
  line-height:1.28;
  letter-spacing:-.015em;
  color:rgba(243,240,233,.78);
}

.about-close__actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
}

.about-close__actions button{
  min-height:50px;
  padding:0 20px;
  border:1px solid #F3F0E9;
  background:#F3F0E9;
  color:#141618;
  font-family:var(--font-body);
  font-size:12px;
  font-weight:750;
  letter-spacing:.07em;
  cursor:pointer;
  transition:transform .22s ease,background .22s ease,color .22s ease,border-color .22s ease;
}

.about-close__actions button:first-child{
  background:#610000;
  border-color:#610000;
  color:#F3F0E9;
}

.about-close__actions button:first-child:hover,
.about-close__actions button:first-child:focus-visible{
  transform:translateY(-2px);
  background:#F3F0E9;
  border-color:#F3F0E9;
  color:#610000;
  outline:none;
}

.about-close__actions button:not(:first-child):hover,
.about-close__actions button:not(:first-child):focus-visible{
  transform:translateY(-2px);
  background:#141618;
  border-color:#F3F0E9;
  color:#F3F0E9;
  outline:none;
}

@media(max-width:900px){
  .about-close__inner{
    grid-template-columns:1fr;
    min-height:auto;
    gap:34px;
  }
  .about-close__title{max-width:820px}
}

@media(max-width:620px){
  .about-close__inner{padding:54px 20px 52px;gap:28px}
  .about-close__title{font-size:clamp(48px,14vw,66px);line-height:.9}
  .about-close__copy{font-size:clamp(18px,5.4vw,22px)}
  .about-close__actions{display:grid;grid-template-columns:1fr}
  .about-close__actions button{width:100%}
}



/* Servicios — entrada */
.site-view[data-view="servicios"]{
  overflow-y:auto;
  overflow-x:hidden;
  overscroll-behavior-y:contain;
  background:#141618;
  color:#F3F0E9;
}

.services-entry{
  position:relative;
  width:100%;
  background:#610000;
  color:#F3F0E9;
}

.services-entry__inner{
  width:min(100%,1640px);
  margin:0 auto;
  padding:calc(var(--utility-h) + clamp(94px,6.2vw,116px)) clamp(38px,5vw,92px) clamp(52px,4vw,70px);
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(320px,.72fr);
  gap:clamp(34px,4vw,84px);
  align-items:end;
}

.services-entry__title{
  margin:0;
  max-width:860px;
  font-family:var(--font-display);
  font-size:clamp(60px,6vw,98px);
  font-weight:730;
  line-height:.88;
  letter-spacing:-.065em;
  color:#F3F0E9;
}

.services-entry__copy{
  margin:18px 0 0;
  max-width:760px;
  font-family:var(--font-editorial);
  font-size:clamp(22px,2vw,33px);
  line-height:1.12;
  letter-spacing:-.018em;
  color:rgba(243,240,233,.94);
}

.services-entry__body{
  display:grid;
  gap:22px;
  align-self:end;
}

.services-entry__description{
  margin:0;
  max-width:520px;
  font-family:var(--font-body);
  font-size:clamp(16px,1.35vw,20px);
  line-height:1.46;
  letter-spacing:.002em;
  color:rgba(243,240,233,.88);
}

.services-entry__highlights{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}

.services-entry__highlights span{
  min-height:38px;
  padding:0 14px;
  border:1px solid rgba(243,240,233,.24);
  display:inline-flex;
  align-items:center;
  background:rgba(255,255,255,.055);
  font-family:var(--font-body);
  font-size:12px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:#F3F0E9;
}

.services-entry__cta{
  width:max-content;
  min-width:220px;
  min-height:52px;
  padding:0 18px 0 20px;
  border:1px solid #F3F0E9;
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  background:#F3F0E9;
  color:#610000;
  font-family:var(--font-body);
  font-size:14px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  cursor:pointer;
  transition:background .24s ease,color .24s ease,border-color .24s ease,transform .24s ease;
}

.services-entry__cta svg{
  width:18px;
  height:18px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
  transition:transform .24s ease;
}

.services-entry__cta:hover,
.services-entry__cta:focus-visible{
  background:#141618;
  color:#F3F0E9;
  border-color:#F3F0E9;
  transform:translateY(-2px);
  outline:none;
}

.services-entry__cta:hover svg,
.services-entry__cta:focus-visible svg{
  transform:translateX(2px);
}

@media(max-width:980px){
  .services-entry__inner{
    grid-template-columns:1fr;
    align-items:start;
  }
  .services-entry__title,
  .services-entry__copy,
  .services-entry__description{max-width:none}
}

@media(max-width:620px){
  .services-entry__inner{
    padding:calc(var(--utility-h) + 88px) 20px 42px;
    gap:28px;
  }
  .services-entry__title{font-size:clamp(46px,14vw,62px);line-height:.9}
  .services-entry__copy{margin-top:14px;font-size:clamp(20px,6vw,25px);line-height:1.08}
  .services-entry__description{font-size:16px;line-height:1.45}
  .services-entry__highlights{gap:8px}
  .services-entry__highlights span{min-height:34px;font-size:11px;letter-spacing:.1em}
  .services-entry__cta{width:100%}
}



/* Servicios — tipos de web */
.services-types{
  position:relative;
  width:100%;
  background:#F8F7F3;
  color:#141618;
}

.services-types__inner{
  width:min(100%,1640px);
  margin:0 auto;
  padding:clamp(52px,4.6vw,72px) clamp(38px,5vw,92px) clamp(58px,5vw,78px);
}

.services-types__head{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(320px,.72fr);
  gap:clamp(28px,4vw,74px);
  align-items:end;
  margin-bottom:clamp(36px,3.6vw,52px);
}

.services-types__title{
  margin:0;
  max-width:760px;
  font-family:var(--font-display);
  font-size:clamp(46px,4.15vw,70px);
  font-weight:730;
  line-height:.93;
  letter-spacing:-.055em;
  color:#141618;
}

.services-types__intro{
  margin:0;
  max-width:520px;
  justify-self:end;
  font-family:var(--font-editorial);
  font-size:clamp(18px,1.35vw,24px);
  line-height:1.22;
  letter-spacing:-.012em;
  color:rgba(20,22,24,.66);
}

.services-types__grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:34px clamp(30px,2.8vw,52px);
}

.services-type{
  position:relative;
  min-height:auto;
  padding:0;
  background:transparent;
}

.services-type__index{
  display:block;
  margin-bottom:16px;
  font-family:var(--font-mono);
  font-size:10px;
  font-weight:700;
  letter-spacing:.15em;
  color:#610000;
}

.services-type__title{
  margin:0 0 12px;
  font-family:var(--font-display);
  font-size:clamp(28px,2.05vw,40px);
  font-weight:720;
  line-height:.94;
  letter-spacing:-.045em;
  color:#141618;
}

.services-type__text{
  margin:0;
  max-width:37ch;
  font-family:var(--font-body);
  font-size:clamp(15px,1vw,18px);
  line-height:1.48;
  color:rgba(20,22,24,.72);
}

@media(max-width:980px){
  .services-types__head{grid-template-columns:1fr;gap:22px}
  .services-types__intro{justify-self:start;max-width:760px}
  .services-types__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 28px}
}

@media(max-width:620px){
  .services-types__inner{padding:46px 20px 54px}
  .services-types__head{margin-bottom:32px}
  .services-types__title{font-size:clamp(42px,12vw,56px);line-height:.93}
  .services-types__intro{font-size:18px}
  .services-types__grid{grid-template-columns:1fr;gap:28px}
  .services-type__index{margin-bottom:12px}
  .services-type__title{font-size:33px}
  .services-type__text{font-size:16px;max-width:none}
}



/* Servicios — capas del servicio */
.services-depth{
  position:relative;
  width:100%;
  background:#141618;
  color:#F3F0E9;
  overflow:hidden;
}

.services-depth__inner{
  position:relative;
  width:min(100%,1640px);
  margin:0 auto;
  padding:clamp(68px,5vw,94px) clamp(38px,5vw,92px) clamp(76px,5.4vw,110px);
}

.services-depth__head{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(290px,.46fr);
  gap:clamp(28px,4vw,76px);
  align-items:end;
  margin-bottom:clamp(42px,4vw,58px);
}

.services-depth__title{
  margin:0;
  max-width:820px;
  font-family:var(--font-display);
  font-size:clamp(52px,5vw,86px);
  font-weight:730;
  line-height:.9;
  letter-spacing:-.06em;
  color:#F3F0E9;
}

.services-depth__intro{
  margin:16px 0 0;
  max-width:780px;
  font-family:var(--font-editorial);
  font-size:clamp(20px,1.65vw,29px);
  line-height:1.14;
  letter-spacing:-.015em;
  color:rgba(243,240,233,.92);
}

.services-depth__statement{
  margin:0;
  max-width:360px;
  justify-self:end;
  font-family:var(--font-body);
  font-size:14px;
  line-height:1.5;
  letter-spacing:.02em;
  text-transform:uppercase;
  color:rgba(243,240,233,.56);
}

.services-depth__stack{
  position:relative;
  z-index:2;
}


.depth-item{
  position:relative;
  width:100%;
  padding:22px 0 22px;
  border:0;
  border-top:1px solid rgba(243,240,233,.14);
  background:transparent;
  color:inherit;
  display:grid;
  grid-template-columns:72px minmax(280px,.92fr) minmax(300px,1fr);
  gap:26px;
  align-items:start;
  text-align:left;
  cursor:pointer;
  transition:padding .28s ease, transform .28s ease;
}

.depth-item:last-child{
  border-bottom:1px solid rgba(243,240,233,.14);
}

.depth-item::after{
  content:'';
  position:absolute;
  left:0;
  top:-1px;
  width:0;
  height:1px;
  background:#610000;
  transition:width .34s ease;
}

.depth-item:hover,
.depth-item:focus-visible,
.depth-item.is-active{
  padding:30px 0 32px;
  transform:translateX(4px);
  outline:none;
}

.depth-item:hover::after,
.depth-item:focus-visible::after,
.depth-item.is-active::after{
  width:100%;
}

.depth-item__index{
  padding-top:9px;
  font-family:var(--font-mono);
  font-size:10px;
  font-weight:700;
  letter-spacing:.14em;
  color:#610000;
}

.depth-item__main{
  display:grid;
  gap:12px;
}

.depth-item__title{
  font-family:var(--font-display);
  font-size:clamp(34px,2.6vw,54px);
  font-weight:720;
  line-height:.9;
  letter-spacing:-.05em;
  color:#F3F0E9;
  transition:transform .28s ease, color .28s ease;
}

.depth-item__summary{
  max-width:34ch;
  font-family:var(--font-body);
  font-size:15px;
  line-height:1.52;
  color:rgba(243,240,233,.68);
  transition:color .28s ease;
}

.depth-item__detail{
  display:grid;
  gap:14px;
  justify-items:start;
  opacity:.22;
  transform:translateY(16px);
  transition:opacity .28s ease, transform .28s ease;
}

.depth-item:hover .depth-item__detail,
.depth-item:focus-visible .depth-item__detail,
.depth-item.is-active .depth-item__detail{
  opacity:1;
  transform:translateY(0);
}

.depth-item:hover .depth-item__summary,
.depth-item:focus-visible .depth-item__summary,
.depth-item.is-active .depth-item__summary{
  color:rgba(243,240,233,.94);
}

.depth-item:hover .depth-item__title,
.depth-item:focus-visible .depth-item__title,
.depth-item.is-active .depth-item__title{
  color:#F3F0E9;
  transform:translateX(6px);
}

.depth-item__chips{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.depth-item__chips span{
  min-height:28px;
  padding:0 10px;
  border:1px solid rgba(243,240,233,.14);
  display:inline-flex;
  align-items:center;
  background:rgba(255,255,255,.03);
  font-family:var(--font-mono);
  font-size:9px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:rgba(243,240,233,.74);
}

.depth-item__text{
  max-width:48ch;
  font-family:var(--font-body);
  font-size:14px;
  line-height:1.58;
  color:rgba(243,240,233,.72);
}

.depth-item__line{
  width:58px;
  height:2px;
  background:#610000;
  transform-origin:left center;
  transform:scaleX(.48);
  transition:transform .28s ease;
}

.depth-item:hover .depth-item__line,
.depth-item:focus-visible .depth-item__line,
.depth-item.is-active .depth-item__line{
  transform:scaleX(1);
}

@media(max-width:1080px){
  .services-depth__head{grid-template-columns:1fr;gap:18px}
  .services-depth__statement{justify-self:start;max-width:700px}
  .depth-item{
    grid-template-columns:58px minmax(0,1fr);
  }
  .depth-item__detail{grid-column:2}
}

@media(max-width:720px){
  .services-depth__inner{padding:54px 20px 70px}
  .services-depth__title{font-size:clamp(42px,12vw,58px)}
  .services-depth__intro{font-size:18px}
  .depth-item{
    grid-template-columns:1fr;
    gap:14px;
    padding:18px 0 20px;
  }
  .depth-item:hover,
  .depth-item:focus-visible,
  .depth-item.is-active{padding:24px 0 26px;transform:none}
  .depth-item__index{padding-top:0}
  .depth-item__main{gap:10px}
  .depth-item__title{font-size:34px}
  .depth-item__summary,.depth-item__text{max-width:none;font-size:15px}
  .depth-item__detail{gap:12px;opacity:1;transform:none}
}




/* Servicios — hosting e infraestructura */
.services-hosting{
  position:relative;
  width:100%;
  background:#F8F7F3;
  color:#141618;
  overflow:hidden;
}

.services-hosting__inner{
  width:min(100%,1640px);
  margin:0 auto;
  padding:clamp(58px,4.8vw,82px) clamp(38px,5vw,92px) clamp(58px,4.8vw,82px);
}

.services-hosting__layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(360px,.82fr);
  gap:clamp(34px,4.8vw,88px);
  align-items:start;
}

.services-hosting__title{
  margin:0;
  max-width:760px;
  font-family:var(--font-display);
  font-size:clamp(48px,4.6vw,76px);
  font-weight:730;
  line-height:.9;
  letter-spacing:-.06em;
  color:#141618;
}

.services-hosting__intro{
  margin:16px 0 0;
  max-width:690px;
  font-family:var(--font-editorial);
  font-size:clamp(20px,1.5vw,27px);
  line-height:1.16;
  letter-spacing:-.015em;
  color:rgba(20,22,24,.74);
}

.services-hosting__note{
  margin:18px 0 0;
  max-width:560px;
  font-family:var(--font-body);
  font-size:15px;
  line-height:1.56;
  color:rgba(20,22,24,.68);
}

.services-hosting__panel{
  position:relative;
  min-height:340px;
  padding:10px 0;
}

.services-hosting__items{
  position:relative;
  min-height:300px;
}

.hosting-spot{
  position:absolute;
  inset:0;
  display:grid;
  align-content:start;
  gap:18px;
  opacity:0;
  transform:translateY(18px);
  pointer-events:none;
  transition:opacity .45s ease, transform .45s ease;
}

.hosting-spot.is-active{
  opacity:1;
  transform:translateY(0);
  pointer-events:auto;
}

.hosting-spot__top{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:18px;
}

.hosting-spot__counter{
  font-family:var(--font-mono);
  font-size:11px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:#610000;
}

.hosting-spot__title{
  margin:0;
  font-family:var(--font-display);
  font-size:clamp(44px,4vw,68px);
  font-weight:730;
  line-height:.9;
  letter-spacing:-.06em;
  color:#141618;
}

.hosting-spot__text{
  margin:0;
  max-width:39ch;
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.64;
  color:rgba(20,22,24,.74);
}

.hosting-spot__meta{
  display:flex;
  flex-wrap:wrap;
  gap:8px 14px;
  padding-top:4px;
}

.hosting-spot__meta span{
  font-family:var(--font-mono);
  font-size:10px;
  font-weight:700;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:rgba(20,22,24,.56);
}

.services-hosting__nav{
  display:flex;
  flex-wrap:wrap;
  gap:18px 22px;
  margin-top:12px;
}

.services-hosting__nav button{
  padding:0;
  border:0;
  background:transparent;
  font-family:var(--font-body);
  font-size:14px;
  font-weight:600;
  letter-spacing:.02em;
  color:rgba(20,22,24,.42);
  cursor:pointer;
  transition:color .24s ease, transform .24s ease;
}

.services-hosting__nav button:hover,
.services-hosting__nav button:focus-visible,
.services-hosting__nav button.is-active{
  color:#610000;
  transform:translateX(2px);
  outline:none;
}

.services-hosting__nav button.is-active{
  color:#141618;
}

@media(max-width:980px){
  .services-hosting__layout{grid-template-columns:1fr;gap:30px}
  .services-hosting__panel{min-height:320px}
  .services-hosting__items{min-height:280px}
}

@media(max-width:720px){
  .services-hosting__inner{padding:50px 20px 54px}
  .services-hosting__title{font-size:clamp(42px,12vw,56px)}
  .services-hosting__intro{font-size:18px}
  .services-hosting__panel{min-height:370px}
  .services-hosting__items{min-height:330px}
  .hosting-spot{gap:14px}
  .hosting-spot__top{align-items:flex-start;flex-direction:column;gap:10px}
  .hosting-spot__title{font-size:42px}
  .hosting-spot__text{font-size:15px;max-width:none}
  .services-hosting__nav{gap:12px 16px}
  .services-hosting__nav button{font-size:13px}
}



/* Servicios — seguridad */
.services-security{
  position:relative;
  width:100%;
  background:#610000;
  color:#F3F0E9;
  overflow:hidden;
}

.services-security__inner{
  width:min(100%,1640px);
  margin:0 auto;
  padding:clamp(58px,4.8vw,82px) clamp(38px,5vw,92px) clamp(60px,4.8vw,84px);
  display:grid;
  grid-template-columns:minmax(0,.88fr) minmax(520px,1.12fr);
  gap:clamp(42px,5vw,92px);
  align-items:start;
}

.services-security__title{
  margin:0;
  max-width:650px;
  font-family:var(--font-display);
  font-size:clamp(48px,4.8vw,78px);
  font-weight:730;
  line-height:.9;
  letter-spacing:-.06em;
  color:#F3F0E9;
}

.services-security__intro{
  margin:18px 0 0;
  max-width:600px;
  font-family:var(--font-editorial);
  font-size:clamp(20px,1.55vw,27px);
  line-height:1.16;
  letter-spacing:-.015em;
  color:rgba(243,240,233,.9);
}

.services-security__aside{
  margin:22px 0 0;
  max-width:560px;
  font-family:var(--font-body);
  font-size:15px;
  line-height:1.55;
  color:rgba(243,240,233,.66);
}

.security-stack{
  display:grid;
  gap:10px;
}

.security-layer{
  margin:0;
  border:0;
  background:transparent;
}

.security-layer summary{
  list-style:none;
  min-height:58px;
  padding:0 4px 0 0;
  display:grid;
  grid-template-columns:48px minmax(0,1fr) 28px;
  gap:16px;
  align-items:center;
  border-bottom:1px solid rgba(243,240,233,.22);
  cursor:pointer;
  color:#F3F0E9;
  transition:padding .24s ease,background .24s ease,border-color .24s ease;
}

.security-layer summary::-webkit-details-marker{display:none}

.security-layer summary:hover,
.security-layer summary:focus-visible{
  padding-left:10px;
  background:rgba(243,240,233,.045);
  border-color:rgba(243,240,233,.4);
  outline:none;
}

.security-layer[open] summary{
  padding-left:10px;
  background:#F3F0E9;
  color:#610000;
  border-color:#F3F0E9;
}

.security-layer__index{
  font-family:var(--font-mono);
  font-size:10px;
  font-weight:700;
  letter-spacing:.12em;
  color:rgba(243,240,233,.62);
}

.security-layer[open] .security-layer__index{color:#610000}

.security-layer__title{
  font-family:var(--font-display);
  font-size:clamp(25px,2vw,34px);
  font-weight:720;
  line-height:.95;
  letter-spacing:-.045em;
}

.security-layer__toggle{
  position:relative;
  width:22px;
  height:22px;
  justify-self:end;
}

.security-layer__toggle::before,
.security-layer__toggle::after{
  content:'';
  position:absolute;
  left:50%;
  top:50%;
  width:14px;
  height:1.5px;
  background:currentColor;
  transform:translate(-50%,-50%);
  transition:transform .24s ease;
}

.security-layer__toggle::after{transform:translate(-50%,-50%) rotate(90deg)}
.security-layer[open] .security-layer__toggle::after{transform:translate(-50%,-50%) rotate(0deg)}

.security-layer__content{
  padding:15px 54px 20px 64px;
  font-family:var(--font-body);
  font-size:15px;
  line-height:1.58;
  color:rgba(243,240,233,.82);
  animation:securityLayerIn .26s ease both;
}

.security-layer__content strong{
  color:#F3F0E9;
  font-weight:700;
}

@keyframes securityLayerIn{
  from{opacity:0;transform:translateY(-8px)}
  to{opacity:1;transform:translateY(0)}
}

@media(max-width:980px){
  .services-security__inner{grid-template-columns:1fr;gap:34px}
  .services-security__title,.services-security__intro,.services-security__aside{max-width:none}
}

@media(max-width:620px){
  .services-security__inner{padding:50px 20px 56px;gap:30px}
  .services-security__title{font-size:clamp(42px,12vw,56px)}
  .services-security__intro{font-size:18px}
  .security-layer summary{grid-template-columns:40px minmax(0,1fr) 24px;gap:12px;min-height:56px}
  .security-layer__title{font-size:27px}
  .security-layer__content{padding:14px 18px 18px 52px;font-size:14px}
}



/* Servicios — mantenimiento y evolución */
.services-care{
  position:relative;
  width:100%;
  background:#141618;
  color:#F3F0E9;
  overflow:hidden;
}

.services-care__inner{
  width:min(100%,1640px);
  margin:0 auto;
  padding:clamp(58px,4.8vw,82px) clamp(38px,5vw,92px) clamp(58px,4.8vw,82px);
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(440px,1.1fr);
  gap:clamp(46px,5.4vw,96px);
  align-items:center;
}

.services-care__title{
  margin:0;
  max-width:650px;
  font-family:var(--font-display);
  font-size:clamp(48px,4.7vw,78px);
  font-weight:730;
  line-height:.9;
  letter-spacing:-.06em;
  color:#F3F0E9;
}

.services-care__intro{
  margin:18px 0 0;
  max-width:590px;
  font-family:var(--font-editorial);
  font-size:clamp(21px,1.6vw,28px);
  line-height:1.15;
  letter-spacing:-.015em;
  color:#F3F0E9;
}

.services-care__copy{
  margin:20px 0 0;
  max-width:560px;
  font-family:var(--font-body);
  font-size:15px;
  line-height:1.56;
  color:rgba(243,240,233,.74);
}

.services-care__stage{
  position:relative;
  min-height:250px;
  display:flex;
  align-items:center;
}

.care-change{
  position:absolute;
  inset:0;
  display:grid;
  align-content:center;
  gap:16px;
  opacity:0;
  transform:translateY(18px);
  animation:careCycle 24s infinite;
}

.care-change:nth-child(1){animation-delay:0s}
.care-change:nth-child(2){animation-delay:6s}
.care-change:nth-child(3){animation-delay:12s}
.care-change:nth-child(4){animation-delay:18s}

.care-change__index{
  font-family:var(--font-mono);
  font-size:10px;
  font-weight:700;
  letter-spacing:.14em;
  color:#610000;
}

.care-change__title{
  margin:0;
  font-family:var(--font-display);
  font-size:clamp(58px,6.4vw,108px);
  font-weight:730;
  line-height:.82;
  letter-spacing:-.075em;
  color:#F3F0E9;
}

.care-change__text{
  margin:0;
  max-width:44ch;
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.58;
  color:#F3F0E9;
}

.services-care__note{
  margin:22px 0 0;
  font-family:var(--font-body);
  font-size:13px;
  font-weight:650;
  letter-spacing:.03em;
  color:rgba(243,240,233,.7);
}

@keyframes careCycle{
  0%{opacity:0;transform:translateY(18px)}
  3%{opacity:1;transform:translateY(0)}
  21%{opacity:1;transform:translateY(0)}
  25%{opacity:0;transform:translateY(-14px)}
  100%{opacity:0;transform:translateY(-14px)}
}

@media(prefers-reduced-motion:reduce){
  .care-change{animation:none;opacity:0;transform:none}
  .care-change:first-child{opacity:1}
}

@media(max-width:980px){
  .services-care__inner{grid-template-columns:1fr;gap:32px}
  .services-care__stage{min-height:235px}
}

@media(max-width:620px){
  .services-care__inner{padding:50px 20px 56px;gap:28px}
  .services-care__title{font-size:clamp(42px,12vw,56px)}
  .services-care__intro{font-size:19px}
  .services-care__copy{font-size:14px}
  .services-care__stage{min-height:245px}
  .care-change__title{font-size:clamp(54px,17vw,82px)}
  .care-change__text{font-size:15px}
}



/* Servicios — proceso */
.services-process{
  position:relative;
  width:100%;
  background:#F3F0E9;
  color:#141618;
}

.services-process__inner{
  width:min(100%,1600px);
  margin:0 auto;
  padding:clamp(58px,4.8vw,82px) clamp(34px,4vw,72px) clamp(62px,5vw,86px);
}

.services-process__head{
  max-width:900px;
  display:grid;
  gap:16px;
}

.services-process__title{
  margin:0;
  font-family:var(--font-display);
  font-size:clamp(48px,4.5vw,76px);
  font-weight:720;
  line-height:.92;
  letter-spacing:-.055em;
}

.services-process__intro{
  margin:0;
  max-width:760px;
  font-family:var(--font-editorial);
  font-size:clamp(22px,1.65vw,29px);
  line-height:1.14;
  color:#333638;
}

.services-process__steps{
  margin-top:44px;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:26px;
}

.process-step{
  display:grid;
  gap:14px;
  align-content:start;
  padding-top:18px;
  border-top:1px solid rgba(20,22,24,.16);
}

.process-step__index{
  font-family:var(--font-mono);
  font-size:10px;
  font-weight:700;
  letter-spacing:.14em;
  color:var(--accent);
}

.process-step__title{
  margin:0;
  font-family:var(--font-display);
  font-size:clamp(28px,2.3vw,40px);
  font-weight:720;
  line-height:.95;
  letter-spacing:-.045em;
}

.process-step__text{
  margin:0;
  max-width:34ch;
  font-family:var(--font-body);
  font-size:15px;
  line-height:1.58;
  color:#4b4f53;
}

@media(max-width:980px){
  .services-process__steps{grid-template-columns:1fr;gap:22px}
}

@media(max-width:620px){
  .services-process__inner{padding:50px 20px 54px}
  .services-process__title{font-size:clamp(42px,12vw,56px)}
  .services-process__intro{font-size:19px}
  .process-step__title{font-size:30px}
  .process-step__text{font-size:14px}
}

/* Servicios — cierre */
.services-close{
  position:relative;
  width:100%;
  background:#141618;
  color:#F3F0E9;
}

.services-close__inner{
  width:min(100%,1600px);
  margin:0 auto;
  padding:clamp(58px,4.8vw,84px) clamp(34px,4vw,72px);
  display:grid;
  grid-template-columns:minmax(0,1.18fr) minmax(320px,.82fr);
  gap:clamp(38px,4.5vw,82px);
  align-items:end;
}

.services-close__title{
  margin:0;
  max-width:900px;
  font-family:var(--font-display);
  font-size:clamp(52px,4.9vw,84px);
  font-weight:720;
  line-height:.9;
  letter-spacing:-.06em;
}

.services-close__title span{
  display:block;
  color:var(--accent);
}

.services-close__side{
  max-width:420px;
  justify-self:end;
}

.services-close__copy{
  margin:0;
  font-family:var(--font-editorial);
  font-size:clamp(22px,1.55vw,27px);
  line-height:1.18;
  color:rgba(243,240,233,.9);
}

.services-close__actions{
  margin-top:26px;
  display:flex;
  flex-wrap:wrap;
  gap:12px;
}

.services-close__actions button{
  min-height:54px;
  padding:0 22px;
  border:1px solid rgba(243,240,233,.24);
  background:transparent;
  color:#F3F0E9;
  font-family:var(--font-body);
  font-size:13px;
  font-weight:650;
  letter-spacing:.015em;
  cursor:pointer;
  transition:background .22s ease,color .22s ease,border-color .22s ease,transform .22s ease;
}

.services-close__actions button:first-child{
  background:var(--accent);
  border-color:var(--accent);
  color:#fff;
}

.services-close__actions button:hover,
.services-close__actions button:focus-visible{
  transform:translateY(-1px);
  outline:none;
}

.services-close__actions button:first-child:hover,
.services-close__actions button:first-child:focus-visible{
  background:#F3F0E9;
  border-color:#F3F0E9;
  color:#141618;
}

.services-close__actions button:not(:first-child):hover,
.services-close__actions button:not(:first-child):focus-visible{
  background:#F3F0E9;
  border-color:#F3F0E9;
  color:#141618;
}

@media(max-width:980px){
  .services-close__inner{grid-template-columns:1fr;align-items:start}
  .services-close__side{justify-self:start;max-width:580px}
}

@media(max-width:620px){
  .services-close__inner{padding:50px 20px 54px}
  .services-close__title{font-size:clamp(42px,12vw,58px)}
  .services-close__copy{font-size:19px}
  .services-close__actions{gap:10px}
  .services-close__actions button{width:100%;justify-content:center}
}



/* Portfolio — catálogo */
.portfolio-view{
  overflow-y:auto;
  overflow-x:hidden;
  overscroll-behavior-y:contain;
  background:#fff;
  color:#141618;
  scroll-behavior:smooth;
}
.portfolio-catalog{min-height:100%;animation:portfolioViewIn .34s cubic-bezier(.2,.75,.25,1) both}
@keyframes portfolioViewIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

.portfolio-intro{background:#fff;color:#141618}
.portfolio-intro__inner{
  width:min(100%,1600px);
  margin:0 auto;
  padding:calc(var(--utility-h) + clamp(100px,6.7vw,122px)) clamp(34px,4vw,72px) clamp(56px,4.3vw,72px);
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(320px,.58fr);
  gap:clamp(36px,5vw,92px);
  align-items:end;
}
.portfolio-intro__title{
  margin:0;
  max-width:900px;
  font-family:var(--font-display);
  font-size:clamp(54px,4.65vw,80px);
  font-weight:730;
  line-height:.9;
  letter-spacing:-.058em;
}
.portfolio-intro__copy{
  margin:0;
  max-width:500px;
  justify-self:end;
  font-family:var(--font-editorial);
  font-size:clamp(21px,1.45vw,26px);
  line-height:1.2;
  color:rgba(20,22,24,.72);
}

/* Rojo arriba, gris oscuro abajo. La diagonal cae entre ambas filas y el catálogo termina en gris. */
.portfolio-catalog__body{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  background:#141618;
  color:#F3F0E9;
  border-bottom:3px solid #676B6E;
}
.portfolio-catalog__body::before{
  content:'';
  position:absolute;
  z-index:-2;
  inset:0;
  background:#610000;
  clip-path:polygon(0 0,100% 0,100% 40%,0 47%);
  pointer-events:none;
}
.portfolio-catalog__body::after{
  content:'';
  position:absolute;
  z-index:-1;
  inset:0;
  background:
    radial-gradient(circle at 18% 12%,rgba(255,255,255,.05),transparent 26%),
    linear-gradient(180deg,transparent 0 94%,rgba(103,107,110,.08) 100%);
  pointer-events:none;
}
.portfolio-catalog__inner{
  position:relative;
  z-index:1;
  width:min(100%,1600px);
  margin:0 auto;
  padding:clamp(46px,4vw,64px) clamp(34px,4vw,72px) 54px;
}
.portfolio-list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:clamp(48px,5vw,90px);
  row-gap:clamp(124px,9vw,164px);
  align-items:start;
}
.portfolio-preview{
  min-width:0;
  display:grid;
  grid-template-rows:112px clamp(300px,24vw,405px) 150px 56px;
  align-content:start;
}
.portfolio-preview[hidden]{display:none}
.portfolio-preview__name{
  margin:0 0 20px;
  min-height:1.72em;
  display:flex;
  align-items:flex-end;
  font-family:var(--font-display);
  font-size:clamp(42px,3.25vw,58px);
  font-weight:720;
  line-height:.91;
  letter-spacing:-.055em;
  color:#F3F0E9;
}
.portfolio-preview__visual{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:0;
  padding:0 4px 10px;
  cursor:pointer;
  touch-action:manipulation;
}
.portfolio-preview__device{
  display:block;
  width:100%;
  max-width:700px;
  height:100%;
  max-height:400px;
  object-fit:contain;
  object-position:center;
  filter:drop-shadow(0 24px 38px rgba(0,0,0,.28));
  transform:translateY(0) scale(1);
  transition:transform .38s cubic-bezier(.2,.75,.25,1),filter .38s ease;
  pointer-events:none;
}
.portfolio-preview__visual:hover .portfolio-preview__device,
.portfolio-preview__visual:focus-within .portfolio-preview__device,
.portfolio-preview__visual.is-image-active .portfolio-preview__device{
  transform:translateY(-6px) scale(1.015);
  filter:drop-shadow(0 32px 50px rgba(0,0,0,.38));
}
.portfolio-preview__intro{
  margin:18px 0 0;
  max-width:58ch;
  align-self:start;
  font-family:var(--font-body);
  font-size:clamp(15px,1vw,17px);
  line-height:1.58;
  color:rgba(243,240,233,.9);
}
.portfolio-preview__actions{
  margin-top:0;
  display:flex;
  align-items:center;
  gap:10px;
  min-height:56px;
}
.portfolio-preview__visit,
.portfolio-preview__work,
.portfolio-preview__offline{
  width:184px;
  min-height:54px;
  padding:0 16px;
  border:1px solid #F3F0E9;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-family:var(--font-body);
  font-size:11px;
  font-weight:750;
  letter-spacing:.02em;
  cursor:pointer;
  transition:background .22s ease,color .22s ease,border-color .22s ease,transform .22s ease;
}
.portfolio-preview__visit{
  background:#F3F0E9;
  color:#610000;
}
.portfolio-preview__work{
  background:transparent;
  color:#F3F0E9;
}
.portfolio-preview__visit:hover,
.portfolio-preview__visit:focus-visible,
.portfolio-preview__work:hover,
.portfolio-preview__work:focus-visible{
  background:#F3F0E9;
  color:#141618;
  border-color:#F3F0E9;
  transform:translateY(-1px);
  outline:none;
}
.portfolio-preview__visit:hover,
.portfolio-preview__visit:focus-visible{background:#141618;color:#F3F0E9;border-color:#141618}
.portfolio-preview__offline{
  width:230px;
  background:transparent;
  color:#F3F0E9;
  border-color:rgba(243,240,233,.68);
}
.portfolio-preview__offline:hover,
.portfolio-preview__offline:focus-visible{
  background:#F3F0E9;
  color:#141618;
  border-color:#F3F0E9;
  transform:translateY(-1px);
  outline:none;
}

/* Paginación del catálogo */
.portfolio-pagination{
  margin-top:clamp(96px,7.5vw,132px);
  padding:30px 0 4px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  border-top:1px solid rgba(103,107,110,.58);
}
.portfolio-pagination>div{display:flex;align-items:center;gap:10px}
.portfolio-pagination button{
  min-width:48px;
  height:48px;
  padding:0 12px;
  border:1px solid rgba(243,240,233,.18);
  background:transparent;
  color:rgba(243,240,233,.78);
  font-family:var(--font-display);
  font-size:17px;
  font-weight:680;
  line-height:1;
  cursor:pointer;
  transition:background .22s ease,color .22s ease,border-color .22s ease,transform .22s ease;
}
.portfolio-pagination button:hover,
.portfolio-pagination button:focus-visible{
  background:#F3F0E9;
  color:#141618;
  border-color:#F3F0E9;
  transform:translateY(-2px);
  outline:none;
}
.portfolio-pagination button.is-active{
  background:#610000;
  color:#F3F0E9;
  border-color:#610000;
}
.portfolio-pagination button:disabled{
  opacity:.42;
  cursor:default;
  transform:none;
  background:transparent;
  color:rgba(243,240,233,.48);
  border-color:rgba(243,240,233,.12);
}

.portfolio-external-dialog,
.portfolio-offline-dialog{
  width:min(92vw,560px);
  padding:0;
  border:1px solid rgba(243,240,233,.18);
  background:#141618;
  color:#F3F0E9;
  box-shadow:0 30px 80px rgba(0,0,0,.45);
}
.portfolio-external-dialog::backdrop,
.portfolio-offline-dialog::backdrop{background:rgba(10,11,12,.72);backdrop-filter:blur(6px)}
.portfolio-external-dialog__inner,
.portfolio-offline-dialog__inner{padding:34px}
.portfolio-external-dialog__title,
.portfolio-offline-dialog__title{margin:0;font-family:var(--font-display);font-size:clamp(30px,3vw,42px);line-height:.95;letter-spacing:-.045em}
.portfolio-external-dialog__copy,
.portfolio-offline-dialog__copy{margin:18px 0 0;font-family:var(--font-body);font-size:15px;line-height:1.55;color:rgba(243,240,233,.76)}
.portfolio-external-dialog__url{margin-top:18px;padding:13px 14px;display:block;background:rgba(255,255,255,.04);font-family:var(--font-mono);font-size:11px;line-height:1.5;color:#D9A7A7;word-break:break-all}
.portfolio-external-dialog__actions,
.portfolio-offline-dialog__actions{margin-top:26px;display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.portfolio-external-dialog__actions button,
.portfolio-offline-dialog__actions button{min-height:48px;padding:0 18px;border:1px solid rgba(243,240,233,.25);background:transparent;color:#F3F0E9;font-family:var(--font-body);font-size:12px;font-weight:700;cursor:pointer}
.portfolio-external-dialog__actions button:last-child{background:#610000;border-color:#610000}
.portfolio-external-dialog__actions button:hover,
.portfolio-external-dialog__actions button:focus-visible,
.portfolio-offline-dialog__actions button:hover,
.portfolio-offline-dialog__actions button:focus-visible{background:#F3F0E9;color:#141618;border-color:#F3F0E9;outline:none}

@media(max-width:980px){
  .portfolio-intro__inner{grid-template-columns:1fr;gap:24px}
  .portfolio-intro__copy{justify-self:start;max-width:720px}
  .portfolio-list{column-gap:30px;row-gap:92px}
  .portfolio-preview{grid-template-rows:minmax(64px,auto) clamp(250px,30vw,330px) minmax(128px,auto) 56px}
  .portfolio-preview__name{font-size:clamp(38px,5vw,50px)}
  .portfolio-preview__visit,.portfolio-preview__work{width:calc(50% - 5px)}
}
@media(max-width:720px){
  .portfolio-intro__inner{padding:calc(var(--utility-h) + 88px) 20px 46px}
  .portfolio-intro__title{font-size:clamp(44px,12vw,58px)}
  .portfolio-intro__copy{font-size:19px}
  .portfolio-catalog__body::before{clip-path:polygon(0 0,100% 0,100% 43%,0 47%)}
  .portfolio-catalog__inner{padding:44px 20px 46px}
  .portfolio-list{grid-template-columns:1fr;row-gap:70px}
  .portfolio-preview{grid-template-rows:auto 270px auto auto}
  .portfolio-preview__name{min-height:auto;margin-bottom:14px;font-size:clamp(38px,11vw,52px)}
  .portfolio-preview__visual{padding:0 0 8px}
  .portfolio-preview__device{max-height:260px}
  .portfolio-preview__intro{margin-top:10px;font-size:15px;max-width:none}
  .portfolio-preview__actions{margin-top:20px;display:grid;grid-template-columns:1fr 1fr}
  .portfolio-preview__visit,.portfolio-preview__work{width:100%;min-height:52px}
  .portfolio-preview__offline{width:100%;min-height:52px;grid-column:1 / -1}
  .portfolio-pagination{margin-top:84px;padding-top:26px}
  .portfolio-external-dialog__inner,.portfolio-offline-dialog__inner{padding:26px 20px}
  .portfolio-external-dialog__actions{display:grid;grid-template-columns:1fr 1fr}
  .portfolio-external-dialog__actions button,.portfolio-offline-dialog__actions button{width:100%}
}
@media(max-width:430px){
  .portfolio-preview{grid-template-rows:auto 236px auto auto}
  .portfolio-preview__device{max-height:228px}
  .portfolio-preview__actions{grid-template-columns:1fr}
  .portfolio-preview__offline{grid-column:auto}
}

/* Portfolio — caso CONSELEC */
.portfolio-case[hidden]{display:none!important}
.portfolio-case{background:#141618;color:#F3F0E9}
.conselec-case__panel{position:relative;overflow:hidden}
.conselec-case__inner{width:min(100%,1480px);margin:0 auto;padding:clamp(78px,7vw,112px) clamp(28px,5vw,78px)}
.conselec-case__panel--hero{background:#610000;color:#fff}
.conselec-case__panel--light{background:#F7F6F2;color:#141618}
.conselec-case__panel--dark{background:#141618;color:#F3F0E9}
.conselec-case__panel--red{background:#610000;color:#fff}
.conselec-case__topline{padding-top:calc(var(--utility-h) + clamp(92px,7.2vw,126px));padding-bottom:26px}
.conselec-case__back{min-height:46px;padding:0 16px;border:1px solid rgba(255,255,255,.48);background:transparent;color:#fff;font-family:var(--font-body);font-size:11px;font-weight:760;letter-spacing:.035em;cursor:pointer;transition:background .2s ease,color .2s ease,border-color .2s ease}
.conselec-case__back:hover,.conselec-case__back:focus-visible{background:#fff;color:#141618;border-color:#fff;outline:none}
.conselec-case__hero-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(360px,.72fr);gap:clamp(54px,7vw,126px);align-items:end}
.conselec-case__hero-title,.conselec-case__title{margin:0;font-family:var(--font-display);font-weight:735;letter-spacing:-.055em}
.conselec-case__hero-title{max-width:860px;font-size:clamp(58px,6vw,104px);line-height:.9}
.conselec-case__hero-copy{margin:0;max-width:570px;font-family:var(--font-editorial);font-size:clamp(21px,1.55vw,27px);line-height:1.3}
.conselec-case__founded{margin-top:48px;display:flex;align-items:baseline;gap:18px;flex-wrap:wrap}
.conselec-case__founded strong{font-family:var(--font-display);font-size:clamp(36px,4vw,64px);letter-spacing:-.04em;line-height:1}
.conselec-case__founded span{font-family:var(--font-body);font-size:13px;line-height:1.45;color:rgba(255,255,255,.74);max-width:260px}
.conselec-case__split{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.08fr);gap:clamp(52px,8vw,138px);align-items:start}
.conselec-case__title{font-size:clamp(44px,4.8vw,78px);line-height:.94;max-width:780px}
.conselec-case__text{max-width:720px;font-family:var(--font-body);font-size:clamp(17px,1.2vw,20px);line-height:1.72}
.conselec-case__text p{margin:0}
.conselec-case__text p+p{margin-top:20px}
.conselec-case__aside{margin-top:42px;padding-left:24px;border-left:3px solid currentColor;max-width:620px;font-family:var(--font-editorial);font-size:clamp(23px,2vw,34px);line-height:1.22}
.conselec-case__panel--light .conselec-case__aside{border-color:#610000;color:#610000}
.conselec-case__panel--dark .conselec-case__aside{border-color:#8f1d1d;color:#F3F0E9}

.conselec-case__panel--identity .conselec-case__inner{padding-top:clamp(54px,4.6vw,72px);padding-bottom:clamp(54px,4.6vw,72px)}
.conselec-case__identity-intro{display:grid;grid-template-columns:minmax(0,.86fr) minmax(0,1fr);gap:clamp(44px,7vw,110px);align-items:start;margin-bottom:0}
.conselec-case__identity-left{display:flex;flex-direction:column;align-items:flex-start;gap:clamp(24px,2.2vw,34px)}
.conselec-case__identity-intro>h2,.conselec-case__identity-intro>.conselec-case__text{transform:none}
.conselec-case__palette{display:flex;align-items:center;gap:7px;width:max-content;max-width:100%;padding:0}
.conselec-case__palette-swatch{--swatch-left:#141618;--swatch-right:#ffffff;position:relative;width:46px;height:46px;border-radius:50%;background:linear-gradient(90deg,var(--swatch-left) 0 50%,var(--swatch-right) 50% 100%);border:1px solid rgba(20,22,24,.18);box-shadow:0 6px 16px rgba(20,22,24,.08);cursor:default;transition:transform .2s ease,box-shadow .2s ease}
.conselec-case__palette-swatch:hover,.conselec-case__palette-swatch:focus-visible{transform:translateY(-3px);box-shadow:0 10px 22px rgba(20,22,24,.13);outline:none}
.conselec-case__palette-swatch::after{content:attr(data-hex);position:absolute;left:50%;bottom:calc(100% + 9px);transform:translate(-50%,5px);padding:6px 8px;background:#141618;color:#fff;font-family:var(--font-mono);font-size:10px;line-height:1;letter-spacing:.02em;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .18s ease,transform .18s ease}
.conselec-case__palette-swatch:hover::after,.conselec-case__palette-swatch:focus-visible::after{opacity:1;transform:translate(-50%,0)}

.conselec-case__restart{display:grid;grid-template-columns:minmax(300px,.7fr) minmax(0,1fr);gap:clamp(50px,8vw,140px);align-items:center}
.conselec-case__restart-word{font-family:var(--font-display);font-size:clamp(76px,9vw,154px);font-weight:760;line-height:.76;letter-spacing:-.07em;color:#fff;writing-mode:vertical-rl;transform:rotate(180deg);justify-self:center}
.conselec-case__restart .conselec-case__text{max-width:760px}

.conselec-case__tech{display:grid;grid-template-columns:minmax(0,.92fr) minmax(380px,.8fr);gap:clamp(54px,8vw,130px);align-items:start}
.conselec-case__tech-list{margin:0;padding:0;list-style:none;border-top:1px solid rgba(243,240,233,.22)}
.conselec-case__tech-list li{padding:18px 0;border-bottom:1px solid rgba(243,240,233,.16);display:flex;justify-content:space-between;gap:24px;font-family:var(--font-body);font-size:14px;line-height:1.4}
.conselec-case__tech-list strong{font-family:var(--font-display);font-size:18px;letter-spacing:-.02em}
.conselec-case__tech-list span{color:rgba(243,240,233,.64);text-align:right}

.conselec-case__result{display:flex;justify-content:center;text-align:center}
.conselec-case__result>div{max-width:920px;margin:0 auto}
.conselec-case__result .conselec-case__title{max-width:760px;margin-inline:auto}
.conselec-case__result .conselec-case__text{margin:28px auto 0;max-width:760px}

.conselec-case__reviews-head{display:grid;grid-template-columns:minmax(0,.9fr) minmax(320px,.65fr);gap:48px;align-items:end;margin-bottom:56px}
.conselec-case__reviews-intro{margin:0;max-width:520px;font-family:var(--font-editorial);font-size:clamp(20px,1.5vw,25px);line-height:1.32;color:rgba(255,255,255,.78)}
.conselec-case__reviews{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 clamp(50px,6vw,100px)}
.conselec-case__review{padding:30px 0 34px;border-top:1px solid rgba(255,255,255,.24)}
.conselec-case__review blockquote{margin:0;font-family:var(--font-editorial);font-size:clamp(19px,1.45vw,25px);line-height:1.42}
.conselec-case__review footer{margin-top:22px;font-family:var(--font-body);font-size:12px;line-height:1.5;color:rgba(255,255,255,.7)}
.conselec-case__review footer strong{display:block;color:#fff;font-size:14px}

.conselec-case__cta .conselec-case__inner{padding-top:clamp(72px,6vw,96px);padding-bottom:clamp(76px,6.5vw,104px);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:42px;align-items:end}
.conselec-case__cta-title{margin:0;max-width:850px;font-family:var(--font-display);font-size:clamp(44px,4.4vw,72px);font-weight:735;line-height:.94;letter-spacing:-.055em}
.conselec-case__cta-copy{margin:18px 0 0;max-width:650px;font-family:var(--font-body);font-size:17px;line-height:1.62;color:rgba(243,240,233,.78)}
.conselec-case__cta-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.conselec-case__cta-actions a,.conselec-case__cta-actions button{min-height:54px;padding:0 20px;border:1px solid #F3F0E9;display:inline-flex;align-items:center;justify-content:center;background:transparent;color:#F3F0E9;text-decoration:none;font-family:var(--font-body);font-size:11px;font-weight:760;letter-spacing:.025em;cursor:pointer;transition:background .2s ease,color .2s ease,border-color .2s ease}
.conselec-case__cta-actions a{background:#610000;border-color:#610000}
.conselec-case__cta-actions a:hover,.conselec-case__cta-actions a:focus-visible,.conselec-case__cta-actions button:hover,.conselec-case__cta-actions button:focus-visible{background:#F3F0E9;color:#141618;border-color:#F3F0E9;outline:none}

.catalog-case__bridge{width:min(100%,980px);margin:clamp(24px,2.8vw,38px) auto 0;display:grid;grid-template-columns:minmax(250px,360px) auto minmax(300px,410px);gap:clamp(16px,2vw,26px);align-items:center;justify-content:center}
.catalog-case__bridge-site{min-width:0;text-align:center}
.catalog-case__bridge-site a{display:block;color:inherit;text-decoration:none;padding:6px 8px;transition:transform .2s ease,color .2s ease}
.catalog-case__bridge-site a:hover,.catalog-case__bridge-site a:focus-visible{transform:translateY(-2px);color:#fff;outline:none}
.catalog-case__bridge-site strong{display:block;font-family:var(--font-display);font-size:clamp(29px,2.9vw,45px);line-height:.94;letter-spacing:-.045em}
.catalog-case__bridge-site span{display:block;margin:8px auto 0;max-width:330px;font-family:var(--font-body);font-size:13px;line-height:1.45;color:rgba(243,240,233,.62)}
.catalog-case__bridge-arrow{display:grid;place-items:center;align-self:center;min-width:56px;font-family:var(--font-display);font-size:clamp(32px,3vw,48px);font-weight:700;line-height:1;color:#8f1d1d}
.catalog-case__route{margin-top:clamp(44px,5vw,72px);display:flex;align-items:center;flex-wrap:wrap;gap:12px 16px;font-family:var(--font-display);font-size:clamp(20px,2vw,31px);font-weight:690;letter-spacing:-.025em}
.catalog-case__route span{white-space:nowrap}
.catalog-case__route i{font-style:normal;color:rgba(255,255,255,.45)}
.catalog-case__features{margin:clamp(46px,5vw,72px) 0 0;padding:0;list-style:none;border-top:1px solid rgba(20,22,24,.18)}
.catalog-case__features li{display:grid;grid-template-columns:minmax(190px,.55fr) minmax(0,1.25fr);gap:clamp(28px,5vw,76px);padding:24px 0;border-bottom:1px solid rgba(20,22,24,.14);align-items:start}
.catalog-case__features strong{font-family:var(--font-display);font-size:clamp(23px,2.2vw,34px);line-height:1;letter-spacing:-.035em}
.catalog-case__features span{max-width:720px;font-family:var(--font-body);font-size:16px;line-height:1.65;color:rgba(20,22,24,.72)}
.catalog-case__result{display:flex;justify-content:center;text-align:center}
.catalog-case__result>div{max-width:900px;margin:0 auto}
.catalog-case__result .conselec-case__title{max-width:780px;margin-inline:auto}
.catalog-case__result .conselec-case__text{max-width:760px;margin:28px auto 0}


/* Caso NUTRIVERSO */
.nutriverso-case__flow{margin-top:clamp(34px,4vw,54px);display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px;font-family:var(--font-display);font-size:clamp(18px,1.8vw,28px);font-weight:680;letter-spacing:-.025em}
.nutriverso-case__flow span{white-space:nowrap}
.nutriverso-case__flow i{font-style:normal;color:#8f1d1d}
.portfolio-preview[data-portfolio-project="nutriverso"] .portfolio-preview__offline{width:184px}

.ro-case__hero-meta{margin-top:clamp(24px,2.6vw,36px);display:flex;flex-wrap:wrap;gap:9px 20px;font-family:var(--font-body);font-size:12px;font-weight:720;letter-spacing:.045em;text-transform:uppercase;color:rgba(255,255,255,.72)}
.ro-case__hero-meta span{display:inline-flex;align-items:center;gap:8px}
.ro-case__hero-meta span+span::before{content:"/";color:rgba(255,255,255,.34);margin-right:10px}
.ro-case__final-cta{margin-top:clamp(54px,6vw,84px);padding-top:clamp(38px,4vw,58px);border-top:1px solid rgba(243,240,233,.22);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:42px;align-items:end}
.ro-case__cta-panel .ro-case__final-cta{margin-top:0;padding-top:0;border-top:0}
.ro-case__summary-panel .conselec-case__inner{padding-top:clamp(60px,5vw,78px);padding-bottom:clamp(60px,5vw,78px)}
.ro-case__summary-panel .conselec-case__text{max-width:720px}
@media(max-width:720px){
  .nutriverso-case__flow{gap:8px 10px;font-size:18px}
  .ro-case__hero-meta{gap:8px 14px}
  .ro-case__hero-meta span+span::before{display:none}
  .ro-case__final-cta{grid-template-columns:1fr;gap:26px;margin-top:48px;padding-top:36px}
  .ro-case__final-cta .conselec-case__cta-actions{display:grid;grid-template-columns:1fr;width:100%}
}

/* Revelado suave: sólo título/texto; CTA final queda estático. */
.conselec-case.is-motion-ready .case-reveal{opacity:0;transform:translateY(18px);transition:opacity .62s ease,transform .72s cubic-bezier(.2,.75,.25,1);transition-delay:var(--reveal-delay,0ms)}
.conselec-case.is-motion-ready .case-reveal.is-visible{opacity:1;transform:none}

@media(max-width:980px){
  .conselec-case__hero-grid,.conselec-case__split,.conselec-case__identity-intro,.conselec-case__restart,.conselec-case__tech,.conselec-case__result,.conselec-case__reviews-head,.conselec-case__cta .conselec-case__inner{grid-template-columns:1fr}
  .conselec-case__hero-grid{gap:34px}
  .conselec-case__split,.conselec-case__tech,.conselec-case__result{gap:36px}
  .conselec-case__restart-word{writing-mode:horizontal-tb;transform:none;justify-self:start;font-size:clamp(68px,15vw,110px);line-height:.8}
  .conselec-case__cta-actions{justify-content:flex-start}
}
@media(max-width:720px){
  .conselec-case__inner{padding:64px 20px}
  .conselec-case__topline{padding-top:calc(var(--utility-h) + 88px);padding-bottom:20px}
  .conselec-case__hero-title{font-size:clamp(50px,14vw,72px)}
  .conselec-case__hero-copy{font-size:20px}
  .conselec-case__founded{margin-top:34px;gap:12px}
  .conselec-case__title{font-size:clamp(40px,11vw,58px)}
  .conselec-case__text{font-size:16px;line-height:1.68}
  .conselec-case__aside{margin-top:32px;padding-left:18px;font-size:23px}
  .conselec-case__panel--identity .conselec-case__inner{padding-top:50px;padding-bottom:50px}
  .conselec-case__identity-intro{margin-bottom:0;gap:32px}
  .conselec-case__identity-left{gap:22px}
  .conselec-case__identity-intro>h2,.conselec-case__identity-intro>.conselec-case__text{transform:none}
  .conselec-case__palette{gap:7px;padding:0}
  .conselec-case__palette-swatch{width:38px;height:38px}
  .conselec-case__tech-list li{display:block}
  .conselec-case__tech-list span{display:block;margin-top:5px;text-align:left}
  .conselec-case__reviews{grid-template-columns:1fr}
  .conselec-case__review{padding:26px 0 30px}
  .conselec-case__cta .conselec-case__inner{padding:62px 20px 68px;gap:28px}
  .conselec-case__cta-title{font-size:clamp(40px,11vw,56px)}
  .conselec-case__cta-actions{display:grid;grid-template-columns:1fr}
  .conselec-case__cta-actions a,.conselec-case__cta-actions button{width:100%}
  .catalog-case__bridge{width:100%;grid-template-columns:1fr;gap:12px;margin-top:28px}
  .catalog-case__bridge-arrow{transform:rotate(90deg);width:max-content;min-width:0;justify-self:center}
  .catalog-case__route{gap:9px 11px;font-size:20px}
  .catalog-case__features li{grid-template-columns:1fr;gap:10px;padding:21px 0}
}
@media(prefers-reduced-motion:reduce){
  .conselec-case .case-reveal{opacity:1!important;transform:none!important;transition:none!important}
}



/* Contacto */
.site-view[data-view="contacto"]{overflow-y:auto;overscroll-behavior:contain}
.contact-page{background:#141618}
.contact-page__inner{width:min(1280px,calc(100% - 64px));margin:0 auto}
.contact-hero{background:#610000;color:#fff}
.contact-hero .contact-page__inner{min-height:clamp(500px,67vh,720px);padding:calc(var(--utility-h) + clamp(126px,11vw,178px)) 0 clamp(76px,8vw,112px);display:flex;flex-direction:column;justify-content:flex-end}
.contact-hero__title{margin:0;max-width:1040px;font-family:var(--font-display);font-size:clamp(58px,7.8vw,118px);font-weight:760;line-height:.84;letter-spacing:-.065em;text-wrap:balance}
.contact-hero__copy{max-width:720px;margin:clamp(30px,3vw,44px) 0 0;font-family:var(--font-body);font-size:clamp(17px,1.35vw,21px);line-height:1.62;color:rgba(255,255,255,.82)}

.contact-form-panel{background:#fff;color:#141618}
.contact-form-panel .contact-page__inner{padding:clamp(82px,8vw,126px) 0;display:grid;grid-template-columns:minmax(260px,.68fr) minmax(0,1.32fr);gap:clamp(60px,9vw,144px);align-items:start}
.contact-form__intro{position:sticky;top:calc(var(--utility-h) + 112px)}
.contact-form__title{margin:0;max-width:480px;font-family:var(--font-display);font-size:clamp(46px,5vw,78px);font-weight:750;line-height:.92;letter-spacing:-.055em}
.contact-form__copy{max-width:460px;margin:24px 0 0;font-family:var(--font-body);font-size:17px;line-height:1.65;color:rgba(20,22,24,.68)}
.contact-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 18px}
.contact-field{display:grid;gap:9px;min-width:0}
.contact-field--full{grid-column:1/-1}
.contact-field__label{font-family:var(--font-body);font-size:11px;font-weight:760;letter-spacing:.08em;text-transform:uppercase;color:#141618}
.contact-input,.contact-select,.contact-textarea{width:100%;min-width:0;border:1px solid rgba(20,22,24,.18);border-radius:0;background:#f6f6f4;color:#141618;font-family:var(--font-body);font-size:16px;line-height:1.3;outline:none;transition:border-color .2s ease,background .2s ease,box-shadow .2s ease}
.contact-input,.contact-select{height:58px;padding:0 16px}
.contact-textarea{min-height:168px;padding:17px 16px;resize:vertical}
.contact-input:focus,.contact-select:focus,.contact-textarea:focus{background:#fff;border-color:#610000;box-shadow:0 0 0 1px #610000}
.contact-form__footer{grid-column:1/-1;display:flex;align-items:center;gap:20px;justify-content:space-between;margin-top:4px}
.contact-submit{min-height:54px;padding:0 24px;border:0;background:#610000;color:#fff;font-family:var(--font-body);font-size:12px;font-weight:780;letter-spacing:.05em;cursor:pointer;transition:transform .2s ease,background .2s ease}
.contact-submit:hover,.contact-submit:focus-visible{transform:translateY(-2px);background:#141618;outline:none}
.contact-submit[disabled]{opacity:.55;cursor:wait;transform:none}
.contact-form__status{min-height:22px;margin:0;font-family:var(--font-body);font-size:13px;line-height:1.45;color:rgba(20,22,24,.65);text-align:right}
.contact-form__status.is-error{color:#8a1010}
.contact-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}

.contact-review-panel{background:#610000;color:#fff}
.contact-review-panel .contact-page__inner{padding:clamp(54px,5.5vw,76px) 0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:42px;align-items:center}
.contact-review__title{margin:0;font-family:var(--font-display);font-size:clamp(34px,3.9vw,58px);font-weight:740;line-height:.95;letter-spacing:-.045em}
.contact-review__copy{max-width:700px;margin:16px 0 0;font-family:var(--font-body);font-size:16px;line-height:1.58;color:rgba(255,255,255,.78)}
.contact-review__action{min-height:52px;padding:0 22px;border:1px solid rgba(255,255,255,.7);background:#fff;color:#610000;font-family:var(--font-body);font-size:12px;font-weight:780;letter-spacing:.04em;cursor:pointer;transition:background .2s ease,color .2s ease,transform .2s ease}
.contact-review__action:hover,.contact-review__action:focus-visible{background:transparent;color:#fff;transform:translateY(-2px);outline:none}
.contact-review__status{grid-column:1/-1;min-height:0;margin:0;font-family:var(--font-body);font-size:12px;color:rgba(255,255,255,.7)}

.contact-channels{position:relative;overflow:hidden;background:#141618;color:#F3F0E9;border-bottom:1px solid rgba(243,240,233,.13)}
.contact-channels::after{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:#610000;pointer-events:none}
.contact-channels .contact-page__inner{position:relative;z-index:1;padding:clamp(78px,7vw,108px) 0 clamp(84px,8vw,122px)}
.contact-channels__head{display:block}
.contact-channels__title{position:relative;margin:0;max-width:730px;padding-left:22px;font-family:var(--font-display);font-size:clamp(48px,5.7vw,86px);font-weight:750;line-height:.9;letter-spacing:-.055em}
.contact-channels__title::before{content:"";position:absolute;left:0;top:.08em;width:7px;height:.78em;background:#610000}
.contact-profile-switch{display:flex;align-items:center;gap:4px;padding:4px;background:#141618;border:1px solid rgba(97,0,0,.72);box-shadow:0 12px 36px rgba(0,0,0,.14);transform:translateY(calc(50% + 18px));margin-left:auto}
.contact-profile-switch button{position:relative;min-width:118px;height:46px;border:0;background:transparent;color:rgba(243,240,233,.62);font-family:var(--font-body);font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:background .2s ease,color .2s ease,transform .2s ease}
.contact-profile-switch button::after{content:"";position:absolute;left:16px;right:16px;bottom:8px;height:2px;background:#610000;transform:scaleX(0);transition:transform .2s ease}
.contact-profile-switch button:hover{color:#fff}
.contact-profile-switch button.is-active{background:#610000;color:#fff}
.contact-profile-switch button.is-active::after{transform:scaleX(1);background:#fff}
.contact-profile-switch button:focus-visible{outline:1px solid #fff;outline-offset:2px}
.contact-social-content{margin-top:clamp(42px,5vw,66px);transition:opacity .18s ease,transform .18s ease}
.contact-social-content.is-switching{opacity:0;transform:translateY(8px)}
.contact-social__identity{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:end;gap:18px;margin-bottom:56px;padding-bottom:18px;border-bottom:1px solid rgba(97,0,0,.52)}
.contact-social__name{font-family:var(--font-display);font-size:clamp(28px,3vw,42px);font-weight:700;letter-spacing:-.035em;color:#fff}
.contact-social__description{font-family:var(--font-body);font-size:15px;color:rgba(243,240,233,.64)}
.contact-channel-grid{display:flex;align-items:flex-start;gap:clamp(18px,2.2vw,30px);flex-wrap:wrap}
.contact-channel{width:108px;padding:0;border:0;background:transparent;color:#F3F0E9;text-align:center;cursor:pointer;display:grid;justify-items:center;gap:11px;font-family:var(--font-body);font-size:11px;font-weight:760;letter-spacing:.025em;transition:transform .2s ease,color .2s ease}
.contact-channel:hover,.contact-channel:focus-visible{transform:translateY(-4px);color:#fff;outline:none}
.contact-channel__icon{position:relative;width:66px;height:66px;border-radius:50%;display:grid;place-items:center;border:1px solid #F3F0E9;background:#F3F0E9;color:#610000;box-shadow:0 8px 24px rgba(0,0,0,.12);transition:background .2s ease,border-color .2s ease,color .2s ease,transform .2s ease,box-shadow .2s ease}
.contact-channel__icon::after{content:"";position:absolute;inset:-5px;border-radius:50%;border:1px solid rgba(97,0,0,0);transition:border-color .2s ease,transform .2s ease}
.contact-channel__icon svg{width:27px;height:27px;fill:currentColor}
.contact-channel:hover .contact-channel__icon,.contact-channel:focus-visible .contact-channel__icon{background:#610000;color:#fff;border-color:#610000;box-shadow:0 10px 28px rgba(97,0,0,.34)}
.contact-channel:hover .contact-channel__icon::after,.contact-channel:focus-visible .contact-channel__icon::after{border-color:rgba(97,0,0,.78);transform:scale(1.03)}
.contact-channel__service{line-height:1.2}
.contact-social__status{display:inline-flex;align-items:center;min-height:28px;margin:20px 0 0;padding:0 10px;border-left:3px solid #610000;background:rgba(97,0,0,.16);font-family:var(--font-body);font-size:12px;color:#F3F0E9;transition:opacity .18s ease}
.contact-social__status:empty{opacity:0;padding:0;background:transparent;border-left-color:transparent}

@media(max-width:900px){
  .contact-page__inner{width:min(100% - 40px,1280px)}
  .contact-form-panel .contact-page__inner{grid-template-columns:1fr;gap:44px}
  .contact-form__intro{position:static}
  .contact-profile-switch{width:max-content}
  .contact-channel-grid{gap:22px}
}
@media(max-width:620px){
  .contact-page__inner{width:calc(100% - 40px)}
  .contact-hero .contact-page__inner{min-height:520px;padding-top:calc(var(--utility-h) + 118px);padding-bottom:64px}
  .contact-hero__title{font-size:clamp(50px,14vw,68px)}
  .contact-form-panel .contact-page__inner{padding:68px 0}
  .contact-form{grid-template-columns:1fr}
  .contact-field--full{grid-column:auto}
  .contact-form__footer{grid-column:auto;align-items:stretch;flex-direction:column}
  .contact-submit{width:100%}
  .contact-form__status{text-align:left}
  .contact-review-panel .contact-page__inner{padding:48px 0;gap:26px}
  .contact-review__action{width:100%}
  .contact-channels .contact-page__inner{padding:66px 0 76px}
  .contact-channels__title{font-size:clamp(44px,12vw,60px)}
  .contact-social__identity{grid-template-columns:1fr;gap:10px;margin-bottom:42px;padding-bottom:22px}
  .contact-profile-switch{width:100%;margin-left:0;transform:translateY(calc(50% + 22px))}
  .contact-profile-switch button{flex:1;min-width:0}
  .contact-channel-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px 12px}
  .contact-channel{width:100%;font-size:10px}
  .contact-channel__icon{width:58px;height:58px}
}


/* Blog — estructura editorial integrada a NODEVIA */
.blog-view{overflow-y:auto;overscroll-behavior:contain;background:#141618;color:#F3F0E9}
.blog-view[hidden],.blog-index[hidden],.blog-article[hidden],.blog-empty[hidden],.blog-article__sources[hidden],.blog-related[hidden]{display:none!important}
.blog-shell{width:min(1500px,calc(100% - clamp(40px,8vw,150px)));margin:0 auto}
.blog-hero{min-height:clamp(460px,58vh,650px);display:flex;align-items:flex-end;padding:calc(var(--utility-h) + clamp(96px,8vw,126px)) 0 clamp(58px,6vw,86px);background:#610000;color:#fff}
.blog-hero__eyebrow{margin:0 0 20px;font-family:var(--font-body);font-size:11px;font-weight:780;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.62)}
.blog-hero__title{max-width:1040px;margin:0;font-family:var(--font-display);font-size:clamp(50px,5.5vw,84px);font-weight:760;line-height:.9;letter-spacing:-.055em;text-wrap:balance}
.blog-hero__copy{max-width:780px;margin:32px 0 0;font-family:var(--font-body);font-size:clamp(17px,1.35vw,21px);line-height:1.66;color:rgba(255,255,255,.82)}
.blog-catalog{padding:clamp(58px,6vw,90px) 0 clamp(70px,8vw,112px);background:#141618}
.blog-toolbar{display:flex;align-items:center;justify-content:space-between;gap:26px;padding-bottom:24px;border-bottom:1px solid rgba(243,240,233,.18)}
.blog-filters{display:flex;flex-wrap:wrap;gap:8px}
.blog-filters button{min-height:38px;padding:0 13px;border:1px solid rgba(243,240,233,.24);background:transparent;color:rgba(243,240,233,.72);font-family:var(--font-body);font-size:10px;font-weight:760;letter-spacing:.055em;cursor:pointer;transition:background .18s ease,color .18s ease,border-color .18s ease,transform .18s ease}
.blog-filters button:hover,.blog-filters button:focus-visible{border-color:#F3F0E9;color:#fff;transform:translateY(-1px);outline:none}
.blog-filters button.is-active{background:#610000;border-color:#610000;color:#fff}
.blog-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin-top:30px}
.blog-card{min-width:0;display:grid;grid-template-columns:minmax(210px,38%) minmax(0,1fr);background:#F3F0E9;color:#141618;overflow:hidden;border:1px solid rgba(243,240,233,.12)}
.blog-card__image{position:relative;min-height:360px;background:#0d0f10;overflow:hidden}
.blog-card__image img{width:100%;height:100%;display:block;object-fit:cover;object-position:center;transition:transform .35s cubic-bezier(.2,.8,.2,1)}
.blog-card:hover .blog-card__image img,.blog-card:focus-within .blog-card__image img{transform:scale(1.025)}
.blog-card__content{min-width:0;display:grid;grid-template-rows:1fr auto;padding:clamp(24px,2.2vw,34px)}
.blog-card__category{display:block;margin:0 0 14px;font-family:var(--font-body);font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#610000}
.blog-card__title{margin:0;font-family:var(--font-display);font-size:clamp(26px,2vw,36px);font-weight:720;line-height:1;letter-spacing:-.045em;text-wrap:balance}
.blog-card__excerpt{margin:18px 0 0;font-family:var(--font-body);font-size:14px;line-height:1.62;color:rgba(20,22,24,.7)}
.blog-card__bottom{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-top:26px;padding-top:18px;border-top:1px solid rgba(20,22,24,.14)}
.blog-card__meta{display:grid;gap:9px;font-family:var(--font-body);font-size:10px;font-weight:720;letter-spacing:.045em;text-transform:uppercase;color:rgba(20,22,24,.55)}
.blog-card__author{display:flex;align-items:center;gap:8px;text-transform:none;letter-spacing:0;font-size:11px}
.blog-card__author img{width:26px;height:26px;border-radius:50%;object-fit:cover;filter:grayscale(1)}
.blog-card__read{min-height:42px;padding:0 15px;border:1px solid #141618;background:#141618;color:#fff;font-family:var(--font-body);font-size:10px;font-weight:780;letter-spacing:.045em;cursor:pointer;white-space:nowrap;transition:background .18s ease,color .18s ease,border-color .18s ease}
.blog-card__read:hover,.blog-card__read:focus-visible{background:#610000;border-color:#610000;outline:none}
.blog-pagination{display:flex;align-items:center;justify-content:center;gap:6px}
.blog-pagination--top{flex:0 0 auto}
.blog-pagination--bottom{margin-top:38px}
.blog-pagination button{width:38px;height:38px;border:1px solid rgba(243,240,233,.22);background:transparent;color:rgba(243,240,233,.68);font-family:var(--font-body);font-size:11px;font-weight:780;cursor:pointer;transition:background .18s ease,color .18s ease,border-color .18s ease}
.blog-pagination button:hover,.blog-pagination button:focus-visible{border-color:#fff;color:#fff;outline:none}
.blog-pagination button.is-active{background:#610000;border-color:#610000;color:#fff}
.blog-pagination button:disabled{opacity:.28;cursor:default}
.blog-empty{margin:42px 0 0;font-family:var(--font-body);font-size:16px;color:rgba(243,240,233,.65)}
.blog-article__hero{padding:calc(var(--utility-h) + clamp(94px,8vw,126px)) 0 clamp(54px,6vw,78px);background:#141618;color:#fff;border-bottom:1px solid rgba(255,255,255,.08)}
.blog-article__back{min-height:42px;padding:0 14px;border:1px solid rgba(255,255,255,.58);background:transparent;color:#fff;font-family:var(--font-body);font-size:10px;font-weight:780;letter-spacing:.05em;cursor:pointer}
.blog-article__back:hover,.blog-article__back:focus-visible{background:#fff;color:#141618;outline:none}
.blog-article__hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,.72fr);gap:clamp(44px,6vw,100px);align-items:end;margin-top:clamp(42px,4.6vw,66px)}
.blog-article__category{margin:0 0 18px;font-family:var(--font-body);font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.65)}
.blog-article__title{max-width:920px;margin:0;font-family:var(--font-display);font-size:clamp(38px,4.25vw,68px);font-weight:760;line-height:.94;letter-spacing:-.045em;text-wrap:balance}
.blog-article__lead{margin:0;font-family:var(--font-body);font-size:clamp(17px,1.35vw,21px);line-height:1.68;color:rgba(255,255,255,.86)}
.blog-article__meta{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:28px;font-family:var(--font-body);font-size:10px;font-weight:760;letter-spacing:.06em;text-transform:uppercase;color:rgba(255,255,255,.58)}
.blog-article__body{padding:clamp(60px,7vw,100px) 0;background:#F3F0E9;color:#141618}
.blog-article__layout{display:grid;grid-template-columns:minmax(300px,.72fr) minmax(0,1.28fr);gap:clamp(50px,7vw,110px);align-items:start}
.blog-article__media{position:sticky;top:calc(var(--utility-h) + 96px);display:grid;gap:12px;align-self:start}
.blog-article__carousel{display:grid;gap:12px}
.blog-article__carousel-stage{position:relative;aspect-ratio:4/5;background:#141618;overflow:hidden}
.blog-article__carousel-frame{width:100%;height:100%;background:#141618}
.blog-article__carousel-frame img,.blog-article__carousel-frame video{width:100%;height:100%;display:block;background:#141618}
.blog-article__carousel-frame img{object-fit:contain;object-position:center top}
.blog-article__carousel-frame video{object-fit:contain;object-position:center center;background:#000}
.blog-article__carousel-nav{position:absolute;z-index:2;top:50%;width:42px;height:42px;border:1px solid rgba(255,255,255,.38);border-radius:50%;display:grid;place-items:center;background:rgba(20,22,24,.78);color:#fff;font-family:var(--font-body);font-size:18px;cursor:pointer;transform:translateY(-50%);transition:background .18s ease,border-color .18s ease,transform .18s ease}
.blog-article__carousel-nav:hover,.blog-article__carousel-nav:focus-visible{background:#610000;border-color:#610000;transform:translateY(-50%) scale(1.05);outline:none}
.blog-article__carousel-nav--prev{left:12px}
.blog-article__carousel-nav--next{right:12px}
.blog-article__carousel-counter{position:absolute;z-index:2;right:12px;bottom:12px;padding:7px 9px;background:rgba(20,22,24,.8);color:#fff;font-family:var(--font-mono);font-size:9px;letter-spacing:.07em}

.blog-article__thumbs{display:flex;gap:8px;overflow-x:auto;overscroll-behavior-x:contain;padding:1px 0 5px;scrollbar-width:thin}
.blog-article__thumbs button{flex:0 0 70px;aspect-ratio:4/5;border:1px solid rgba(20,22,24,.18);padding:0;background:#fff;overflow:hidden;cursor:pointer;opacity:.58;transition:opacity .18s ease,border-color .18s ease,transform .18s ease}
.blog-article__thumbs button.is-active{opacity:1;border-color:#610000;transform:translateY(-1px)}
.blog-article__thumbs img{width:100%;height:100%;display:block;object-fit:cover;object-position:center top}
.blog-article__copy{max-width:820px}
.blog-article__copy p{margin:0 0 24px;font-family:var(--font-body);font-size:clamp(16px,1.16vw,19px);line-height:1.82;color:rgba(20,22,24,.82)}
.blog-article__copy p:first-child{font-family:var(--font-editorial);font-size:clamp(24px,2vw,32px);line-height:1.42;color:#141618}
.blog-article__sources{max-width:820px;margin-top:48px;padding-top:28px;border-top:1px solid rgba(20,22,24,.18)}
.blog-article__sources h2{margin:0 0 18px;font-family:var(--font-display);font-size:28px;letter-spacing:-.035em}
.blog-article__sources>div{display:grid;gap:8px}
.blog-source{width:100%;padding:12px 0;border:0;border-bottom:1px solid rgba(20,22,24,.12);background:transparent;color:rgba(20,22,24,.72);text-align:left;font-family:var(--font-body);font-size:13px;line-height:1.45;cursor:pointer}
.blog-source:hover,.blog-source:focus-visible{color:#610000;outline:none}
.blog-related{padding:clamp(54px,6vw,84px) 0;background:#141618;color:#fff}
.blog-related__title{margin:0 0 26px;font-family:var(--font-display);font-size:clamp(34px,4vw,58px);letter-spacing:-.05em}
.blog-related__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.blog-related-card{display:grid;grid-template-columns:120px 1fr;min-height:150px;background:#F3F0E9;color:#141618;overflow:hidden;border:0;cursor:pointer;text-align:left;padding:0}
.blog-related-card img{width:120px;height:100%;object-fit:cover}
.blog-related-card span{display:block;margin:0 0 8px;font-family:var(--font-body);font-size:9px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:#610000}
.blog-related-card strong{display:block;font-family:var(--font-display);font-size:20px;line-height:1.02;letter-spacing:-.035em}
.blog-related-card>div{padding:20px}
@media(max-width:1180px){.blog-grid{grid-template-columns:1fr}.blog-card{grid-template-columns:minmax(240px,34%) minmax(0,1fr)}.blog-article__hero-grid{grid-template-columns:1fr;gap:28px}.blog-related__grid{grid-template-columns:1fr}}
@media(max-width:760px){.blog-shell{width:min(100% - 32px,1500px)}.blog-hero{min-height:auto;padding-top:calc(var(--utility-h) + 112px)}.blog-hero__title{font-size:clamp(44px,12vw,64px)}.blog-toolbar{align-items:flex-start;flex-direction:column}.blog-pagination--top{justify-content:flex-start}.blog-grid{margin-top:22px}.blog-card{grid-template-columns:1fr}.blog-card__image{min-height:0;aspect-ratio:4/3}.blog-card__bottom{align-items:flex-start;flex-direction:column}.blog-card__read{width:100%}.blog-article__layout{grid-template-columns:1fr}.blog-article__media{position:static}.blog-article__carousel-stage{aspect-ratio:4/5}.blog-article__title{font-size:clamp(34px,10vw,52px)}.blog-related-card{grid-template-columns:96px 1fr}.blog-related-card img{width:96px}.blog-filters{gap:6px}.blog-filters button{min-height:36px;padding:0 10px}}



/* Preguntas frecuentes */
.site-view[data-view="faq"]{overflow-y:auto;overscroll-behavior:contain;background:#fff}
.faq-page{--faq-max:1400px}
.faq-hero{background:#610000;color:#fff}
.faq-hero__inner{width:min(var(--faq-max),calc(100% - 48px));margin:0 auto;padding:clamp(116px,13vw,182px) 0 clamp(82px,9vw,128px)}
.faq-hero__title{max-width:950px;margin:0;font-family:var(--font-display);font-size:clamp(64px,8.2vw,126px);font-weight:760;line-height:.82;letter-spacing:-.065em}
.faq-hero__lead{max-width:780px;margin:34px 0 0;font-family:var(--font-body);font-size:clamp(18px,1.5vw,24px);line-height:1.55;color:rgba(255,255,255,.82)}
.faq-category{--faq-bg:#fff;--faq-text:#141618;--faq-muted:#656769;--faq-line:rgba(20,22,24,.16);--faq-active:#610000;background:var(--faq-bg);color:var(--faq-text)}
.faq-category--dark{--faq-bg:#141618;--faq-text:#f4f1eb;--faq-muted:rgba(244,241,235,.62);--faq-line:rgba(255,255,255,.16);--faq-active:#b82222}
.faq-category--red{--faq-bg:#610000;--faq-text:#fff;--faq-muted:rgba(255,255,255,.68);--faq-line:rgba(255,255,255,.22);--faq-active:#fff}
.faq-category__inner{width:min(var(--faq-max),calc(100% - 48px));margin:0 auto;padding:clamp(72px,7.5vw,116px) 0;display:grid;grid-template-columns:minmax(250px,.78fr) minmax(0,1.35fr);gap:clamp(54px,8vw,132px);align-items:start}
.faq-category__heading{align-self:start}
.faq-category__number{display:block;margin:0 0 20px;font-family:var(--font-mono);font-size:11px;font-weight:760;letter-spacing:.14em;color:var(--faq-muted)}
.faq-category__title{max-width:520px;margin:0;font-family:var(--font-display);font-size:clamp(44px,4.8vw,76px);font-weight:760;line-height:.9;letter-spacing:-.055em;color:var(--faq-text)}
.faq-category__questions{border-top:1px solid var(--faq-line)}
.faq-item{border-bottom:1px solid var(--faq-line)}
.faq-item summary{min-height:78px;padding:18px 0;display:grid;grid-template-columns:42px minmax(0,1fr) 28px;gap:16px;align-items:center;list-style:none;cursor:pointer;color:var(--faq-text);transition:color .2s ease,padding .2s ease}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary:hover,.faq-item summary:focus-visible{color:var(--faq-active);outline:none}
.faq-item[open] summary{color:var(--faq-active)}
.faq-item__index{font-family:var(--font-mono);font-size:10px;font-weight:760;letter-spacing:.08em;color:var(--faq-muted)}
.faq-item__question{font-family:var(--font-display);font-size:clamp(24px,2vw,32px);font-weight:680;line-height:1.02;letter-spacing:-.035em}
.faq-item__toggle{position:relative;width:26px;height:26px;justify-self:end}
.faq-item__toggle::before,.faq-item__toggle::after{content:"";position:absolute;left:50%;top:50%;width:16px;height:1.5px;background:currentColor;transform:translate(-50%,-50%);transition:transform .22s ease}
.faq-item__toggle::after{transform:translate(-50%,-50%) rotate(90deg)}
.faq-item[open] .faq-item__toggle::after{transform:translate(-50%,-50%) rotate(0deg)}
.faq-item__answer{padding:0 44px 28px 58px;color:var(--faq-muted);font-family:var(--font-body);font-size:15px;line-height:1.7;animation:faqAnswerIn .26s ease both}
.faq-item__answer p{max-width:780px;margin:0}
.faq-item__answer strong{color:var(--faq-text);font-weight:720}
.faq-item__answer code{padding:.08em .34em;border:1px solid var(--faq-line);font-family:var(--font-mono);font-size:.86em;color:var(--faq-text);background:transparent}
@keyframes faqAnswerIn{from{opacity:0;transform:translateY(-7px)}to{opacity:1;transform:none}}
.faq-reveal{opacity:0;transition:opacity .56s ease,transform .68s cubic-bezier(.22,.78,.22,1)}
.faq-reveal--left{transform:translate3d(-20px,18px,0)}
.faq-reveal--right{transform:translate3d(24px,18px,0);transition-delay:80ms}
.faq-category.is-visible .faq-reveal{opacity:1;transform:none}
@media(max-width:900px){
  .faq-hero__inner,.faq-category__inner{width:min(100% - 40px,var(--faq-max))}
  .faq-category__inner{grid-template-columns:1fr;gap:34px;padding:64px 0 72px}
  .faq-category__title{max-width:760px}
  .faq-category__questions{width:100%}
}
@media(max-width:600px){
  .faq-hero__inner{width:calc(100% - 32px);padding:104px 0 70px}
  .faq-hero__title{font-size:clamp(54px,17vw,78px)}
  .faq-hero__lead{margin-top:26px;font-size:17px}
  .faq-category__inner{width:calc(100% - 32px);padding:54px 0 62px;gap:28px}
  .faq-category__title{font-size:clamp(42px,13vw,58px)}
  .faq-item summary{grid-template-columns:34px minmax(0,1fr) 24px;gap:10px;min-height:70px;padding:16px 0}
  .faq-item__question{font-size:clamp(23px,7.1vw,29px)}
  .faq-item__answer{padding:0 4px 24px 44px;font-size:14px;line-height:1.65}
}
@media(prefers-reduced-motion:reduce){.faq-reveal{opacity:1!important;transform:none!important;transition:none!important}.faq-item__answer{animation:none!important}}
.faq-categories-mount{display:block}.faq-public-state{width:min(var(--faq-max),calc(100% - 48px));min-height:220px;margin:0 auto;display:flex;align-items:center;padding:72px 0;font-family:var(--font-mono);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#676b6e}@media(max-width:720px){.faq-public-state{width:calc(100% - 32px);min-height:160px;padding:48px 0}}
