@font-face{
  font-family:"Hanken Grotesk";
  src:url("assets/fonts/hanken-grotesk/hanken-grotesk-latin-ext-variable.woff2") format("woff2-variations");
  font-style:normal;
  font-weight:100 900;
  font-display:swap;
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF
}
@font-face{
  font-family:"Hanken Grotesk";
  src:url("assets/fonts/hanken-grotesk/hanken-grotesk-latin-variable.woff2") format("woff2-variations");
  font-style:normal;
  font-weight:100 900;
  font-display:swap;
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD
}
:root{
  --ink:#17151d;
  --paper:#f1efe8;
  --acid:#dfff57;
  --acid-soft:#dceaa0;
  --acid-dark-surface:#b9c982;
  --violet:#795cff;
  --grey:#68645f;
  --line:rgba(23,21,29,.18);
  --night:#091317;
  --night-raised:#10272b;
  --night-text:#edf0e9;
  --night-muted:#aab4b0;
  --fit-surface:#d9e1dc;
  --whatsapp:#1f9d59;
  --stage-lumen:#d9a8ac;
  --stage-nor:#d5c5b8;
  --stage-marea:#123e4c;
  --stage-ticket:#f0a33e
}
*{
  box-sizing:border-box
}
html{
  scroll-behavior:smooth
}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:"DM Sans",sans-serif;
  overflow-x:hidden
}
html[data-intro="play"] body{overflow:hidden}
.brand-intro{display:none}
html[data-intro="play"] .brand-intro{
  position:fixed;inset:0;z-index:1000;display:block;overflow:hidden;
  background:#050b0d;color:#f1efe8;
  animation:intro-exit 2.55s cubic-bezier(.76,0,.24,1) both
}
.brand-intro__scene{
  position:absolute;left:50%;bottom:0;width:min(32vw,300px);height:min(78vh,650px);
  transform:translateX(-50%);opacity:0;isolation:isolate;
  animation:lighthouse-arrive .7s cubic-bezier(.22,1,.36,1) .12s forwards
}
.brand-intro__lighthouse{position:absolute;inset:auto 0 0;width:100%;height:100%;overflow:visible}
.lighthouse-silhouette{fill:none;stroke:#d8dad4;stroke-width:1.35;stroke-linecap:square;stroke-linejoin:miter}
.lighthouse-tower,.lighthouse-rock,.lighthouse-gallery,.lighthouse-roof,.lighthouse-rail,.lighthouse-door,.lighthouse-window{
  stroke-dasharray:700;stroke-dashoffset:700;animation:lighthouse-draw .82s cubic-bezier(.65,0,.35,1) .2s forwards
}
.lighthouse-tower{fill:#101b1e}.lighthouse-shadow{fill:#071012;stroke:none;opacity:.78}
.lighthouse-gallery,.lighthouse-roof,.lighthouse-rail{animation-delay:.32s}
.lighthouse-door,.lighthouse-window{animation-delay:.44s}
.lighthouse-lens{
  fill:#fff;opacity:0;filter:drop-shadow(0 0 3px #fff) drop-shadow(0 0 13px var(--acid));
  animation:lens-ignite .24s ease .88s forwards
}
.brand-intro__horizon{
  position:absolute;left:50%;bottom:3.3%;width:100vw;height:1px;
  background:linear-gradient(90deg,transparent,rgba(241,239,232,.17) 35%,rgba(241,239,232,.17) 65%,transparent);
  transform:translateX(-50%) scaleX(0);animation:horizon-draw .65s ease .42s forwards
}
.brand-intro__light{
  position:absolute;z-index:-1;left:50%;top:24.8%;width:125vw;height:25vh;
  transform-origin:0 50%;transform:rotate(-12deg) scaleX(0);opacity:0;
  clip-path:polygon(0 46%,100% 0,100% 100%,0 54%);
  background:linear-gradient(90deg,rgba(223,255,87,.62),rgba(241,239,232,.24) 45%,rgba(241,239,232,0));
  filter:blur(2px);animation:beam-sweep 1.05s cubic-bezier(.65,0,.35,1) .96s forwards
}
.brand-intro__wordmark{
  position:absolute;left:4vw;top:50%;display:flex;align-items:baseline;gap:14px;
  transform:translateY(-50%);clip-path:inset(0 100% 0 0);
  animation:wordmark-reveal .6s cubic-bezier(.22,1,.36,1) 1.36s forwards
}
.brand-intro__wordmark span{font:700 clamp(29px,4.6vw,78px)/.88 Manrope;letter-spacing:-.065em}
.brand-intro__wordmark small{font:700 9px/1 Manrope;letter-spacing:.3em;color:var(--acid)}
@keyframes lighthouse-arrive{from{opacity:0;transform:translate(-50%,28px)}to{opacity:1;transform:translate(-50%,0)}}
@keyframes lighthouse-draw{to{stroke-dashoffset:0}}
@keyframes lens-ignite{0%{opacity:0;transform:scale(.2);transform-origin:center}100%{opacity:1;transform:scale(1);transform-origin:center}}
@keyframes horizon-draw{to{transform:translateX(-50%) scaleX(1)}}
@keyframes beam-sweep{0%{opacity:0;transform:rotate(-12deg) scaleX(0)}18%{opacity:1}70%{opacity:.75;transform:rotate(3deg) scaleX(1)}100%{opacity:.12;transform:rotate(7deg) scaleX(1)}}
@keyframes wordmark-reveal{to{clip-path:inset(0 0 0 0)}}
@keyframes intro-exit{0%,82%{transform:translateY(0)}100%{transform:translateY(-100%);visibility:hidden}}
@media(max-width:560px){
  .brand-intro__scene{width:190px;height:72vh}
  .brand-intro__light{width:145vw;height:18vh}
  .brand-intro__wordmark{left:7vw;top:22%;display:block}
  .brand-intro__wordmark span{display:block;font-size:33px}
  .brand-intro__wordmark small{display:block;margin-top:11px}
}
.grain{
  position:fixed;
  inset:0;
  z-index:30;
  pointer-events:none;
  opacity:.045;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")
}
.header{
  height:88px;
  padding:0 4vw;
  display:flex;
  align-items:center;
  justify-content:space-between;
  border-bottom:1px solid var(--line);
  position:relative;
  z-index:10
}
.brand{
  display:flex;
  align-items:center;
  gap:11px;
  color:inherit;
  text-decoration:none
}
.brand-mark{
  width:42px;
  height:42px;
  border:1.5px solid;
  border-radius:50%;
  display:grid;
  place-items:center;
  font:800 11px Manrope
}
.brand-name{
  font:800 12px/.82 Manrope;
  letter-spacing:.04em
}
.brand-name small{
  font-size:8px;
  letter-spacing:.25em
}
.brand-symbol{
  width:46px;
  height:46px;
  flex:0 0 46px;
  overflow:visible
}
.brand-symbol__orbit{
  fill:none;
  stroke:currentColor;
  stroke-width:18;
  stroke-linecap:round
}
.brand-symbol__tower{fill:currentColor}
.brand-symbol__lantern{fill:var(--paper)}
.brand-symbol__beam{fill:var(--acid)}
.nav{
  display:flex;
  gap:30px
}
.nav a{
  color:inherit;
  text-decoration:none;
  font-size:13px
}
.nav a{
  position:relative
}
.nav a:after{
  content:"";
  position:absolute;
  left:0;
  right:100%;
  bottom:-5px;
  height:1px;
  background:currentColor;
  transition:.25s
}
.nav a:hover:after{
  right:0
}
.menu-button{
  display:none
}
.hero{
  min-height:calc(100vh - 88px);
  display:grid;
  grid-template-columns:1.25fr .75fr;
  padding:7vw 4vw 5vw;
  gap:4vw
}
.overline{
  font:600 10px Manrope;
  letter-spacing:.16em;
  margin:0 0 34px
}
.hero h1,.projects h2,.services h2,.studio h2,.process h2,.contact h2{
  font:700 clamp(54px,7vw,110px)/.93 Manrope;
  margin:0;
  letter-spacing:-.065em
}
.hero h1 em,h2 em{
  font-family:"Playfair Display",serif;
  font-weight:500
}
.hero-foot{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:30px;
  max-width:760px;
  margin-top:55px
}
.hero-foot p{
  max-width:520px;
  font-size:18px;
  line-height:1.55;
  margin:0;
  color:#514e50
}
.round-link{
  min-width:62px;
  height:62px;
  border:1px solid;
  border-radius:50%;
  display:grid;
  place-items:center;
  color:inherit;
  text-decoration:none;
  font-size:24px;
  transition:.25s
}
.round-link:hover{
  background:var(--ink);
  color:var(--paper);
  transform:translateY(4px)
}
.hero-art{
  height:540px;
  position:relative;
  display:grid;
  place-items:center;
  align-self:center
}
.sculpture{
  position:relative;
  width:330px;
  height:440px;
  border-radius:49% 49% 42% 42%;
  background:linear-gradient(145deg,var(--acid),#b8ce69 40%,var(--violet));
  filter:drop-shadow(0 28px 30px rgba(30,20,60,.2));
  transform:rotate(3deg);
  animation:float 6s ease-in-out infinite;
  overflow:hidden
}
.tower{
  position:absolute;
  width:58px;
  height:270px;
  background:var(--ink);
  clip-path:polygon(43% 0,57% 0,80% 100%,20% 100%);
  bottom:32px;
  left:calc(50% - 29px)
}
.tower:after{
  content:"";
  position:absolute;
  width:18px;
  height:50px;
  border:2px solid var(--paper);
  bottom:22px;
  left:19px
}
.beam{
  position:absolute;
  left:30px;
  right:30px;
  top:72px;
  height:100px;
  background:rgba(255,255,255,.78);
  clip-path:polygon(0 25%,50% 42%,100% 0,100% 100%,50% 61%,0 76%)
}
.sun{
  position:absolute;
  width:92px;
  height:92px;
  background:var(--acid);
  border-radius:50%;
  top:4%;
  right:0
}
.orbit{
  position:absolute;
  width:35px;
  height:35px;
  border:2px solid var(--violet);
  border-radius:50%;
  bottom:9%;
  left:2%
}
.art-note{
  position:absolute;
  right:-8px;
  bottom:24%;
  z-index:2;
  background:rgba(255,255,255,.55);
  backdrop-filter:blur(12px);
  border:1px solid rgba(255,255,255,.75);
  padding:16px 18px;
  display:flex;
  gap:24px;
  font-size:12px
}
@keyframes float{
  50%{
    transform:translateY(-14px) rotate(1deg)
  }
}
.section-dark{
  background:var(--ink);
  color:var(--paper);
  padding:10vw 4vw
}
.section-title{
  display:grid;
  grid-template-columns:1fr 1fr;
  align-items:end;
  margin-bottom:7vw
}
.section-title .overline{
  align-self:start
}
.section-title h2{
  font-size:clamp(54px,7vw,100px)
}
.disclaimer{
  grid-column:2;
  max-width:430px;
  color:#aba7a0;
  line-height:1.55;
  margin:30px 0 0;
  font-size:13px
}
.project-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:7vw 2vw
}
.project-wide{
  grid-column:1/-1
}
.project-stage{
  height:560px;
  position:relative;
  display:grid;
  place-items:center;
  overflow:hidden;
  transition:.4s
}
.project:hover .project-stage{
  transform:scale(.988)
}
.stage-lumen{
  background:#cfeb5a
}
.mock-phone{
  height:440px;
  width:225px;
  background:#111116;
  color:#fff;
  border:7px solid #08080b;
  border-radius:35px;
  padding:40px 20px 22px;
  box-shadow:0 35px 50px rgba(0,0,0,.25);
  transform:rotate(7deg);
  transition:.45s;
  display:flex;
  flex-direction:column
}
.project:hover .mock-phone{
  transform:rotate(2deg) translateY(-8px)
}
.notch{
  position:absolute;
  top:13px;
  left:84px;
  width:48px;
  height:12px;
  border-radius:8px;
  background:#2a2930
}
.micro{
  font:600 8px Manrope;
  letter-spacing:.16em;
  color:var(--acid)
}
.booking{
  margin-top:auto;
  border-top:1px solid #47464c;
  padding-top:15px;
  display:flex;
  flex-direction:column;
  gap:7px
}
.booking small{
  font-size:8px;
  color:#8d8c92
}
.booking strong{
  font-size:18px
}
.booking span{
  background:var(--acid);
  color:var(--ink);
  font-size:9px;
  padding:10px;
  margin-top:6px
}
.project-tag{
  position:absolute;
  right:8%;
  top:18%;
  background:var(--paper);
  color:var(--ink);
  padding:15px 20px;
  transform:rotate(-4deg);
  font-size:12px
}
.stage-nor{
  background:var(--stage-nor)
}
.stage-horizonte{
  background:linear-gradient(90deg,rgba(21,32,29,.88) 0 43%,rgba(21,32,29,.12) 72%),url("demos/constructora-horizonte/assets/horizonte-hero.png") center/cover;
  color:#fff;
  place-items:stretch;
  padding:clamp(34px,6vw,78px)
}
.horizonte-preview{
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  width:min(520px,52%);
  z-index:1
}
.horizonte-preview small,.horizonte-preview span,.horizonte-panel small{
  font:600 10px/1.2 Manrope,sans-serif;
  letter-spacing:.16em
}
.horizonte-preview b{
  font:700 clamp(48px,7vw,94px)/.84 Manrope,sans-serif;
  letter-spacing:-.075em
}
.horizonte-panel{
  position:absolute;
  right:6%;
  bottom:8%;
  width:min(320px,34%);
  padding:24px;
  display:flex;
  flex-direction:column;
  gap:8px;
  color:#17211f;
  background:#f3eee4;
  box-shadow:0 20px 48px rgba(0,0,0,.25)
}
.horizonte-panel b{font:700 clamp(22px,3vw,38px)/1 Manrope,sans-serif;letter-spacing:-.05em}
.horizonte-panel span{font-size:12px;line-height:1.45;color:#58605d}
@media(max-width:700px){
  .stage-horizonte{padding:30px;background-position:62% center}
  .horizonte-preview{width:70%}
  .horizonte-preview b{font-size:48px}
  .horizonte-panel{width:58%;right:24px;bottom:22px;padding:18px}
}
.arch-card{
  width:66%;
  height:80%;
  padding:7%;
  color:#f7f2eb;
  background:linear-gradient(rgba(34,41,37,.08),rgba(34,41,37,.62)),linear-gradient(130deg,transparent 0 32%,#adb99e 33% 57%,transparent 58%),linear-gradient(35deg,#525b4d,#bec7ad);
  display:flex;
  flex-direction:column;
  justify-content:space-between
}
.arch-card b{
  font:700 clamp(43px,6vw,82px)/.9 Manrope;
  letter-spacing:-.07em
}
.arch-card small,.arch-card span{
  font:600 9px Manrope;
  letter-spacing:.16em
}
.stage-marea{
  background:var(--violet)
}
.ticket-shadow{
  position:absolute;
  width:310px;
  height:350px;
  background:var(--ink);
  transform:rotate(8deg) translate(28px,12px);
  opacity:.28
}
.ticket{
  width:310px;
  min-height:350px;
  background:var(--acid);
  color:var(--ink);
  padding:26px;
  z-index:1;
  transform:rotate(-6deg);
  box-shadow:0 24px 44px rgba(30,16,50,.25);
  font-size:12px
}
.ticket small{
  letter-spacing:.13em
}
.ticket b{
  display:block;
  font:800 58px/.84 Manrope;
  letter-spacing:-.08em;
  margin:45px 0
}
.ticket div{
  display:flex;
  justify-content:space-between;
  padding:10px 0;
  border-top:1px solid rgba(23,21,29,.35)
}
.project-meta{
  display:flex;
  justify-content:space-between;
  align-items:end;
  padding:24px 0;
  border-bottom:1px solid rgba(241,239,232,.22)
}
.project-meta div{
  display:flex;
  align-items:baseline;
  gap:18px
}
.project-meta span,.project-meta p{
  font:500 9px Manrope;
  letter-spacing:.1em;
  color:#aaa6a0
}
.project-meta h3{
  font:600 clamp(24px,3vw,40px) Manrope;
  margin:0
}
.project-meta p{
  margin:0
}
.services{
  padding:10vw 0;
  background:var(--paper)
}
.services-intro{
  padding:0 9vw 7vw
}
.services h2,.studio h2,.process h2{
  font-size:clamp(50px,6.5vw,92px)
}
.service-list{
  border-top:1px solid var(--line)
}
.service-list article{
  display:grid;
  grid-template-columns:9vw 1fr 1fr 25px;
  gap:24px;
  padding:33px 9vw;
  border-bottom:1px solid var(--line);
  align-items:start;
  transition:.25s
}
.service-list article:hover{
  background:var(--acid);
  padding-left:10vw
}
.service-list span{
  font:500 10px Manrope;
  color:var(--grey)
}
.service-list h3{
  font:600 26px Manrope;
  letter-spacing:-.045em;
  margin:0
}
.service-list p{
  max-width:450px;
  color:var(--grey);
  font-size:14px;
  line-height:1.6;
  margin:0
}
.service-list b{
  font-size:20px;
  font-weight:400
}
.section-light{
  padding:10vw 4vw
}
.studio-grid{
  display:grid;
  grid-template-columns:.82fr 1.18fr;
  gap:9vw;
  margin-top:8vw
}
.studio-copy .lead{
  font:500 clamp(24px,3vw,39px)/1.25 Manrope;
  letter-spacing:-.035em;
  margin:0 0 4vw
}
.studio-copy>p:not(.lead){
  max-width:580px;
  color:var(--grey);
  line-height:1.7
}
.principles{
  margin-top:6vw
}
.principles div{
  display:grid;
  grid-template-columns:60px 1fr;
  padding:22px 0;
  border-top:1px solid var(--line)
}
.principles span{
  font-size:10px;
  color:var(--grey)
}
.principles b{
  font:600 18px Manrope
}
.process-head{
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:40px
}
.process-head p{
  color:#aaa6a0;
  max-width:280px;
  line-height:1.6
}
.process ol{
  list-style:none;
  padding:0;
  margin:7vw 0 0;
  border-top:1px solid rgba(241,239,232,.22);
  display:grid;
  grid-template-columns:repeat(4,1fr)
}
.process li{
  padding:28px 25px 10px 0;
  border-right:1px solid rgba(241,239,232,.22);
  min-height:210px
}
.process li+li{
  padding-left:25px
}
.process li:last-child{
  border:0
}
.process li span{
  font-size:10px;
  color:#aaa6a0
}
.process h3{
  font:600 19px Manrope;
  margin:55px 0 10px
}
.process li p{
  font-size:13px;
  line-height:1.55;
  color:#aaa6a0;
  max-width:200px
}
.contact{
  background:var(--acid);
  padding:10vw 4vw 3vw
}
.contact h2{
  font-size:clamp(52px,8vw,118px)
}
.contact-main{
  display:flex;
  justify-content:space-between;
  align-items:center;
  color:var(--ink);
  text-decoration:none;
  font:500 clamp(23px,4vw,54px) Manrope;
  padding:35px 0;
  border-bottom:2px solid;
  margin-top:7vw
}
.contact-main span{
  width:68px;
  height:68px;
  border:1px solid;
  border-radius:50%;
  display:grid;
  place-items:center;
  font-size:27px;
  transition:.25s
}
.contact-main:hover span{
  background:var(--ink);
  color:var(--acid);
  transform:rotate(45deg)
}
.contact-meta{
  display:flex;
  justify-content:space-between;
  margin:25px 0 10vw;
  font-size:12px
}
.contact-meta a{
  color:inherit
}
.contact-meta p{
  margin:0
}
footer{
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:end;
  border-top:1px solid var(--line);
  padding-top:28px
}
footer p{
  font:600 9px/1.7 Manrope;
  letter-spacing:.09em;
  margin:0
}
.to-top{
  justify-self:end;
  width:45px;
  height:45px;
  border:1px solid;
  border-radius:50%;
  background:transparent;
  cursor:pointer
}
.reveal{
  opacity:0;
  transform:translateY(24px);
  transition:opacity .8s,transform .8s
}
.reveal.visible{
  opacity:1;
  transform:none
}
@media(max-width:760px){
  .header{
    height:72px
  }
  .nav{
    display:none
  }
  .menu-button{
    display:flex;
    flex-direction:column;
    gap:6px;
    background:transparent;
    border:0;
    padding:10px
  }
  .menu-button i{
    display:block;
    width:24px;
    height:1.5px;
    background:var(--ink)
  }
  .nav.open{
    display:flex;
    position:absolute;
    left:0;
    right:0;
    top:72px;
    background:var(--paper);
    padding:28px 5vw;
    flex-direction:column;
    border-bottom:1px solid var(--line)
  }
  .hero{
    grid-template-columns:1fr;
    padding:15vw 5vw 10vw
  }
  .hero h1{
    font-size:clamp(47px,13.2vw,72px)
  }
  .hero-foot{
    align-items:center
  }
  .hero-foot p{
    font-size:15px
  }
  .hero-art{
    height:430px
  }
  .sculpture{
    height:365px;
    width:275px
  }
  .section-dark,.section-light,.contact{
    padding:20vw 5vw
  }
  .section-title{
    display:block
  }
  .disclaimer{
    margin-top:24px
  }
  .project-grid{
    display:block
  }
  .project{
    margin-top:14vw
  }
  .project-stage{
    height:420px
  }
  .mock-phone{
    height:355px;
    width:185px
  }
  .notch{
    left:66px
  }
  .project-tag{
    right:2%;
    top:15%
  }
  .arch-card{
    width:80%
  }
  .ticket{
    width:245px;
    min-height:305px
  }
  .ticket-shadow{
    width:245px;
    height:305px;
    transform:rotate(5deg) translate(8px,6px)
  }
  .ticket b{
    font-size:47px;
    margin:38px 0
  }
  .project-meta{
    align-items:start;
    gap:18px
  }
  .project-meta p{
    text-align:right;
    max-width:130px
  }
  .services{
    padding:20vw 0
  }
  .services-intro{
    padding:0 5vw 14vw
  }
  .service-list article{
    grid-template-columns:38px 1fr 20px;
    padding:27px 5vw
  }
  .service-list article:hover{
    padding-left:6vw
  }
  .service-list p{
    grid-column:2
  }
  .studio-grid{
    grid-template-columns:1fr
  }
  .studio-copy .lead{
    margin-top:6vw
  }
  .process-head{
    display:block
  }
  .process-head p{
    margin-top:25px
  }
  .process ol{
    grid-template-columns:1fr
  }
  .process li,.process li+li{
    border-right:0;
    border-bottom:1px solid rgba(241,239,232,.22);
    min-height:0;
    padding:22px 0;
    display:grid;
    grid-template-columns:45px 1fr
  }
  .process h3{
    margin:0
  }
  .process li p{
    grid-column:2;
    margin:8px 0
  }
  .contact h2{
    font-size:13.2vw
  }
  .contact-main span{
    width:48px;
    height:48px
  }
  .contact-meta{
    display:block
  }
  .contact-meta p{
    margin-top:12px
  }
  footer{
    grid-template-columns:1fr auto
  }
  footer>p{
    display:none
  }
}
/* Segunda dirección visual: mayor densidad, demostración y conversión */
.hero{
  padding-top:5.8vw;
  padding-bottom:4vw
}
.hero-foot>div{
  max-width:560px
}
.hero-foot>div>p{
  max-width:540px
}
.hero-actions{
  display:flex;
  align-items:center;
  gap:22px;
  margin-top:28px;
  flex-wrap:wrap
}
.primary-button{
  display:inline-flex;
  align-items:center;
  gap:10px;
  background:var(--ink);
  color:var(--paper);
  text-decoration:none;
  padding:14px 17px;
  font:600 12px Manrope;
  transition:.25s
}
.primary-button:hover{
  transform:translate(-3px,-3px);
  box-shadow:5px 5px 0 var(--acid)
}
.primary-button i{
  font-size:18px;
  color:#63d48a
}
.primary-button span{
  margin-left:18px
}
.text-link{
  color:inherit;
  text-decoration:none;
  font:600 11px Manrope;
  border-bottom:1px solid var(--line);
  padding:8px 0
}
.capability-strip{
  background:var(--acid);
  color:var(--ink);
  overflow:hidden;
  white-space:nowrap;
  padding:15px 0;
  font:700 11px Manrope;
  letter-spacing:.08em
}
.capability-strip div{
  display:inline-block;
  animation:stripMove 24s linear infinite
}
.capability-strip span{
  margin:0 28px
}
@keyframes stripMove{
  to{
    transform:translateX(-50%)
  }
}
.projects{
  padding-top:8vw
}
.project-stage{
  height:520px
}
.stage-lumen{
  background:var(--stage-lumen)
}
.mock-phone{
  background:#2b171d;
  border-color:#1b0c11
}
.mock-phone .booking span{
  background:#f4e7dc
}
.lumen-flow{
  position:absolute;
  left:6%;
  bottom:8%;
  display:flex;
  align-items:center;
  gap:13px;
  background:rgba(241,239,232,.9);
  color:var(--ink);
  padding:16px 18px;
  box-shadow:0 15px 35px rgba(51,18,28,.12)
}
.lumen-flow>small{
  position:absolute;
  left:0;
  bottom:calc(100% + 8px);
  font:600 9px Manrope;
  letter-spacing:.12em
}
.lumen-flow div{
  display:flex;
  flex-direction:column
}
.lumen-flow div b{
  font-size:9px;
  color:#8b6a70
}
.lumen-flow div span{
  font-size:12px;
  font-weight:600
}
.lumen-flow>i{
  font-style:normal;
  color:#9e8587
}
.case-notes{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  border-bottom:1px solid rgba(241,239,232,.22)
}
.case-notes>div{
  padding:25px 24px 30px 0
}
.case-notes>div+div{
  border-left:1px solid rgba(241,239,232,.22);
  padding-left:24px
}
.case-notes span{
  font:600 9px Manrope;
  letter-spacing:.12em;
  color:#aaa6a0
}
.case-notes p{
  font-size:13px;
  line-height:1.55;
  color:#cbc7c1;
  margin:12px 0 0;
  max-width:360px
}
.search-card{
  position:absolute;
  right:5%;
  bottom:7%;
  width:205px;
  background:#f4f0e8;
  color:var(--ink);
  padding:15px;
  box-shadow:0 14px 30px rgba(28,35,27,.18);
  display:flex;
  flex-direction:column;
  gap:8px
}
.search-card small{
  font-size:8px;
  letter-spacing:.1em
}
.search-card b{
  font-size:13px;
  border:1px solid #b9bbb3;
  padding:9px
}
.search-card span{
  font-size:10px;
  line-height:1.4;
  color:#62655e
}
.stage-marea{
  background:var(--stage-marea)
}
.ticket{
  background:var(--stage-ticket)
}
.order-status{
  position:absolute;
  left:5%;
  bottom:8%;
  background:#f5efe5;
  color:var(--ink);
  padding:13px 16px;
  display:flex;
  gap:10px;
  align-items:center;
  font-size:10px
}
.order-status>i{
  width:8px;
  height:8px;
  border-radius:50%;
  background:#54b56d;
  box-shadow:0 0 0 4px rgba(84,181,109,.15)
}
.order-status span{
  line-height:1.45
}
.order-status b{
  font-weight:600
}
.services{
  padding-top:8vw;
  padding-bottom:8vw
}
.services-intro{
  padding-bottom:5vw
}
.service-list article{
  grid-template-columns:8vw 1fr 1fr 230px;
  align-items:center;
  padding-top:28px;
  padding-bottom:28px
}
.service-flow,.rank{
  justify-self:end;
  width:210px;
  height:58px;
  border:1px solid var(--line);
  display:flex;
  align-items:center;
  justify-content:space-around;
  padding:10px
}
.service-flow i{
  font-style:normal
}
.service-flow .fa-whatsapp{
  font-size:23px;
  color:#268f57
}
.service-flow b{
  font:700 11px Manrope
}
.mini-layout{
  justify-self:end;
  width:210px;
  height:72px;
  border:1px solid var(--line);
  padding:9px;
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:6px
}
.mini-layout i{
  background:#d4d0c7
}
.mini-layout i:first-child{
  grid-row:1/3;
  background:var(--violet)
}
.mini-layout i:last-child{
  background:var(--acid)
}
.rank{
  justify-content:flex-start;
  gap:13px
}
.rank b{
  font:700 25px Manrope
}
.rank span{
  font-size:10px;
  color:var(--grey)
}
.rank i{
  margin-left:auto;
  color:#278c51;
  font-style:normal
}
.connected-system{
  padding:8vw 6vw;
  background:var(--ink);
  color:var(--paper)
}
.connected-system-head{
  display:grid;
  grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr);
  gap:7vw;
  align-items:end
}
.connected-system h2{
  margin:0;
  font:500 clamp(42px,5.6vw,86px)/.98 "DM Sans",sans-serif;
  letter-spacing:-.065em
}
.connected-system h2 em{
  font-family:"Playfair Display",serif;
  font-weight:500
}
.connected-system-head>p{
  margin:0 0 8px;
  font:500 clamp(15px,1.35vw,19px)/1.55 Manrope,sans-serif;
  color:rgba(244,240,232,.78)
}
.connected-system-head>p strong{color:var(--paper);font-weight:700}
.connected-system-flow{
  list-style:none;
  margin:6vw 0 0;
  padding:0;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  border-top:1px solid rgba(244,240,232,.35)
}
.connected-system-flow li{
  position:relative;
  min-width:0;
  padding:28px 28px 34px 0;
  border-right:1px solid rgba(244,240,232,.2)
}
.connected-system-flow li+li{padding-left:28px}
.connected-system-flow li:last-child{border-right:0}
.connected-system-flow li>span{
  display:block;
  margin-bottom:42px;
  font:700 11px Manrope,sans-serif;
  color:var(--acid)
}
.connected-system-flow li:not(:last-child)::after{
  content:"→";
  position:absolute;
  top:25px;
  right:18px;
  color:var(--acid)
}
.connected-system-flow .system-kicker{
  margin:0 0 10px;
  font:800 10px Manrope,sans-serif;
  letter-spacing:.14em;
  color:var(--acid)
}
.connected-system-flow h3{
  margin:0 0 14px;
  font:600 clamp(21px,2vw,30px)/1.1 "DM Sans",sans-serif
}
.connected-system-flow li>p:last-child{
  margin:0;
  color:rgba(244,240,232,.68);
  font:500 14px/1.55 Manrope,sans-serif
}
.connected-system-outcome{
  margin:0;
  padding:22px 0 0;
  border-top:1px solid rgba(244,240,232,.35);
  font:600 clamp(15px,1.35vw,19px)/1.5 Manrope,sans-serif
}
.connected-system-outcome span{
  display:inline-block;
  margin-right:18px;
  color:var(--acid);
  font:800 10px Manrope,sans-serif;
  letter-spacing:.14em
}
@media(max-width:900px){
  .connected-system-head{grid-template-columns:1fr;gap:32px}
  .connected-system-flow{grid-template-columns:repeat(2,1fr);margin-top:70px}
  .connected-system-flow li:nth-child(2){border-right:0}
  .connected-system-flow li:nth-child(3),.connected-system-flow li:nth-child(4){border-top:1px solid rgba(244,240,232,.2)}
}
@media(max-width:600px){
  .connected-system{padding:18vw 7vw}
  .connected-system h2{font-size:12vw}
  .connected-system-flow{grid-template-columns:1fr;margin-top:58px}
  .connected-system-flow li,.connected-system-flow li+li{padding:24px 36px 26px 0;border-right:0;border-top:1px solid rgba(244,240,232,.2)}
  .connected-system-flow li:first-child{border-top:0}
  .connected-system-flow li>span{margin-bottom:22px}
  .connected-system-flow li:not(:last-child)::after{top:23px;right:8px;transform:rotate(90deg)}
  .connected-system-outcome{margin-top:12px}
  .connected-system-outcome span{display:block;margin:0 0 9px}
}
.studio{
  padding-top:8vw;
  padding-bottom:8vw
}
.studio-grid{
  margin-top:6vw
}
.studio-system{
  min-height:520px;
  background:var(--violet);
  color:#09060d;
  position:relative;
  overflow:hidden;
  padding:28px
}
.studio-system>p,.studio-system>small{
  font:600 9px Manrope;
  letter-spacing:.12em
}
.studio-system>small{
  position:absolute;
  bottom:24px;
  left:28px
}
.system-core{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  width:155px;
  height:155px;
  border-radius:50%;
  background:var(--acid);
  color:var(--ink);
  display:grid;
  place-items:center;
  font:800 48px Manrope;
  box-shadow:0 0 0 35px rgba(223,255,87,.12)
}
.system-core span{
  position:absolute;
  bottom:31px;
  font:700 7px Manrope;
  letter-spacing:.15em
}
.system-node{
  position:absolute;
  background:var(--paper);
  padding:10px 13px;
  font:700 8px Manrope;
  letter-spacing:.08em;
  box-shadow:0 10px 25px rgba(32,20,70,.15)
}
.system-node:after{
  content:"";
  position:absolute;
  width:70px;
  height:1px;
  background:rgba(241,239,232,.6);
  top:50%
}
.node-a{
  left:7%;
  top:27%
}
.node-a:after,.node-c:after{
  left:100%
}
.node-b{
  right:7%;
  top:24%
}
.node-b:after,.node-d:after{
  right:100%
}
.node-c{
  left:10%;
  bottom:27%
}
.node-d{
  right:5%;
  bottom:29%
}
.fit{
  background:var(--fit-surface);
  padding:8vw 4vw
}
.fit-head{
  display:grid;
  grid-template-columns:.7fr 1.3fr;
  align-items:start
}
.fit h2,.faq h2{
  font:700 clamp(48px,6vw,88px)/.95 Manrope;
  letter-spacing:-.065em;
  margin:0
}
.fit h2 em,.faq h2 em{
  font-family:"Playfair Display";
  font-weight:500
}
.fit-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  border-top:1px solid var(--line);
  margin-top:6vw
}
.fit-grid article{
  padding:25px 25px 12px 0;
  min-height:190px;
  border-right:1px solid var(--line)
}
.fit-grid article+article{
  padding-left:25px
}
.fit-grid article:last-child{
  border:0
}
.fit-grid span{
  font-size:10px;
  color:#4d5651
}
.fit-grid h3{
  font:600 19px Manrope;
  margin:45px 0 10px
}
.fit-grid p{
  font-size:12px;
  line-height:1.6;
  color:#4d5651;
  margin:0
}
.process{
  padding-top:8vw;
  padding-bottom:8vw
}
.faq{
  background:var(--paper);
  padding:8vw 4vw
}
.faq-grid{
  display:grid;
  grid-template-columns:.72fr 1.28fr;
  gap:7vw
}
.faq details{
  border-top:1px solid var(--line);
  padding:22px 0
}
.faq details:last-child{
  border-bottom:1px solid var(--line)
}
.faq summary{
  list-style:none;
  cursor:pointer;
  display:flex;
  justify-content:space-between;
  font:600 17px Manrope
}
.faq summary::-webkit-details-marker{
  display:none
}
.faq summary span{
  font-size:20px;
  font-weight:400
}
.faq details[open] summary span{
  transform:rotate(45deg)
}
.faq details p{
  max-width:600px;
  color:var(--grey);
  line-height:1.65;
  margin:16px 45px 0 0
}
.contact{
  padding-top:8vw
}
.contact-label{
  display:flex;
  align-items:center;
  gap:15px
}
.contact-label .fa-whatsapp{
  font-size:.8em
}
.contact-arrow{
  flex:none
}
@media(max-width:760px){
  .hero{
    padding-top:12vw
  }
  .hero-foot{
    display:block;
    margin-top:35px
  }
  .hero-foot .round-link{
    display:none
  }
  .hero-actions{
    align-items:flex-start;
    flex-direction:column
  }
  .capability-strip{
    font-size:9px
  }
  .project-stage{
    height:400px
  }
  .lumen-flow{
    left:3%;
    bottom:4%;
    padding:11px;
    gap:7px
  }
  .lumen-flow>small{
    display:none
  }
  .lumen-flow div span{
    font-size:9px
  }
  .case-notes{
    grid-template-columns:1fr
  }
  .case-notes>div,.case-notes>div+div{
    border-left:0;
    border-top:1px solid rgba(241,239,232,.22);
    padding:18px 0
  }
  .search-card{
    width:170px;
    right:3%;
    bottom:4%
  }
  .order-status{
    left:3%;
    bottom:3%
  }
  .service-list article{
    grid-template-columns:38px 1fr;
    padding:24px 5vw
  }
  .service-list article>p{
    grid-column:2
  }
  .service-flow,.mini-layout,.rank{
    grid-column:2;
    justify-self:start;
    width:100%;
    margin-top:10px
  }
  .studio-system{
    min-height:420px
  }
  .system-core{
    width:125px;
    height:125px;
    font-size:39px
  }
  .system-node{
    font-size:7px
  }
  .fit,.faq{
    padding:18vw 5vw
  }
  .fit-head,.faq-grid{
    grid-template-columns:1fr;
    gap:35px
  }
  .fit-grid{
    grid-template-columns:1fr 1fr
  }
  .fit-grid article,.fit-grid article+article{
    padding:22px 15px 20px;
    border-bottom:1px solid var(--line);
    min-height:175px
  }
  .fit-grid article:nth-child(even){
    border-right:0
  }
  .fit-grid h3{
    margin-top:30px
  }
  .faq details p{
    font-size:13px
  }
  .contact-main{
    font-size:6vw
  }
  .contact-label{
    gap:9px
  }
}
/* Tema, idioma y movimiento ambiental */
.header{
  position:sticky;
  top:0;
  background:rgba(241,239,232,.82);
  backdrop-filter:blur(18px);
  transition:background .45s,color .45s,border-color .45s
}
.header-tools{
  display:flex;
  gap:7px;
  align-items:center
}
.language-toggle,.theme-toggle{
  height:33px;
  min-width:35px;
  border:1px solid var(--line);
  background:transparent;
  color:inherit;
  cursor:pointer;
  font:600 10px Manrope;
  transition:background .25s,color .25s,transform .25s
}
.language-toggle:hover,.theme-toggle:hover{
  background:var(--ink);
  color:var(--paper);
  transform:translateY(-2px)
}
.theme-toggle{
  font-size:16px
}
.theme-moon{
  display:none
}
.aura{
  --aura-x:70vw;
  --aura-y:20vh;
  position:fixed;
  inset:0;
  z-index:2;
  pointer-events:none;
  background:radial-gradient(380px circle at var(--aura-x) var(--aura-y),rgba(121,92,255,.13),transparent 68%);
  mix-blend-mode:multiply;
  transition:opacity .4s
}
.floating-whatsapp{
  position:fixed;
  right:25px;
  bottom:24px;
  z-index:22;
  height:52px;
  min-width:52px;
  border-radius:28px;
  background:var(--whatsapp);
  color:#fff;
  text-decoration:none;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:0;
  box-shadow:0 14px 35px rgba(14,90,48,.28);
  transition:transform .3s,gap .3s,padding .3s
}
.floating-whatsapp i{
  font-size:25px
}
.floating-whatsapp span{
  font:700 0 Manrope;
  letter-spacing:.1em;
  opacity:0;
  transition:.3s
}
.floating-whatsapp:hover{
  transform:translateY(-5px);
  gap:10px;
  padding:0 19px
}
.floating-whatsapp:hover span{
  font-size:9px;
  opacity:1
}
.overline{
  font-size:11px
}
.project-stage:after{
  content:"";
  position:absolute;
  inset:0;
  border:1px solid rgba(255,255,255,0);
  pointer-events:none;
  transition:border-color .4s,transform .5s
}
.project:hover .project-stage:after{
  border-color:rgba(255,255,255,.42);
  transform:scale(.975)
}
.service-list article>*{
  transition:transform .35s
}
.service-list article:hover>*{
  transform:translateX(4px)
}
.service-list article:hover .service-flow,.service-list article:hover .mini-layout,.service-list article:hover .rank{
  transform:translateX(-4px)
}
.studio-system,.fit-grid article,.faq details{
  transition:transform .35s,background .35s
}
.fit-grid article:hover{
  background:rgba(255,255,255,.25);
  transform:translateY(-5px)
}
.faq details[open]{
  background:rgba(121,92,255,.05);
  padding-left:18px;
  padding-right:18px
}
.reveal{
  transition-timing-function:cubic-bezier(.16,1,.3,1);
  transition-duration:1s
}
::view-transition-old(root),::view-transition-new(root){
  animation-duration:.55s;
  animation-timing-function:cubic-bezier(.16,1,.3,1)
}
body[data-theme="dark"]{
  --line:rgba(237,240,233,.18);
  --grey:var(--night-muted);
  background:var(--night);
  color:var(--night-text)
}
body[data-theme="dark"] .header{
  background:rgba(9,19,23,.84)
}
body[data-theme="dark"] .hero,body[data-theme="dark"] .services,body[data-theme="dark"] .studio,body[data-theme="dark"] .faq{
  background:var(--night);
  color:var(--night-text)
}
body[data-theme="dark"] .hero-foot p,body[data-theme="dark"] .service-list p,body[data-theme="dark"] .studio-copy>p:not(.lead),body[data-theme="dark"] .faq details p{
  color:var(--night-muted)
}
body[data-theme="dark"] .primary-button{
  background:var(--night-text);
  color:var(--night)
}
body[data-theme="dark"] .primary-button:hover{
  box-shadow:5px 5px 0 var(--violet)
}
body[data-theme="dark"] .language-toggle:hover,body[data-theme="dark"] .theme-toggle:hover{
  background:var(--night-text);
  color:var(--night)
}
body[data-theme="dark"] .theme-sun{
  display:none
}
body[data-theme="dark"] .theme-moon{
  display:inline
}
body[data-theme="dark"] .fit{
  background:var(--night-raised);
  color:var(--night-text)
}
body[data-theme="dark"] .fit-grid p{
  color:var(--night-muted)
}
body[data-theme="dark"] .fit-grid span{
  color:var(--night-muted)
}
body[data-theme="dark"] .mini-layout,body[data-theme="dark"] .service-flow,body[data-theme="dark"] .rank{
  border-color:rgba(237,240,233,.24)
}
body[data-theme="dark"] .aura{
  background:radial-gradient(420px circle at var(--aura-x) var(--aura-y),rgba(223,255,87,.1),transparent 67%);
  mix-blend-mode:screen
}
body[data-theme="dark"] .contact{
  background:var(--acid-dark-surface);
  color:var(--ink)
}
body[data-theme="dark"] .site-footer{
  background:var(--acid-dark-surface)
}
body[data-theme="dark"] .contact .brand{
  color:var(--ink)
}
body[data-theme="dark"] .contact .to-top{
  color:var(--ink);
  border-color:var(--ink)
}
.site-footer{
  background:var(--acid);
  color:var(--ink);
  padding-left:4vw;
  padding-right:4vw;
  padding-bottom:3vw
}
.site-footer .to-top{
  color:inherit;
  border-color:currentColor
}
body[data-theme="dark"] .faq details[open]{
  background:rgba(223,255,87,.045)
}
@media(max-width:900px){
  .header{
    gap:16px
  }
  .nav{
    gap:18px
  }
}
@media(max-width:760px){
  .header{
    padding:0 5vw
  }
  .header-tools{
    margin-left:auto
  }
  .menu-button{
    order:3
  }
  .language-toggle,.theme-toggle{
    height:32px
  }
  .floating-whatsapp{
    right:16px;
    bottom:16px
  }
  .floating-whatsapp:hover{
    padding:0;
    gap:0
  }
  .floating-whatsapp:hover span,.floating-whatsapp span{
    display:none
  }
  .aura{
    display:none
  }
}
/* Jerarquía de contacto */
.floating-whatsapp{
  opacity:0;
  visibility:hidden;
  transform:translateY(18px) scale(.92);
  transition:opacity .35s,visibility .35s,transform .35s,gap .3s,padding .3s
}
.floating-whatsapp.is-visible{
  opacity:1;
  visibility:visible;
  transform:none
}
.floating-whatsapp.is-visible:hover{
  transform:translateY(-5px);
  gap:10px;
  padding:0 19px
}
@media(max-width:760px){
  .floating-whatsapp.is-visible:hover{
    padding:0;
    gap:0;
    transform:translateY(-3px)
  }
}
/* Leyenda editorial del hero */
.art-note{
  left:9%;
  right:auto;
  bottom:0;
  width:185px;
  padding:11px 0 0;
  background:transparent;
  backdrop-filter:none;
  border:0;
  border-top:1px solid var(--line);
  display:block;
  color:inherit;
  font:600 9px Manrope;
  letter-spacing:.12em
}
.art-note:hover{
  transform:none
}
body[data-theme="dark"] .art-note{
  border-color:rgba(237,240,233,.22)
}
@media(max-width:760px){
  .art-note{
    left:6%;
    bottom:-4px;
    width:170px;
    font-size:8px
  }
}
/* Composición específica para smartphone */
.system-node{
  color:var(--ink)
}
.contact-label b{
  font:inherit;
  font-weight:500
}
.menu-button i{
  transition:transform .3s,opacity .3s,background .3s
}
body[data-theme="dark"] .menu-button i{
  background:var(--night-text)
}
body[data-theme="dark"] .nav.open{
  background:var(--night);
  color:var(--night-text)
}
@media(max-width:760px){
    .header{
    height:70px
  }
  .brand-mark{
    width:39px;
    height:39px
  }
  .brand-symbol{
    width:41px;
    height:41px;
    flex-basis:41px
  }
  .brand-name{
    font-size:11px
  }
  .menu-button{
    width:36px;
    height:36px;
    align-items:center;
    justify-content:center;
    padding:6px;
    position:relative
  }
  .menu-button[aria-expanded="true"] i:first-child{
    transform:translateY(3.75px) rotate(45deg)
  }
  .menu-button[aria-expanded="true"] i:last-child{
    transform:translateY(-3.75px) rotate(-45deg)
  }
    .nav.open{
    top:70px;
    min-height:calc(100vh - 70px);
    padding:12vw 7vw;
    gap:0;
    justify-content:flex-start
  }
  .nav.open a{
    font:600 30px Manrope;
    letter-spacing:-.04em;
    padding:18px 0;
    border-bottom:1px solid var(--line)
  }
  .nav.open a:after{
    display:none
  }
    .hero{
    min-height:auto;
    padding-bottom:15vw
  }
  .hero h1{
    font-size:clamp(45px,12.8vw,58px);
    line-height:.92
  }
  .hero-foot>div>p{
    font-size:15px;
    line-height:1.55
  }
  .hero-art{
    height:410px;
    margin-top:8px
  }
  .sculpture{
    width:265px;
    height:350px
  }
  .art-note{
    bottom:0
  }
    .projects,.section-light,.process{
    padding-top:17vw;
    padding-bottom:17vw
  }
  .section-title h2,.services h2,.studio h2,.process h2{
    font-size:clamp(45px,12vw,58px)
  }
  .project{
    margin-top:12vw
  }
  .project-meta span,.project-meta p,.case-notes span{
    font-size:10px
  }
  .project-meta h3{
    font-size:27px
  }
  .case-notes p{
    font-size:14px
  }
    .service-list article:hover{
    background:transparent;
    padding-left:5vw
  }
  .service-list article:hover>*{
    transform:none
  }
  .service-list article:hover .service-flow,.service-list article:hover .mini-layout,.service-list article:hover .rank{
    transform:none
  }
    .studio-system{
    min-height:400px
  }
  .system-node{
    font-size:7px
  }
  .fit-grid p{
    font-size:13px
  }
  .fit-grid h3{
    font-size:18px
  }
    .contact{
    padding-top:17vw
  }
  .contact-main{
    display:grid;
    grid-template-columns:minmax(0,1fr) 50px;
    gap:16px;
    align-items:center;
    padding:27px 0 30px;
    font-size:clamp(25px,7.4vw,30px);
    line-height:1.02
  }
  .contact-label{
    display:grid;
    grid-template-columns:26px minmax(0,1fr);
    align-items:start;
    gap:9px
  }
  .contact-label .fa-whatsapp{
    font-size:23px;
    margin-top:3px
  }
  .contact-label b{
    display:block
  }
  .contact-arrow{
    width:48px;
    height:48px
  }
  .contact-meta{
    margin-top:20px;
    margin-bottom:18vw;
    line-height:1.55
  }
  .contact-meta a{
    overflow-wrap:anywhere
  }
  .site-footer{
    padding-bottom:12px
  }
}
/* El texto y la flecha del CTA son elementos distintos */
.contact-main .contact-label{
  width:auto;
  height:auto;
  border:0;
  border-radius:0;
  background:transparent;
  color:inherit;
  transform:none;
  display:flex;
  justify-content:flex-start
}
.contact-main:hover .contact-label{
  background:transparent;
  color:inherit;
  transform:none
}
.contact-main .contact-arrow{
  width:68px;
  height:68px;
  border:1px solid;
  border-radius:50%;
  display:grid;
  place-items:center;
  transition:.25s
}
.contact-main:hover .contact-arrow{
  background:var(--ink);
  color:var(--acid);
  transform:rotate(45deg)
}
@media(max-width:760px){
  .contact-main .contact-label{
    display:grid;
    grid-template-columns:26px minmax(0,1fr);
    width:auto;
    height:auto;
    align-items:start;
    gap:9px
  }
  .contact-main .contact-arrow{
    width:48px;
    height:48px
  }
  .contact-main .contact-label b{
    width:auto;
    max-width:210px
  }
}
.floating-whatsapp.menu-open{
  opacity:0;
  visibility:hidden;
  pointer-events:none
}
/* Casos conceptuales: problema, sistema y cambio esperado */
.case-notes-compact{
  grid-template-columns:1fr
}
.case-notes-compact>div,.case-notes-compact>div+div{
  padding:18px 0;
  border-left:0;
  border-top:1px solid rgba(241,239,232,.22)
}
.case-notes-compact p{
  max-width:520px;
  margin-top:9px;
  min-height:0
}
/* Dirección visual editorial: ritmo, detalle y movimiento contenido */
html{
  scroll-padding-top:88px;
  color-scheme:light dark
}
body{
  font-feature-settings:"kern" 1,"liga" 1;
  text-rendering:optimizeLegibility
}
::selection{
  background:var(--violet);
  color:#fff
}
h1,h2{
  text-wrap:balance
}
.overline{
  display:flex;
  align-items:center;
  gap:12px
}
.overline:before{
  content:"";
  width:28px;
  height:1px;
  background:currentColor;
  opacity:.55;
  flex:0 0 auto
}
.nav a.is-active:after{
  right:0
}
a:focus-visible,button:focus-visible,summary:focus-visible{
  outline:2px solid var(--violet);
  outline-offset:5px
}
.project-stage,.studio-system{
  isolation:isolate
}
.mock-phone,.arch-card,.search-card,.ticket,.order-status,.system-core,.system-node{
  transition:transform .65s cubic-bezier(.16,1,.3,1)
}
.project:hover .mock-phone{
  transform:translateY(-8px) rotate(-1deg)
}
.project:hover .arch-card{
  transform:translate(-5px,-7px)
}
.project:hover .search-card{
  transform:translate(6px,-8px)
}
.project:hover .ticket{
  transform:translate(-6px,-8px) rotate(-1deg)
}
.project:hover .order-status{
  transform:translate(5px,-5px)
}
.studio-system:hover .system-core{
  transform:translate(-50%,-50%) scale(1.035)
}
.studio-system:hover .node-a,.studio-system:hover .node-c{
  transform:translateX(-5px)
}
.studio-system:hover .node-b,.studio-system:hover .node-d{
  transform:translateX(5px)
}
.project-grid .project:nth-child(2),.service-list article:nth-child(2),.commitments-grid article:nth-child(2),.fit-grid article:nth-child(2),.process li:nth-child(2){
  transition-delay:.06s
}
.project-grid .project:nth-child(3),.service-list article:nth-child(3),.commitments-grid article:nth-child(3),.fit-grid article:nth-child(3),.process li:nth-child(3){
  transition-delay:.12s
}
.commitments-grid article:nth-child(4),.fit-grid article:nth-child(4),.process li:nth-child(4){
  transition-delay:.18s
}
@media(max-width:760px){
  html{
    scroll-padding-top:70px
  }
  .overline{
    gap:9px
  }
  .overline:before{
    width:20px
  }
  .project:hover .mock-phone,.project:hover .arch-card,.project:hover .search-card,.project:hover .ticket,.project:hover .order-status{
    transform:none
  }
}
/* Hover de servicios: el color de marca funciona como acento, no como destello */
.service-list article:hover{
  background:var(--acid-soft)
}
body[data-theme="dark"] .service-list article:hover{
  background:#132522;
  color:var(--night-text);
  box-shadow:inset 4px 0 0 #a9bf63
}
body[data-theme="dark"] .service-list article:hover h3{
  color:#f1f3e9
}
body[data-theme="dark"] .service-list article:hover p,body[data-theme="dark"] .service-list article:hover>span{
  color:#b9c4bd
}
body[data-theme="dark"] .service-list article:hover .mini-layout,body[data-theme="dark"] .service-list article:hover .service-flow,body[data-theme="dark"] .service-list article:hover .rank{
  border-color:rgba(237,240,233,.34)
}
@media(max-width:760px){
  .service-list article:hover,body[data-theme="dark"] .service-list article:hover{
    background:transparent;
    box-shadow:none
  }
}
/* Ergonomía y navegación táctil */
button,a,summary{
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent
}
.primary-button{
  min-height:52px
}
.text-link{
  min-height:44px;
  display:inline-flex;
  align-items:center
}
@media(max-width:760px){
    body.menu-open{
    overflow:hidden
  }
    .header{
    gap:8px;
    padding-left:4vw;
    padding-right:4vw
  }
    .header-tools{
    gap:4px
  }
    .language-toggle,.theme-toggle{
    width:44px;
    min-width:44px;
    height:44px
  }
    .menu-button{
    width:44px;
    height:44px;
    min-width:44px
  }
    .brand{
    min-height:44px
  }
    .nav.open{
    overflow-y:auto;
    overscroll-behavior:contain
  }
    .nav.open a{
    min-height:64px;
    display:flex;
    align-items:center
  }
    .faq summary{
    min-height:56px;
    align-items:center;
    gap:18px
  }
    .faq summary span{
    flex:0 0 auto
  }
    .contact-meta a{
    display:inline-flex;
    align-items:center;
    min-height:44px
  }
    .floating-whatsapp{
    bottom:calc(16px + env(safe-area-inset-bottom))
  }
}
@media(max-width:340px){
  .header{
    gap:6px
  }
  .brand{
    gap:8px
  }
  .brand-name{
    font-size:10px
  }
  .brand-name small{
    font-size:7px
  }
  .header-tools{
    gap:3px
  }
}
@media(hover:none){
  .project:hover .mock-phone,.project:hover .arch-card,.project:hover .search-card,.project:hover .ticket,.project:hover .order-status{
    transform:none
  }
  .service-list article:hover,body[data-theme="dark"] .service-list article:hover{
    background:transparent;
    box-shadow:none
  }
}
/* Accesibilidad progresiva y navegación sin dependencias */
.skip-link{
  position:fixed;
  left:16px;
  top:12px;
  z-index:100;
  transform:translateY(-180%);
  background:var(--ink);
  color:var(--paper);
  padding:12px 16px;
  min-height:44px;
  display:flex;
  align-items:center;
  text-decoration:none;
  font:600 12px Manrope;
  transition:transform .2s
}
.skip-link:focus{
  transform:none
}
.noscript-nav{
  display:none;
  gap:20px;
  padding:14px 4vw;
  border-bottom:1px solid var(--line)
}
.noscript-nav a{
  color:inherit
}
.header-tools,.menu-button{
  display:none
}
.has-js .header-tools{
  display:flex
}
.reveal{
  opacity:1;
  transform:none
}
.reveal-ready .reveal{
  opacity:0;
  transform:translateY(24px)
}
.reveal-ready .reveal.visible{
  opacity:1;
  transform:none
}
.mock-phone .mock-title{
  font:700 32px/.95 Manrope;
  letter-spacing:-.06em;
  margin:34px 0
}
.ticket-action{
  border:0;
  background:#201b16;
  color:#fff;
  width:100%;
  padding:10px 6px;
  font-size:10px;
  display:block;
  text-align:center
}
@media(max-width:760px){
  .has-js .menu-button{
    display:flex
  }
  .mock-phone .mock-title{
    font-size:26px
  }
  .noscript-nav{
    display:flex;
    overflow-x:auto
  }
  .noscript-nav a{
    min-height:44px;
    display:inline-flex;
    align-items:center
  }
}
/* Carga estable: evita destellos de tema y trabajo innecesario */
html[data-theme="dark"] body{
  background:var(--night);
  color:var(--night-text)
}
html[data-theme="dark"] .header{
  background:rgba(9,19,23,.84)
}
@media(max-width:760px){
  .grain{
    opacity:.025
  }
  .header{
    backdrop-filter:blur(12px)
  }
}
/* Credibilidad basada en compromisos verificables */
.commitments{
  padding:8vw 4vw;
  background:var(--paper);
  color:var(--ink);
  border-top:1px solid var(--line)
}
.commitments-head{
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:8vw;
  align-items:end
}
.commitments-head .overline{
  margin-bottom:28px
}
.commitments h2{
  font:700 clamp(48px,6vw,88px)/.95 Manrope;
  margin:0;
  letter-spacing:-.065em
}
.commitments h2 em{
  font-family:"Playfair Display",serif;
  font-weight:500
}
.commitments-head>p{
  max-width:510px;
  margin:0 0 7px;
  font-size:16px;
  line-height:1.65;
  color:var(--grey)
}
.commitments-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  margin-top:6vw;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line)
}
.commitments-grid article{
  min-height:230px;
  padding:24px 25px 28px 0;
  border-right:1px solid var(--line)
}
.commitments-grid article+article{
  padding-left:25px
}
.commitments-grid article:last-child{
  border-right:0
}
.commitments-grid span{
  font:600 10px Manrope;
  letter-spacing:.12em;
  color:var(--grey)
}
.commitments-grid h3{
  font:600 20px Manrope;
  margin:55px 0 12px;
  letter-spacing:-.025em
}
.commitments-grid p{
  max-width:260px;
  margin:0;
  color:var(--grey);
  font-size:13px;
  line-height:1.6
}
body[data-theme="dark"] .commitments{
  background:var(--night);
  color:var(--night-text)
}
@media(max-width:760px){
  .commitments{
    padding:18vw 5vw
  }
  .commitments-head{
    grid-template-columns:1fr;
    gap:28px
  }
  .commitments h2{
    font-size:clamp(45px,12vw,58px)
  }
  .commitments-head>p{
    font-size:14px
  }
  .commitments-grid{
    grid-template-columns:1fr 1fr;
    margin-top:13vw
  }
  .commitments-grid article,.commitments-grid article+article{
    min-height:210px;
    padding:22px 16px 24px;
    border-bottom:1px solid var(--line)
  }
  .commitments-grid article:nth-child(even){
    border-right:0
  }
  .commitments-grid article:nth-last-child(-n+2){
    border-bottom:0
  }
  .commitments-grid h3{
    font-size:18px;
    margin-top:34px
  }
  .commitments-grid p{
    font-size:12px
  }
}
/* Tablet: una composición propia, sin comprimir el escritorio */
@media(min-width:761px) and (max-width:1024px){
    html{
    scroll-padding-top:82px
  }
    .header{
    height:82px;
    padding-inline:4vw;
    gap:14px
  }
    .brand-mark{
    width:40px;
    height:40px
  }
    .nav{
    gap:16px
  }
    .nav a{
    min-height:44px;
    padding-inline:3px;
    display:flex;
    align-items:center;
    font-size:12px
  }
    .brand,.language-toggle,.theme-toggle{
    min-height:44px
  }
    .language-toggle,.theme-toggle{
    width:44px;
    min-width:44px
  }
    .hero{
    min-height:auto;
    grid-template-columns:1fr;
    padding:8vw 5vw 7vw;
    gap:4vw
  }
    .hero-copy{
    max-width:790px
  }
    .hero h1{
    font-size:clamp(60px,9vw,82px)
  }
    .hero-foot{
    max-width:690px;
    margin-top:42px
  }
    .hero-art{
    height:470px;
    width:min(560px,78vw);
    justify-self:center
  }
    .sculpture{
    width:305px;
    height:405px
  }
    .sun{
    right:6%
  }
    .orbit{
    left:7%
  }
    .art-note{
    left:7%;
    bottom:2%
  }
    .section-dark,.section-light,.contact{
    padding-inline:5vw
  }
    .project-grid{
    grid-template-columns:1fr;
    gap:9vw
  }
    .project-wide{
    grid-column:auto
  }
    .project-stage{
    height:520px
  }
    .case-notes-compact{
    grid-template-columns:repeat(3,1fr)
  }
    .case-notes-compact>div,.case-notes-compact>div+div{
    padding:25px 24px 30px 0;
    border-top:0
  }
    .case-notes-compact>div+div{
    border-left:1px solid rgba(241,239,232,.22);
    padding-left:24px
  }
    .services-intro{
    padding-inline:5vw
  }
    .service-list article{
    grid-template-columns:44px minmax(0,1fr) 190px;
    padding:28px 5vw;
    gap:18px;
    align-items:center
  }
    .service-list article>span{
    grid-column:1;
    grid-row:1/3;
    align-self:start;
    margin-top:6px
  }
    .service-list article>h3{
    grid-column:2;
    grid-row:1
  }
    .service-list article>p{
    grid-column:2;
    grid-row:2
  }
    .service-list article>.mini-layout,.service-list article>.service-flow,.service-list article>.rank{
    grid-column:3;
    grid-row:1/3;
    width:180px
  }
    .service-list article:hover{
    padding-left:5.5vw
  }
    .studio-grid{
    grid-template-columns:1fr;
    gap:7vw
  }
    .studio-system{
    min-height:500px
  }
    .studio-copy{
    max-width:760px
  }
    .commitments-head{
    grid-template-columns:1fr;
    gap:28px
  }
    .commitments-grid{
    grid-template-columns:1fr 1fr
  }
    .commitments-grid article:nth-child(even){
    border-right:0
  }
    .commitments-grid article:nth-child(-n+2){
    border-bottom:1px solid var(--line)
  }
    .fit-head{
    grid-template-columns:1fr;
    gap:28px
  }
    .fit-grid{
    grid-template-columns:1fr 1fr
  }
    .fit-grid article:nth-child(even){
    border-right:0
  }
    .fit-grid article:nth-child(-n+2){
    border-bottom:1px solid var(--line)
  }
    .process ol{
    grid-template-columns:1fr 1fr
  }
    .process li:nth-child(2){
    border-right:0
  }
    .process li:nth-child(-n+2){
    border-bottom:1px solid rgba(241,239,232,.22)
  }
    .faq-grid{
    grid-template-columns:1fr;
    gap:42px
  }
}
/* En pantallas táctiles el contacto queda en la navegación y en su sección */
@media(max-width:1024px){
    .floating-whatsapp{
    display:none
  }
}
@media(max-width:760px){
    .primary-button span{
    margin-left:14px
  }
}
/* El estándar se lee como un cuaderno de decisiones, no como otra cuadrícula de tarjetas */
.commitments-grid{
  grid-template-columns:1fr 1fr;
  column-gap:6vw;
  border:0;
  margin-top:5vw
}
.commitments-grid article,.commitments-grid article+article{
  min-height:0;
  padding:28px 0;
  display:grid;
  grid-template-columns:48px minmax(0,1fr);
  grid-template-rows:auto auto;
  border-right:0;
  border-top:1px solid var(--line)
}
.commitments-grid article:nth-last-child(-n+2){
  border-bottom:1px solid var(--line)
}
.commitments-grid span{
  grid-column:1;
  grid-row:1/3;
  padding-top:4px
}
.commitments-grid h3{
  grid-column:2;
  grid-row:1;
  margin:0;
  font-size:21px
}
.commitments-grid p{
  grid-column:2;
  grid-row:2;
  margin-top:11px;
  max-width:380px;
  font-size:13px
}
.commitments-head>p{
  position:relative;
  padding-left:24px
}
.commitments-head>p:before{
  content:"";
  position:absolute;
  left:0;
  top:7px;
  bottom:7px;
  width:2px;
  background:var(--violet)
}
@media(max-width:760px){
  .commitments-grid{
    grid-template-columns:1fr;
    margin-top:12vw
  }
    .commitments-grid article,.commitments-grid article+article{
    padding:24px 0;
    grid-template-columns:42px minmax(0,1fr);
    border-bottom:0
  }
    .commitments-grid article:last-child{
    border-bottom:1px solid var(--line)
  }
    .commitments-grid h3{
    font-size:18px;
    margin:0
  }
    .commitments-grid p{
    font-size:13px
  }
  .commitments-head>p{
    padding-left:18px
  }
}

/* Una sola política de movimiento, aplicada al final de la cascada */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  html[data-intro="play"] body{overflow-x:hidden;overflow-y:auto}
  .brand-intro{display:none!important;animation:none!important}
  .reveal,.reveal-ready .reveal{opacity:1;transform:none;transition:none}
  .sculpture,.capability-strip div{animation:none}
  .aura{display:none}
  .project-stage:after,.service-list article>*,.fit-grid article,
  .mock-phone,.arch-card,.search-card,.ticket,.order-status,.system-core,.system-node{transition:none}
  .project-grid .project,.service-list article,.commitments-grid article,.fit-grid article,.process li{transition-delay:0s}
  ::view-transition-old(root),::view-transition-new(root){animation:none}
}

/* Enlace verificable del caso conceptual Lumen */
.project-demo-link{
  grid-column:1/-1;
  justify-self:start;
  width:max-content;
  min-height:46px;
  margin-top:8px;
  padding:12px 16px;
  display:inline-flex;
  align-items:center;
  gap:16px;
  border:1px solid currentColor;
  border-radius:999px;
  font-size:11px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
  transition:transform .2s ease,background-color .2s ease,color .2s ease
}
.project-demo-link:hover,.project-demo-link:focus-visible{
  background:var(--ink);
  color:var(--paper);
  transform:translateY(-2px)
}
.project-demo-link:focus-visible{outline:3px solid var(--violet);outline-offset:4px}
.project-actions{display:flex;align-items:center;gap:10px;margin-left:auto}
.project-case-link{
  min-height:46px;padding:0 18px;display:inline-flex;align-items:center;justify-content:space-between;gap:18px;
  background:var(--ink);color:var(--paper);text-decoration:none;font:800 10px Manrope;letter-spacing:.08em;white-space:nowrap;
  transition:transform .25s ease,background-color .25s ease
}
.project-case-link:hover,.project-case-link:focus-visible{transform:translateY(-2px);background:var(--violet)}
.project-case-link:focus-visible{outline:3px solid var(--acid);outline-offset:4px}
@media(max-width:760px){
  .project-meta{flex-wrap:wrap;gap:16px}
  .project-actions{flex:1 0 100%;width:100%;margin:4px 0 0;display:grid;grid-template-columns:1fr 1fr}
  .project-actions .project-demo-link,.project-actions .project-case-link{width:100%;margin:0;justify-content:space-between}
  .project-meta>.project-case-link{flex:1 0 100%;width:100%;margin:4px 0 0}
}

/* Portafolio: catálogo editorial con protagonismo equivalente */
.projects .project-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(54px,6vw,88px) clamp(24px,3vw,44px)
}
.projects .project-wide{
  grid-column:auto
}
.projects .project-stage{
  height:clamp(360px,38vw,460px)
}
.projects .project-meta{
  min-height:126px;
  align-items:flex-start;
  gap:18px;
  padding:22px 0 18px
}
.projects .project-meta>div:first-child{
  display:block
}
.projects .project-meta h3{
  margin-top:7px;
  font-size:clamp(24px,2.6vw,36px)
}
.projects .project-meta>p{
  max-width:190px;
  line-height:1.5;
  text-align:right
}
.projects .project-actions{
  align-self:flex-end
}
.projects .case-notes{
  display:none
}
.projects .project:nth-child(3) .project-meta>div:first-child>span,
.projects .project:nth-child(4) .project-meta>div:first-child>span{
  font-size:0
}
.projects .project:nth-child(3) .project-meta>div:first-child>span:after,
.projects .project:nth-child(4) .project-meta>div:first-child>span:after{
  font:500 9px Manrope,sans-serif;
  letter-spacing:.1em;
  color:#aaa6a0
}
.projects .project:nth-child(3) .project-meta>div:first-child>span:after{
  content:"03 / CONCEPTO VISUAL"
}
.projects .project:nth-child(4) .project-meta>div:first-child>span:after{
  content:"04 / CONCEPTO VISUAL"
}
.projects .mock-phone{
  height:350px;
  width:184px;
  padding:34px 16px 18px
}
.projects .mock-title{
  font-size:40px
}
.projects .lumen-flow{
  transform:scale(.86);
  transform-origin:left bottom
}
.projects .arch-card{
  width:72%;
  height:76%
}
.projects .arch-card b{
  font-size:clamp(38px,4.6vw,62px)
}
.projects .ticket{
  width:270px;
  min-height:310px
}
.projects .ticket b{
  font-size:48px;
  margin:34px 0
}
.projects .ticket-shadow{
  width:270px;
  height:310px
}
.projects .stage-horizonte{
  padding:clamp(28px,4vw,52px)
}
.projects .horizonte-preview{
  width:62%
}
.projects .horizonte-preview b{
  font-size:clamp(42px,5vw,68px)
}
.projects .horizonte-panel{
  width:44%;
  padding:18px
}
@media(max-width:900px){
  .projects .project-grid{grid-template-columns:1fr;gap:68px}
  .projects .project-stage{height:min(520px,74vw)}
  .projects .project-meta{min-height:0}
}
@media(max-width:560px){
  .projects .project-stage{height:390px}
  .projects .project-meta{display:grid;grid-template-columns:1fr;gap:12px}
  .projects .project-meta>p{text-align:left;max-width:none}
  .projects .project-actions{justify-self:stretch}
  .projects .horizonte-preview{width:76%}
  .projects .horizonte-panel{width:58%}
}

/* Lighthouse Lab 01 — prototipo local de captación */
.contact{color:var(--ink)}
.contact-heading{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr);gap:7vw;align-items:end}
.contact-heading .overline{margin-bottom:28px}
.contact-intro{padding-bottom:10px;max-width:430px}
.contact-intro p{font:500 clamp(16px,1.45vw,21px)/1.5 Manrope;margin:0 0 26px}
.contact-intro span{display:inline-flex;border:1px solid;padding:9px 12px;font:800 10px Manrope;letter-spacing:.12em}
.contact-form{margin-top:7vw;border-top:2px solid;padding-top:42px}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 4vw}
.form-field{min-width:0}
.form-field-wide{grid-column:1/-1}
.form-field label,.form-field legend{display:flex;justify-content:space-between;gap:14px;margin:0 0 11px;font:700 12px/1.35 Manrope;letter-spacing:.04em}
.form-field label small{font:600 9px Manrope;text-transform:uppercase;letter-spacing:.1em;opacity:.7}
.form-field input:not([type="radio"]):not([type="checkbox"]),.form-field select,.form-field textarea{width:100%;min-height:54px;border:1px solid rgba(9,19,23,.48);border-radius:0;background:rgba(255,255,255,.34);color:var(--ink);padding:14px 15px;font:500 16px/1.4 "DM Sans",sans-serif;transition:border-color .2s,box-shadow .2s,background .2s}
.form-field textarea{min-height:150px;resize:vertical}
.form-field select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--ink) 50%),linear-gradient(135deg,var(--ink) 50%,transparent 50%);background-position:calc(100% - 19px) 23px,calc(100% - 14px) 23px;background-size:5px 5px;background-repeat:no-repeat;padding-right:42px}
.form-field input:focus-visible,.form-field select:focus-visible,.form-field textarea:focus-visible,.choice-row label:focus-within,.consent-field label:focus-within{outline:3px solid var(--violet);outline-offset:3px}
.form-field [aria-invalid="true"]{border-color:#9b1c1c;box-shadow:0 0 0 1px #9b1c1c}
.field-error{min-height:19px;color:#7f1010;font:700 12px/1.4 "DM Sans",sans-serif;margin:7px 0 0}
.field-hint,.field-support,.field-support p{font:500 11px/1.45 "DM Sans",sans-serif;margin:7px 0 0;opacity:.74}
.field-support{display:flex;justify-content:space-between;gap:20px}.field-support p{margin:0}.field-support span{white-space:nowrap}
.response-options{border:0;padding:0;margin:0}.choice-row{display:flex;flex-wrap:wrap;gap:10px}
.choice-row label{justify-content:flex-start;align-items:center;min-height:48px;border:1px solid rgba(9,19,23,.48);padding:10px 18px;margin:0;cursor:pointer;background:rgba(255,255,255,.22)}
.choice-row input,.consent-field input{width:20px;height:20px;margin:0;accent-color:var(--violet);flex:0 0 auto}
.consent-field{border-top:1px solid rgba(9,19,23,.35);padding-top:24px}.consent-field label{justify-content:flex-start;align-items:flex-start;max-width:900px;font-size:13px;cursor:pointer}.consent-field label span{line-height:1.55}
.form-actions{display:flex;justify-content:space-between;align-items:center;gap:30px;margin-top:34px;padding-top:28px;border-top:1px solid rgba(9,19,23,.35)}
.form-actions p{max-width:480px;margin:0;font:500 12px/1.55 "DM Sans",sans-serif}
.form-submit{min-height:58px;border:1px solid var(--ink);background:var(--ink);color:var(--acid);padding:0 20px 0 25px;display:inline-flex;align-items:center;gap:40px;font:800 12px Manrope;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:transform .2s,background .2s,color .2s}
.form-submit i{font:400 24px Manrope;font-style:normal}.form-submit:hover{transform:translateY(-2px);background:var(--violet);color:#fff}
.form-submit:disabled{cursor:wait;opacity:.65;transform:none}
.form-status{margin-top:28px;border:2px solid var(--ink);padding:22px;display:grid;grid-template-columns:minmax(180px,.35fr) minmax(0,1fr);gap:30px;background:rgba(255,255,255,.38)}
.form-status[hidden]{display:none}.form-status strong{font:800 16px Manrope}.form-status span{font:500 14px/1.55 "DM Sans",sans-serif}
.form-status[data-kind="error"]{border-color:#7f1010;background:rgba(255,226,226,.7);color:#621010}
.contact-alternatives{margin-top:8vw;padding:24px 0 10vw;border-top:1px solid rgba(9,19,23,.45);font:600 11px/1.5 Manrope;text-transform:uppercase;letter-spacing:.08em}
.contact-alternatives>p{margin:0 0 20px;opacity:.68}.contact-alternatives>div{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap}.contact-alternatives a{color:inherit;min-height:44px;display:inline-flex;align-items:center;gap:9px}
body[data-theme="dark"] .contact{background:#b7d34c;color:#091317}
/* Dirección tipográfica Lighthouse — precisión contemporánea + gesto editorial */
.brand-intro__wordmark span,.brand-intro__wordmark small,
.brand-mark,.brand-name,.nav,.language-toggle,.theme-toggle,
.overline,h1,h2,h3,.primary-button,.text-link,.project-meta,
.service-list,.connected-system,.studio,.commitments,.fit,.process,.faq,
.contact-heading,.contact-form,.site-footer{
  font-family:"Hanken Grotesk",sans-serif
}
.hero h1,.projects h2,.services h2,.studio h2,.process h2,.contact h2,
.connected-system h2,.commitments h2,.fit h2,.faq h2{
  font-family:"Hanken Grotesk",sans-serif;font-weight:570;letter-spacing:-.048em
}
.hero h1 em,h2 em,.section-copy h2 em{
  font-family:"Hanken Grotesk",sans-serif;font-style:normal;font-weight:inherit;letter-spacing:inherit
}
.contact{background:#c5d27a}
body[data-theme="dark"] .contact{background:#a8b968;color:#091317}
@media(max-width:900px){.contact-heading{grid-template-columns:1fr;gap:34px}.contact-intro{max-width:620px}.form-grid{gap-inline:28px}}
@media(max-width:760px){
  .contact-heading h2{font-size:13.2vw}.contact-form{margin-top:14vw;padding-top:30px}.form-grid{grid-template-columns:1fr;gap:20px}.form-field-wide{grid-column:auto}
  .choice-row{display:grid;grid-template-columns:1fr}.choice-row label{width:100%}.field-support{display:block}.field-support span{display:block;margin-top:5px}
  .form-actions{display:block}.form-submit{width:100%;justify-content:space-between;margin-top:22px}.form-status{grid-template-columns:1fr;gap:10px}
  .contact-alternatives>div{display:grid;gap:4px}.contact-alternatives{margin-top:14vw;margin-bottom:4vw}
}

/* Orientación comercial: del impacto inicial a una demostración concreta */
.orientation{
  padding:clamp(88px,11vw,170px) 4vw;
  background:var(--paper);
  color:var(--ink);
  border-bottom:1px solid rgba(9,19,23,.18)
}
.orientation>.overline{margin:0 0 clamp(38px,5vw,72px)}
.orientation-grid{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);
  gap:clamp(48px,8vw,130px);
  align-items:end
}
.orientation h2{
  margin:0;
  max-width:1050px;
  font:570 clamp(48px,6.5vw,96px)/.95 "Hanken Grotesk",sans-serif;
  letter-spacing:-.07em
}
.orientation h2 em{font-family:"Hanken Grotesk",sans-serif;font-style:normal;font-weight:inherit;letter-spacing:inherit}
.orientation-copy{border-top:2px solid;padding-top:24px}
.orientation-copy p{margin:0;font:500 clamp(16px,1.35vw,20px)/1.58 "DM Sans",sans-serif}
.orientation-copy p+p{margin-top:22px}
.orientation-copy strong{font-weight:700;color:var(--violet)}
body[data-theme="dark"] .orientation{background:var(--ink);color:var(--paper);border-color:rgba(255,255,255,.18)}
body[data-theme="dark"] .orientation-copy strong{color:var(--acid)}

/* La numeración permanece correcta también al alternar el idioma. */
html[lang="en"] .projects .project:nth-child(3) .project-meta>div:first-child>span:after{content:"03 / VISUAL CONCEPT"}
html[lang="en"] .projects .project:nth-child(4) .project-meta>div:first-child>span:after{content:"04 / VISUAL CONCEPT"}

/* Completa la migración tipográfica de los componentes ilustrativos y controles. */
.brand-intro__wordmark span,.brand-intro__wordmark small,.horizonte-preview,.horizonte-panel,
.mock-phone,.lumen-flow,.arch-card,.search-card,.ticket,.order-status,.project-tag,
.form-field label,.form-field legend,.form-submit,.form-status strong,.contact-intro,
.contact-alternatives{font-family:"Hanken Grotesk",sans-serif}

@media(max-width:900px){
  .orientation-grid{grid-template-columns:1fr;gap:38px;align-items:start}
  .orientation-copy{max-width:700px}
}
@media(max-width:760px){
  .orientation{padding:84px 6vw 94px}
  .orientation h2{font-size:13vw}
}

/* Hero Lighthouse: paisaje editorial con el contenido siempre en primer plano */
.hero{
  position:relative;
  isolation:isolate;
  display:block;
  min-height:calc(100svh - 84px);
  padding:clamp(72px,8vw,132px) 4vw clamp(48px,6vw,88px);
  overflow:hidden;
  background-color:#091317;
  background-image:url("assets/lighthouse-hero-night.png");
  background-repeat:no-repeat;
  background-size:cover;
  background-position:center center;
  color:#f1efe8
}
.hero::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  pointer-events:none;
  background:
    linear-gradient(90deg,rgba(4,12,17,.96) 0%,rgba(4,12,17,.88) 32%,rgba(4,12,17,.38) 60%,rgba(4,12,17,.06) 82%),
    linear-gradient(0deg,rgba(4,12,17,.5) 0%,transparent 42%)
}
.hero-copy{
  position:relative;
  z-index:1;
  width:min(63vw,1080px);
  min-height:calc(100svh - 84px - clamp(120px,14vw,220px));
  display:flex;
  flex-direction:column;
  justify-content:space-between
}
.hero .overline,.hero h1,.hero-foot p,.hero .text-link,.hero .round-link{color:#f1efe8}
.hero h1{max-width:1020px;text-shadow:0 2px 26px rgba(0,0,0,.24)}
.hero-foot{width:min(720px,100%)}
.hero .primary-button{background:#f1efe8;color:#091317;border-color:#f1efe8}
.hero .primary-button:hover{background:#d7ff39;color:#091317;border-color:#d7ff39}
.hero .text-link{border-color:rgba(241,239,232,.35)}
.hero .round-link{border-color:rgba(241,239,232,.72)}
.hero .round-link:hover{background:#d7ff39;color:#091317;border-color:#d7ff39}
.hero-art{display:none}
body[data-theme="dark"] .hero{
  color:#f1efe8;
  background-color:#091317;
  background-image:url("assets/lighthouse-hero-night.png");
  background-repeat:no-repeat;
  background-size:cover;
  background-position:center center
}

@media(max-width:1024px){
  .hero,body[data-theme="dark"] .hero{background-position:58% center}
  .hero-copy{width:min(72vw,760px)}
}
@media(max-width:760px){
  .hero,body[data-theme="dark"] .hero{
    min-height:calc(100svh - 69px);
    padding:64px 5vw 48px;
    background-size:auto 100%;
    background-position:81% center
  }
  .hero::before{
    background:
      linear-gradient(90deg,rgba(4,12,17,.96) 0%,rgba(4,12,17,.88) 58%,rgba(4,12,17,.36) 100%),
      linear-gradient(0deg,rgba(4,12,17,.75) 0%,rgba(4,12,17,.08) 62%)
  }
  .hero-copy{width:100%;min-height:calc(100svh - 69px - 112px)}
  .hero h1{max-width:94%;font-size:clamp(48px,14vw,72px)}
  .hero-foot{margin-top:52px}
}
@media(max-width:420px){
  .hero,body[data-theme="dark"] .hero{background-position:81% center}
  .hero::before{background:linear-gradient(90deg,rgba(4,12,17,.97) 0%,rgba(4,12,17,.9) 64%,rgba(4,12,17,.48) 100%),linear-gradient(0deg,rgba(4,12,17,.78),transparent 64%)}
}

/* Hero día/noche: fondos Retina alineados, encabezado superpuesto y haz vectorial */
.header{
  position:absolute;inset:0 0 auto;z-index:20;
  background:linear-gradient(180deg,rgba(241,239,232,.94),rgba(241,239,232,.76) 70%,transparent);
  border-bottom-color:rgba(9,19,23,.16);color:#091317;
  transition:background .8s ease,color .8s ease,border-color .8s ease
}
.header .brand,.header .nav a,.header .language-toggle,.header .theme-toggle{color:inherit}
.header .language-toggle,.header .theme-toggle{border-color:rgba(9,19,23,.24)}
body[data-theme="dark"] .header{
  background:linear-gradient(180deg,rgba(9,19,23,.94),rgba(9,19,23,.74) 70%,transparent);
  border-bottom-color:rgba(241,239,232,.16);color:#f1efe8
}
body[data-theme="dark"] .header .language-toggle,body[data-theme="dark"] .header .theme-toggle{border-color:rgba(241,239,232,.24)}
.hero,body[data-theme="dark"] .hero{
  min-height:100svh;padding-top:clamp(156px,14vh,196px);
  background-color:#f1efe8;background-image:url("assets/lighthouse-hero-day-v2.webp");
  background-repeat:no-repeat;background-size:cover;background-position:right center;
  color:#091317;transition:background-color .8s ease,color .8s ease
}
.hero::after{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:url("assets/lighthouse-hero-night-v2.webp") right center/cover no-repeat;
  opacity:0;transition:opacity 1s cubic-bezier(.22,.7,.25,1)
}
body[data-theme="dark"] .hero::after{opacity:1}
.hero::before{
  z-index:2;
  background:linear-gradient(90deg,rgba(241,239,232,.96) 0%,rgba(241,239,232,.86) 33%,rgba(241,239,232,.34) 60%,rgba(241,239,232,.04) 80%),linear-gradient(0deg,rgba(241,239,232,.36),transparent 44%);
  transition:background .8s ease
}
body[data-theme="dark"] .hero::before{
  background:linear-gradient(90deg,rgba(4,12,17,.96) 0%,rgba(4,12,17,.86) 33%,rgba(4,12,17,.3) 61%,rgba(4,12,17,.03) 82%),linear-gradient(0deg,rgba(4,12,17,.54),transparent 44%)
}
.hero-copy{z-index:3;min-height:calc(100svh - clamp(228px,24vh,300px))}
.hero .overline,.hero h1,.hero-foot p,.hero .text-link,.hero .round-link{color:#091317;transition:color .8s ease,border-color .8s ease}
.hero .primary-button{background:#091317;color:#f1efe8;border-color:#091317;transition:background .25s,color .25s,border-color .25s,transform .25s}
.hero .text-link,.hero .round-link{border-color:rgba(9,19,23,.42)}
body[data-theme="dark"] .hero{color:#f1efe8}
body[data-theme="dark"] .hero .overline,body[data-theme="dark"] .hero h1,body[data-theme="dark"] .hero-foot p,body[data-theme="dark"] .hero .text-link,body[data-theme="dark"] .hero .round-link{color:#f1efe8}
body[data-theme="dark"] .hero .primary-button{background:#f1efe8;color:#091317;border-color:#f1efe8}
body[data-theme="dark"] .hero .text-link,body[data-theme="dark"] .hero .round-link{border-color:rgba(241,239,232,.46)}
.hero-beam{
  position:absolute;z-index:1;top:24%;right:10.6%;width:min(78vw,1500px);height:18%;pointer-events:none;
  clip-path:polygon(100% 46%,0 5%,0 95%,100% 54%);transform-origin:100% 50%;
  background:linear-gradient(90deg,rgba(215,255,57,0),rgba(215,255,57,.08) 40%,rgba(241,239,232,.58) 100%);
  filter:blur(.4px) drop-shadow(0 0 18px rgba(215,255,57,.15));opacity:0
}
body[data-theme="dark"] .hero-beam{animation:hero-beam-sweep 6.4s ease-in-out infinite}
@keyframes hero-beam-sweep{
  0%,12%{opacity:0;transform:rotate(-4deg) scaleX(.76)}
  24%{opacity:.52}
  48%{opacity:.82;transform:rotate(1deg) scaleX(1)}
  74%{opacity:.38;transform:rotate(4deg) scaleX(.94)}
  88%,100%{opacity:0;transform:rotate(5deg) scaleX(.82)}
}
@media(max-width:1024px){
  .hero,body[data-theme="dark"] .hero{background-position:right center}
  .hero::after{background-position:right center}
}
@media(max-width:760px){
  .header{background:linear-gradient(180deg,rgba(241,239,232,.97),rgba(241,239,232,.82) 76%,transparent)}
  body[data-theme="dark"] .header{background:linear-gradient(180deg,rgba(9,19,23,.97),rgba(9,19,23,.82) 76%,transparent)}
  .hero,body[data-theme="dark"] .hero{min-height:100svh;padding-top:128px;background-size:auto 100%;background-position:81% center}
  .hero::after{background-size:auto 100%;background-position:81% center}
  .hero-copy{min-height:calc(100svh - 184px)}
  .hero::before{background:linear-gradient(90deg,rgba(241,239,232,.97) 0%,rgba(241,239,232,.9) 62%,rgba(241,239,232,.45) 100%),linear-gradient(0deg,rgba(241,239,232,.64),transparent 62%)}
  body[data-theme="dark"] .hero::before{background:linear-gradient(90deg,rgba(4,12,17,.97) 0%,rgba(4,12,17,.9) 62%,rgba(4,12,17,.46) 100%),linear-gradient(0deg,rgba(4,12,17,.76),transparent 62%)}
  .hero-beam{top:28%;right:0;width:88vw;height:13%}
}
@media(prefers-reduced-motion:reduce){
  .hero::after,.header,.hero,.hero-copy,.hero .overline,.hero h1,.hero-foot p,.hero .text-link,.hero .round-link{transition:none!important}
  body[data-theme="dark"] .hero-beam{animation:none;opacity:.38;transform:none}
}

/* Curvatura Lighthouse: precisión suave, consistente con Demo 02 */
.primary-button,
.project-demo-link,
.project-case-link,
.form-submit,
.language-toggle,
.theme-toggle,
.choice-row label{
  border-radius:6px
}
.project-stage,
.horizonte-preview,
.horizonte-panel,
.arch-card,
.search-card,
.ticket,
.order-status{
  border-radius:8px
}
.project-stage{overflow:hidden}
.round-link,.floating-whatsapp,.to-top,.brand-mark{border-radius:50%}

/* Una sola voz tipográfica: énfasis sin serif ni cursiva decorativa */
.hero h1 em,
h2 em,
.section-copy h2 em{
  font-family:inherit;
  font-style:normal;
  font-weight:inherit;
  letter-spacing:inherit
}

/* Sistema tipográfico Lighthouse: una grotesca editorial, sobria y consistente */
body,
body *:not(.fa):not(.fa-brands):not(.fa-solid):not(.fa-regular){
  font-family:"Hanken Grotesk",sans-serif!important
}
h1,h2,h3,
h1 em,h2 em,h3 em,
.brand-mark,.brand-name,
.brand-intro__wordmark span,.brand-intro__wordmark small{
  font-family:"Hanken Grotesk",sans-serif!important
}
body{font-variation-settings:"wght" 440}
p{line-height:1.58}
.nav,.primary-button,.text-link,.project-meta,.project-tag,
.project-demo-link,.project-case-link,.language-toggle,.theme-toggle,
.form-submit,.form-field label,.form-field legend{
  font-variation-settings:"wght" 610
}

/* Ritmo premium: menos masa, mejor proporción y aire intencional */
h1,h2{font-weight:570!important;letter-spacing:-.048em!important}
h3{font-weight:610!important;letter-spacing:-.025em!important}
.hero h1{font-size:clamp(54px,6.5vw,104px);line-height:.94}
.orientation{padding-top:clamp(82px,8vw,122px);padding-bottom:clamp(88px,8.5vw,132px)}
.orientation h2{font-size:clamp(46px,5.2vw,78px);line-height:.98;max-width:900px}
.orientation-grid{gap:clamp(44px,7vw,104px)}
.projects{padding:clamp(82px,7.5vw,116px) 4vw clamp(96px,8vw,132px)}
.projects .section-title{
  grid-template-columns:minmax(220px,.62fr) minmax(0,1.38fr);
  column-gap:clamp(44px,6vw,92px);
  align-items:start;
  margin-bottom:clamp(46px,4.5vw,70px)
}
.projects .section-title h2{font-size:clamp(46px,5vw,76px);line-height:.96;max-width:720px}
.projects .disclaimer{margin-top:22px;max-width:480px;font-size:14px}
.projects .project-grid{gap:clamp(42px,4.5vw,66px) clamp(24px,2.5vw,38px)}
.projects .project-stage{height:clamp(310px,29vw,390px)}
.projects .project-meta{min-height:108px;padding:18px 0 14px}
.projects .project-meta h3{font-size:clamp(23px,2.25vw,32px);margin-top:5px}
@media(max-width:900px){
  .projects .section-title{grid-template-columns:1fr;gap:24px;margin-bottom:46px}
  .projects .disclaimer{grid-column:1;margin-top:0}
  .projects .project-stage{height:min(450px,68vw)}
}
@media(max-width:560px){
  .projects{padding-inline:5vw}
  .projects .section-title h2{font-size:13vw}
  .projects .project-stage{height:350px}
}

/* Cierre de contacto compacto: agrupa acción, canales y pie sin vacíos residuales */
.contact{padding-bottom:0}
.form-actions{
  margin-top:clamp(24px,2.4vw,36px);
  padding-top:clamp(22px,2vw,30px)
}
.contact-alternatives{
  margin-top:clamp(42px,4vw,64px);
  padding:clamp(22px,2vw,30px) 0 clamp(48px,5vw,76px)
}
.contact-alternatives>p{margin-bottom:14px}
.site-footer{
  padding-top:clamp(22px,2vw,30px);
  padding-bottom:clamp(22px,2vw,30px)
}
@media(max-width:760px){
  .contact-alternatives{
    margin-top:42px;
    margin-bottom:0;
    padding-bottom:44px
  }
  .site-footer{padding-top:20px;padding-bottom:20px}
}

/* WhatsApp del hero: un único icono limpio, sin etiqueta ni cápsula */
.floating-whatsapp.is-over-hero{
  right:clamp(18px,2.2vw,34px);
  bottom:clamp(18px,2.2vw,34px);
  width:54px;
  min-width:54px;
  height:54px;
  padding:0;
  gap:0;
  border:1px solid rgba(255,255,255,.3);
  border-radius:50%;
  box-shadow:0 12px 30px rgba(4,12,17,.28)
}
.floating-whatsapp.is-over-hero:hover{
  transform:translateY(-4px) scale(1.04);
  gap:0;
  padding:0
}
.floating-whatsapp.is-over-hero i{font-size:27px}
@media(max-width:760px){
  .floating-whatsapp.is-over-hero{display:flex}
}
@media(min-width:761px) and (max-width:1024px){
  .floating-whatsapp.is-over-hero{display:flex}
}

/* Estudio editorial: proceso real, oficio y origen en el Valle del Limarí */
.studio-journal{
  position:relative;
  width:100%;
  aspect-ratio:4/3;
  min-height:0;
  max-height:520px;
  overflow:hidden;
  border-radius:8px;
  background:#15131a;
  isolation:isolate
}
.studio-journal figure{
  position:absolute;
  inset:0;
  margin:0;
  opacity:0;
  animation:studio-journal-cycle 18s infinite
}
.studio-journal figure:nth-child(2){animation-delay:6s}
.studio-journal figure:nth-child(3){animation-delay:12s}
.studio-journal img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  filter:saturate(.82) contrast(1.03);
  transform:scale(1.045);
  animation:studio-journal-drift 6s ease-in-out infinite alternate
}
.studio-journal::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
  background:linear-gradient(180deg,transparent 52%,rgba(7,11,13,.68) 100%)
}
.studio-journal-meta{
  position:absolute;
  z-index:3;
  inset:auto 24px 22px;
  display:flex;
  justify-content:space-between;
  gap:20px;
  color:#f1efe8;
  font:610 9px/1.4 "Hanken Grotesk",sans-serif;
  letter-spacing:.12em
}
.studio-journal-meta b{color:#d7ff39;font-weight:610}
.studio-origin{
  margin:clamp(30px,3.5vw,52px) 0!important;
  padding:clamp(24px,2.6vw,36px) 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  color:var(--ink)!important;
  font-size:clamp(18px,1.65vw,24px)!important;
  line-height:1.48!important;
  letter-spacing:-.015em
}
body[data-theme="dark"] .studio-origin{color:var(--night-text)!important}
.studio .studio-grid{
  grid-template-columns:minmax(340px,.7fr) minmax(0,1.3fr);
  gap:clamp(54px,7vw,112px);
  align-items:start;
  margin-top:clamp(48px,5vw,76px)
}
.studio .studio-copy .lead{margin-bottom:clamp(28px,3vw,44px)}
.studio .principles{margin-top:clamp(34px,4vw,58px)}
@keyframes studio-journal-cycle{
  0%,29%{opacity:1}
  34%,100%{opacity:0}
}
@keyframes studio-journal-drift{
  from{transform:scale(1.045) translate3d(0,0,0)}
  to{transform:scale(1.085) translate3d(-1.2%,.8%,0)}
}
@media(max-width:900px){
  .studio .studio-grid{grid-template-columns:1fr;gap:42px}
  .studio-journal{max-width:680px;aspect-ratio:16/10}
}
@media(max-width:760px){
  .studio .studio-grid{grid-template-columns:1fr;gap:38px}
  .studio-journal{aspect-ratio:4/3;max-height:none}
  .studio-journal-meta{inset:auto 16px 16px;display:grid;gap:4px}
}
@media(prefers-reduced-motion:reduce){
  .studio-journal figure,.studio-journal img{animation:none}
  .studio-journal figure:first-child{opacity:1}
}

/* Prioridades críticas: contacto comercial compacto y narrativa editada */
.contact-channel-pending,
.contact-channel-pending[hidden],
.contact-setup-fields{display:none!important}
.contact{
  padding-top:clamp(88px,8vw,124px)
}
.contact-heading{
  grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);
  gap:clamp(52px,7vw,108px)
}
.contact-heading h2{font-size:clamp(54px,7vw,102px)}
.contact-form{
  margin-top:clamp(56px,5vw,78px);
  padding-top:clamp(30px,3vw,42px)
}
.contact-form .form-grid{gap:22px clamp(24px,3vw,46px)}
.contact-form .form-field textarea{min-height:130px}
.contact-form .consent-field{padding-top:20px}
.contact-form .form-actions{margin-top:24px;padding-top:24px}
.contact-form .form-submit:disabled{
  opacity:.72;
  cursor:not-allowed;
  transform:none
}
.contact-alternatives{
  margin-top:clamp(38px,3.5vw,56px);
  padding-bottom:clamp(44px,4vw,64px)
}
@media(max-width:760px){
  .contact{padding-top:80px}
  .contact-heading{grid-template-columns:1fr;gap:30px}
  .contact-heading h2{font-size:12.5vw}
  .contact-form{margin-top:48px;padding-top:26px}
  .contact-form .form-grid{gap:18px}
  .contact-form .form-actions{margin-top:20px}
  .contact-alternatives{margin-top:36px;padding-bottom:40px}
}

/* Ritmo editorial: solo Hero, Proyectos y Contacto conservan escala monumental */
.orientation h2,
.services h2,
.process h2,
.faq h2{
  font-size:clamp(42px,4.4vw,64px)!important;
  line-height:.99!important;
  letter-spacing:-.045em!important
}
.connected-system h2,
.studio h2{
  font-size:clamp(48px,5vw,72px)!important;
  line-height:.98!important;
  letter-spacing:-.05em!important
}
.orientation{
  padding-top:clamp(68px,6.5vw,100px);
  padding-bottom:clamp(72px,7vw,108px)
}
.orientation>.overline{margin-bottom:clamp(28px,3.5vw,48px)}
.services{padding-top:clamp(76px,7vw,110px);padding-bottom:clamp(76px,7vw,110px)}
.services-intro{margin-bottom:clamp(46px,5vw,72px)}
.connected-system{padding-top:clamp(82px,7.5vw,118px);padding-bottom:clamp(84px,8vw,124px)}
.connected-system-flow{margin-top:clamp(52px,5.5vw,82px)}
.studio{padding-top:clamp(76px,7vw,110px);padding-bottom:clamp(78px,7.5vw,116px)}
.studio .studio-grid{margin-top:clamp(42px,4vw,62px)}
.process{padding-top:clamp(78px,7vw,108px);padding-bottom:clamp(76px,7vw,108px)}
.process ol{margin-top:clamp(48px,5vw,74px)}
.faq{padding-top:clamp(76px,7vw,108px);padding-bottom:clamp(78px,7vw,112px)}
.faq-grid{margin-top:clamp(42px,4.5vw,66px)}
@media(max-width:760px){
  .orientation h2,.services h2,.process h2,.faq h2{font-size:clamp(40px,11vw,48px)!important}
  .connected-system h2,.studio h2{font-size:clamp(44px,12vw,54px)!important}
  .orientation,.services,.connected-system,.studio,.process,.faq{padding-top:68px;padding-bottom:72px}
}

/* Encuadre móvil del hero: el faro permanece reconocible sin invadir el texto */
@media(max-width:760px){
  .hero,
  body[data-theme="dark"] .hero,
  .hero::after{
    background-position:92% center
  }
}
@media(max-width:420px){
  .hero,
  body[data-theme="dark"] .hero,
  .hero::after{
    background-position:91% center
  }
}

/* Orientación editorial: problema y respuesta como una composición, no como texto residual */
.orientation{
  padding-top:clamp(64px,5.8vw,88px);
  padding-bottom:clamp(70px,6.4vw,98px)
}
.orientation>.overline{margin-bottom:clamp(42px,4.4vw,64px)}
.orientation-grid{
  grid-template-columns:minmax(0,1.18fr) minmax(360px,.82fr);
  align-items:center;
  gap:clamp(68px,8vw,132px)
}
.orientation h2{
  align-self:center;
  max-width:820px;
  text-wrap:balance
}
.orientation-copy{
  border-top:0;
  padding-top:0;
  counter-reset:orientation
}
.orientation-point{
  display:grid;
  grid-template-columns:84px minmax(0,1fr);
  gap:clamp(22px,2.3vw,36px);
  padding:clamp(24px,2.2vw,32px) 0;
  border-top:1px solid currentColor
}
.orientation-point:last-child{border-bottom:1px solid var(--line)}
.orientation-label{
  padding-top:5px;
  color:var(--grey);
  font-size:10px;
  font-weight:680;
  line-height:1.35;
  letter-spacing:.12em
}
.orientation-point p{
  max-width:31ch;
  margin:0;
  font-size:clamp(17px,1.28vw,20px);
  font-style:normal;
  font-weight:470;
  letter-spacing:-.018em;
  line-height:1.52
}
.orientation-point-accent p{font-size:clamp(18px,1.4vw,21px)}
.orientation-point-accent strong{
  color:var(--violet);
  font-weight:650
}
body[data-theme="dark"] .orientation-label{color:rgba(241,239,232,.58)}
body[data-theme="dark"] .orientation-point:last-child{border-bottom-color:rgba(241,239,232,.2)}
body[data-theme="dark"] .orientation-point-accent strong{color:var(--acid)}
@media(max-width:900px){
  .orientation-grid{grid-template-columns:1fr;gap:42px;align-items:start}
  .orientation h2{max-width:760px}
  .orientation-copy{width:100%;max-width:700px}
}
@media(max-width:760px){
  .orientation{padding-top:66px;padding-bottom:74px}
  .orientation>.overline{margin-bottom:34px}
  .orientation-grid{gap:36px}
  .orientation-point{grid-template-columns:1fr;gap:12px;padding:22px 0}
  .orientation-label{padding-top:0}
  .orientation-point p,.orientation-point-accent p{font-size:17px;max-width:36ch}
}

/* Proyectos: cabecera compacta, alineada y conectada con el catálogo */
.projects{
  padding-top:clamp(60px,5vw,78px);
  padding-bottom:clamp(86px,7vw,112px)
}
.projects .section-title{
  grid-template-columns:minmax(260px,.7fr) minmax(0,1.3fr);
  grid-template-rows:auto auto;
  column-gap:clamp(56px,7vw,116px);
  row-gap:clamp(18px,1.8vw,26px);
  align-items:start;
  margin-bottom:clamp(38px,3.6vw,54px);
  padding-bottom:clamp(34px,3vw,46px);
  border-bottom:1px solid rgba(241,239,232,.2)
}
.projects .section-title .overline{
  grid-column:1;
  grid-row:1;
  margin-top:clamp(9px,1vw,15px);
  max-width:320px
}
.projects .section-title h2{
  grid-column:2;
  grid-row:1;
  margin:0;
  max-width:none;
  font-size:clamp(48px,5.2vw,80px);
  line-height:.94;
  white-space:nowrap
}
.projects .section-title .disclaimer{
  grid-column:2;
  grid-row:2;
  max-width:620px;
  margin:0;
  color:rgba(241,239,232,.64);
  font-size:clamp(13px,1vw,15px);
  line-height:1.58
}
.projects .project-grid{
  gap:clamp(38px,4vw,58px) clamp(24px,2.5vw,38px)
}
@media(max-width:900px){
  .projects{padding-top:64px}
  .projects .section-title{
    grid-template-columns:1fr;
    grid-template-rows:auto;
    gap:22px;
    margin-bottom:40px;
    padding-bottom:34px
  }
  .projects .section-title .overline,
  .projects .section-title h2,
  .projects .section-title .disclaimer{
    grid-column:1;
    grid-row:auto
  }
  .projects .section-title .overline{margin-top:0}
  .projects .section-title h2{white-space:normal}
}
@media(max-width:560px){
  .projects{padding-top:56px;padding-bottom:78px}
  .projects .section-title{margin-bottom:34px;padding-bottom:30px}
  .projects .section-title h2{font-size:12vw}
}

/* Catálogo enmarcado: las piezas respiran y dejan de dominar toda la pantalla */
.projects .section-title,
.projects .project-grid{
  width:100%;
  max-width:1500px;
  margin-left:auto;
  margin-right:auto
}
.projects .project-grid{
  column-gap:clamp(28px,2.6vw,42px);
  row-gap:clamp(46px,4.5vw,68px)
}
.projects .project-stage{
  height:clamp(280px,22vw,330px)
}
.projects .project-meta{
  min-height:98px;
  padding-top:16px
}
@media(max-width:900px){
  .projects .project-grid{max-width:760px}
  .projects .project-stage{height:min(420px,60vw)}
}
@media(max-width:560px){
  .projects .project-stage{height:320px}
  .projects .project-meta{min-height:0}
}

/* Proyectos premium: negro mineral, profundidad controlada y marcos de galería */
.projects{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  background-color:#0b0d10;
  background-image:
    radial-gradient(ellipse 70% 46% at 74% 2%,rgba(107,88,151,.13),transparent 64%),
    radial-gradient(ellipse 56% 40% at 6% 78%,rgba(93,111,79,.08),transparent 68%),
    linear-gradient(180deg,#0d0f13 0%,#0a0c0f 100%);
  color:#f4f1ea
}
.projects::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  pointer-events:none;
  opacity:.18;
  background-image:linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px);
  background-size:100% 96px;
  mask-image:linear-gradient(180deg,black,transparent 78%)
}
.projects .section-title{border-bottom-color:rgba(244,241,234,.16)}
.projects .section-title h2{
  color:#f4f1ea;
  letter-spacing:-.058em!important
}
.projects .section-title .overline{
  color:rgba(244,241,234,.82)
}
.projects .section-title .disclaimer{
  color:rgba(244,241,234,.58)
}
.projects .project-stage{
  border:1px solid rgba(244,241,234,.12);
  box-shadow:0 20px 48px rgba(0,0,0,.22),0 1px 0 rgba(255,255,255,.04) inset
}
.projects .project-meta{
  border-bottom-color:rgba(244,241,234,.16)
}
@media(min-width:1100px){
  .projects .section-title .overline{
    max-width:none;
    white-space:nowrap
  }
}

/* Corrección de dirección: sobriedad material y cabecera inequívocamente a la izquierda */
.projects{
  background:#111214;
  background-image:none
}
.projects::before{display:none}
.projects .section-title{
  grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);
  grid-template-rows:auto auto;
  column-gap:clamp(54px,6vw,100px);
  row-gap:clamp(24px,2.2vw,34px)
}
.projects .section-title .overline{
  grid-column:1;
  grid-row:1;
  margin:0;
  justify-self:start
}
.projects .section-title h2{
  grid-column:1;
  grid-row:2;
  justify-self:start;
  max-width:960px;
  white-space:normal;
  text-align:left;
  text-wrap:balance;
  font-size:clamp(50px,4.8vw,76px)
}
.projects .section-title .disclaimer{
  grid-column:2;
  grid-row:2;
  align-self:end;
  max-width:440px;
  padding-bottom:5px
}
.projects .project-stage{
  border:0;
  box-shadow:none
}
@media(max-width:900px){
  .projects .section-title{grid-template-columns:1fr;gap:20px}
  .projects .section-title .overline,
  .projects .section-title h2,
  .projects .section-title .disclaimer{
    grid-column:1;
    grid-row:auto
  }
  .projects .section-title .disclaimer{max-width:560px;padding-bottom:0}
}

/* Acceso WhatsApp del hero: icono único, honesto mientras el canal se prepara */
.hero-whatsapp{
  position:absolute;
  right:clamp(22px,3vw,52px);
  bottom:clamp(22px,3vw,48px);
  z-index:6;
  width:56px;
  height:56px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.58);
  border-radius:50%;
  background:#16a864;
  color:#fff;
  text-decoration:none;
  box-shadow:0 14px 34px rgba(4,35,22,.22);
  transition:transform .25s ease,background .25s ease,box-shadow .25s ease
}
.hero-whatsapp i{font-size:27px}
.hero-whatsapp:hover{
  transform:translateY(-4px);
  background:#128c53;
  box-shadow:0 18px 40px rgba(4,35,22,.3)
}
.hero-whatsapp:focus-visible{
  outline:3px solid var(--violet);
  outline-offset:4px
}
body[data-theme="dark"] .hero-whatsapp{
  border-color:rgba(241,239,232,.42);
  box-shadow:0 14px 36px rgba(0,0,0,.32)
}
@media(max-width:760px){
  .hero-whatsapp{
    right:18px;
    bottom:18px;
    width:52px;
    height:52px
  }
  .hero-whatsapp i{font-size:25px}
}
@media(prefers-reduced-motion:reduce){
  .hero-whatsapp{transition:none}
}

/* Lumen Beauty: una miniportada con la energía cromática de la demo */
.projects .project-stage::after{display:none}
.projects .stage-lumen{
  display:block;
  position:relative;
  background:
    radial-gradient(circle at 89% 21%,#eaff35 0 9%,transparent 9.3%),
    linear-gradient(101deg,#174cff 0 82%,#ff7f5f 82% 100%);
  color:#f8f5ee
}
.stage-lumen::before{
  content:"LUMEN / BEAUTY CLUB — 2026";
  position:absolute;
  right:18px;
  bottom:22px;
  color:rgba(255,255,255,.82);
  font-size:8px;
  font-weight:700;
  letter-spacing:.16em;
  writing-mode:vertical-rl
}
.lumen-statement{
  position:absolute;
  z-index:2;
  left:6%;
  top:18%;
  display:grid;
  font-size:clamp(48px,4.6vw,70px);
  font-weight:760;
  line-height:.78;
  letter-spacing:-.07em
}
.lumen-statement span{color:#f8f5ee}
.lumen-statement b{color:#eaff35;font-weight:760}
.stage-lumen .mock-phone{
  position:absolute;
  z-index:3;
  top:-12%;
  right:16%;
  height:128%;
  width:30%;
  min-width:178px;
  padding:38px 18px 20px;
  border:7px solid #210d18;
  border-radius:34px;
  background:#351521;
  box-shadow:18px 26px 0 rgba(255,127,95,.92),0 30px 60px rgba(7,15,70,.32);
  transform:rotate(4deg)
}
.stage-lumen .mock-phone .mock-title{display:none}
.stage-lumen .mock-phone .micro{color:#eaff35}
.stage-lumen .booking{margin-top:auto}
.stage-lumen .booking span{background:#f8f5ee;color:#151419}
.stage-lumen .project-tag{
  z-index:5;
  left:6%;
  right:auto;
  top:auto;
  bottom:11%;
  padding:12px 16px;
  background:#f8f5ee;
  color:#151419;
  transform:rotate(-2deg)
}
.stage-lumen .lumen-flow{
  z-index:4;
  left:auto;
  right:5%;
  bottom:8%;
  color:#151419;
  background:#eaff35;
  box-shadow:none;
  transform:scale(.8);
  transform-origin:right bottom
}
.stage-lumen .lumen-flow div b{color:#174cff}
.stage-lumen .lumen-flow>i{color:#174cff}
@media(max-width:760px){
  .lumen-statement{left:6%;top:13%;font-size:clamp(42px,12vw,58px)}
  .stage-lumen .mock-phone{right:7%;width:42%;height:116%;top:-8%}
  .stage-lumen .project-tag{left:5%;bottom:8%;max-width:45%;font-size:10px}
  .stage-lumen .lumen-flow{display:none}
}

/* Lumen corregido: paleta concentrada y agenda completamente visible */
.projects .stage-lumen{
  background:
    radial-gradient(circle at 91% 17%,#eaff35 0 8.5%,transparent 8.8%),
    linear-gradient(135deg,#174cff 0%,#1141e9 58%,#0d35c8 100%)
}
.stage-lumen::before{
  right:20px;
  bottom:20px;
  color:rgba(255,255,255,.72)
}
.stage-lumen .mock-phone{
  top:7%;
  right:7%;
  width:31%;
  height:86%;
  min-width:190px;
  max-width:236px;
  padding:34px 18px 18px;
  overflow:hidden;
  border-color:#071963;
  background:linear-gradient(155deg,#102d9b 0%,#0a1d70 100%);
  box-shadow:12px 14px 0 rgba(234,255,53,.9),0 24px 52px rgba(3,13,67,.32);
  transform:rotate(3deg)
}
.stage-lumen .mock-phone .micro{color:#eaff35}
.stage-lumen .booking{
  position:relative;
  z-index:2;
  margin-top:auto;
  border-top-color:rgba(248,245,238,.34);
  color:#f8f5ee
}
.stage-lumen .booking small{color:rgba(248,245,238,.62)}
.stage-lumen .booking strong{font-size:clamp(15px,1.25vw,19px)}
.stage-lumen .booking span{
  padding:9px 8px;
  background:#eaff35;
  color:#10131d
}
.stage-lumen .lumen-flow{
  z-index:5;
  top:29%;
  right:9.2%;
  bottom:auto;
  left:auto;
  width:26%;
  max-width:190px;
  display:grid;
  gap:4px;
  padding:0;
  color:#f8f5ee;
  background:transparent;
  box-shadow:none;
  transform:rotate(3deg)
}
.stage-lumen .lumen-flow>small{
  position:static;
  margin-bottom:5px;
  color:#eaff35;
  font-size:7px
}
.stage-lumen .lumen-flow div{
  display:flex;
  flex-direction:row;
  justify-content:space-between;
  align-items:center;
  padding:5px 0;
  border-bottom:1px solid rgba(248,245,238,.2)
}
.stage-lumen .lumen-flow div b{color:#eaff35;font-size:8px}
.stage-lumen .lumen-flow div span{color:#f8f5ee;font-size:9px}
.stage-lumen .lumen-flow>i{display:none}
.stage-lumen .project-tag{
  left:6%;
  bottom:10%;
  max-width:44%;
  background:#f8f5ee
}
@media(max-width:760px){
  .stage-lumen .mock-phone{
    top:8%;
    right:5%;
    width:43%;
    min-width:158px;
    height:84%;
    padding:30px 13px 14px
  }
  .stage-lumen .lumen-flow{
    display:grid;
    top:29%;
    right:7.5%;
    width:37%;
    transform:rotate(3deg)
  }
  .stage-lumen .lumen-flow div{padding:3px 0}
  .stage-lumen .lumen-flow div span{font-size:8px}
  .stage-lumen .booking strong{font-size:14px}
  .stage-lumen .booking span{font-size:7px;padding:7px 5px}
}
