@font-face {
  font-family:Inter;
  src:url('assets/Inter.ttf');
  font-weight:100 900;
  font-display:swap
}
:root {
  --bg:#0b1222;
  --panel:#0f1c31;
  --ink:#f4f7ff;
  --muted:#a8b5c9;
  --accent:#22d3ee;
  --blue:#2563eb;
  --line:#2a3c54;
  --radius:24px;
  --glow:#22d3ee19
}
* {
  box-sizing:border-box
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:30px
}
body {
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font:14px/1.7 Inter,sans-serif
}
a {
  color:inherit;
  text-decoration:none
}
button,input,textarea {
  font:inherit
}
button {
  cursor:pointer
}
a,button {
  transition:color .25s,background .25s,transform .25s
}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible {
  outline:2px solid var(--accent);
  outline-offset:5px
}
::selection {
  background:var(--accent);
  color:var(--bg)
}
.wrap {
  width:min(1280px,calc(100% - 96px));
  margin:auto
}
header {
  height:110px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  border-bottom:1px solid var(--line);
  padding:0 48px;
  max-width:1440px;
  margin:auto
}
.logo {
  width:190px;
  height:60px;
  object-fit:contain
}
nav {
  display:flex;
  align-items:center;
  gap:32px;
  font-size:12px
}
nav a:hover,.text-link:hover {
  color:var(--accent)
}
.outline {
  padding:10px 23px;
  border:1px solid #6a7c94;
  border-radius:30px
}
.menu {
  display:none
}
.hero {
  padding-top:75px;
  display:grid;
  grid-template-columns:1.1fr 1fr;
  gap:30px
}
.eyebrow {
  font-size:9px;
  letter-spacing:2px;
  display:flex;
  align-items:center;
  gap:10px;
  color:var(--ink);
  margin:0 0 28px
}
.eyebrow i {
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--accent);
  box-shadow:0 0 20px var(--accent)
}
h1,h2,h3 {
  font-weight:500;
  letter-spacing:-.055em;
  line-height:1.07;
  margin:0 0 28px
}
h1 {
  font-size:clamp(55px,5.8vw,84px)
}
em {
  font-style:normal;
  color:var(--accent)
}
p {
  color:var(--muted);
  margin:0 0 24px
}
.lead {
  font-size:16px;
  line-height:1.8
}
.actions {
  display:flex;
  align-items:center;
  gap:24px;
  margin:30px 0 20px
}
.button {
  display:inline-flex;
  justify-content:space-between;
  align-items:center;
  gap:26px;
  background:var(--blue);
  color:white;
  padding:16px 23px;
  border:0;
  border-radius:30px;
  font-size:12px
}
.button:hover {
  transform:translateY(-3px);
  background:#3778ff
}
.text-link {
  font-size:12px
}
.hero-copy>small {
  font-size:9px;
  color:var(--muted)
}
.brand-stage {
  position:relative;
  border:1px solid var(--line);
  border-radius:160px 160px 28px 28px;
  overflow:hidden;
  background:radial-gradient(at var(--px,50%) var(--py,40%),#124e7070,transparent 65%),var(--panel);
  padding:36px 25px 20px;
  align-self:center;
  min-height:535px
}
.stage-top {
  display:flex;
  justify-content:space-between;
  font-size:7px;
  letter-spacing:1.3px;
  padding:0 35px
}
.brand-sculpture {
  height:330px;
  display:flex;
  align-items:center;
  justify-content:center;
  position:relative
}
.hero-mark {
  width:240px;
  height:240px;
  object-fit:contain;
  filter:drop-shadow(0 20px 30px #0007);
  z-index:1;
  animation:float 8s ease-in-out infinite
}
.ring {
  width:290px;
  height:290px;
  position:absolute;
  border:1px solid #6a9eba45;
  border-radius:50%;
  transform:rotateX(58deg) rotate(-25deg)
}
.r2 {
  width:390px;
  height:390px;
  transform:rotateX(55deg) rotate(40deg);
  border-style:dashed
}
.stage-nodes {
  display:flex;
  gap:8px;
  justify-content:center
}
.stage-nodes button {
  padding:9px 12px;
  font-size:9px;
  border:1px solid var(--line);
  background:var(--bg);
  color:var(--muted);
  border-radius:25px
}
.stage-nodes button[aria-pressed=true] {
  color:var(--accent);
  border-color:var(--accent)
}
.insight {
  font-size:10px;
  text-align:center;
  margin:20px auto 0;
  max-width:320px;
  min-height:34px
}
.hero-bottom {
  grid-column:1/-1;
  display:flex;
  justify-content:space-between;
  gap:15px;
  border-top:1px solid var(--line);
  padding:25px 0;
  margin-top:45px;
  font-size:8px;
  letter-spacing:1.5px;
  color:var(--muted)
}
.section {
  padding-top:100px;
  padding-bottom:100px;
  border-top:1px solid var(--line)
}
h2 {
  font-size:clamp(34px,3.65vw,52px)
}
.vision {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:100px
}
.large {
  font-size:23px;
  line-height:1.5;
  color:var(--ink)
}
.before-after {
  display:flex;
  flex-direction:column;
  gap:10px;
  border-top:1px solid var(--line);
  padding-top:20px;
  font-size:12px
}
.before-after>span {
  text-decoration:line-through;
  color:#8190a8
}
.before-after b {
  color:var(--accent);
  font-size:24px
}
.before-after strong {
  font-weight:500
}
.lab-section {
  background:var(--panel)
}
.section-head {
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:30px
}
.section-head>p {
  font-size:13px
}
.lab {
  display:grid;
  grid-template-columns:.75fr 1.25fr;
  gap:75px;
  margin-top:40px
}
.label {
  font-size:8px;
  letter-spacing:1.8px;
  color:var(--muted)
}
.sector-choices {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin:15px 0 35px
}
.sector-choices button {
  border:1px solid #53627b;
  background:transparent;
  color:var(--muted);
  padding:9px 13px;
  border-radius:25px;
  font-size:10px
}
.sector-choices button[aria-pressed=true] {
  color:var(--accent);
  border-color:var(--accent);
  background:var(--glow)
}
.process-choices {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin-top:15px
}
.process-choices button {
  min-height:60px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:14px;
  border:1px solid var(--line);
  border-radius:12px;
  background:var(--bg);
  color:var(--muted);
  font-size:11px;
  text-align:left
}
.process-choices button span {
  font-size:23px;
  transition:transform .25s
}
.process-choices button[aria-pressed=true] {
  border-color:var(--accent);
  color:var(--ink);
  background:var(--glow)
}
.process-choices button[aria-pressed=true] span {
  transform:rotate(45deg);
  color:var(--accent)
}
.hint {
  font-size:10px;
  margin:20px 0 0
}
.map-panel {
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:radial-gradient(at 50% 30%,var(--glow),transparent 70%),var(--bg);
  padding:27px;
  min-width:0
}
.panel-label {
  display:flex;
  justify-content:space-between;
  gap:15px;
  font-size:8px;
  letter-spacing:1.4px;
  color:var(--muted)
}
.panel-label span:last-child {
  color:var(--accent)
}
.map {
  position:relative;
  height:280px;
  margin:15px 0
}
.map svg {
  position:absolute;
  width:100%;
  height:100%;
  fill:none;
  stroke:var(--accent);
  stroke-width:1;
  opacity:.6
}
.map svg path {
  stroke-dasharray:5 8;
  animation:dash 25s linear infinite
}
.map-center {
  position:absolute;
  top:50%;
  left:50%;
  transform:translate(-50%,-50%);
  height:110px;
  width:110px;
  border:1px solid var(--accent);
  border-radius:var(--radius);
  background:var(--panel);
  display:flex;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:10px;
  box-shadow:0 0 50px var(--glow)
}
.map-center img {
  object-fit:contain
}
.map-center span {
  font-size:7px;
  letter-spacing:1.5px
}
.map-node {
  position:absolute;
  border:1px solid var(--accent);
  background:var(--panel);
  padding:12px 4px;
  width:31%;
  border-radius:20px;
  font-size:10px;
  text-align:center;
  transition:opacity .3s,transform .3s
}
.node0 {
  left:0;
  top:16%
}
.node1 {
  right:0;
  top:16%
}
.node2 {
  left:0;
  bottom:16%
}
.node3 {
  right:0;
  bottom:16%
}
.map-node.off {
  opacity:.25;
  transform:scale(.9)
}
.map-result {
  border-top:1px solid var(--line);
  padding-top:22px;
  min-height:118px
}
.map-result h3 {
  font-size:20px;
  margin-bottom:12px;
  letter-spacing:-.03em
}
.map-result p {
  font-size:12px
}
.carry {
  border:0;
  background:transparent;
  color:var(--accent);
  padding:0
}
.map-panel>small,form>small {
  display:block;
  font-size:9px;
  color:var(--muted);
  margin-top:15px
}
.sectors {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  margin-top:40px;
  border-block:1px solid var(--line)
}
.sectors article {
  padding:30px 30px 30px 0
}
.sectors article+article {
  padding-left:30px;
  border-left:1px solid var(--line)
}
.sectors article>span {
  font-size:8px;
  letter-spacing:1.3px;
  color:var(--muted)
}
.symbol {
  font-size:55px;
  color:var(--accent);
  margin:20px 0;
  transition:transform .4s
}
.sectors article:hover .symbol {
  transform:translateY(-5px) rotate(-12deg)
}
h3 {
  font-size:29px;
  line-height:1.2
}
.sectors p {
  font-size:12px;
  min-height:80px
}
.sectors a {
  font-size:11px
}
.sectors a:hover {
  color:var(--accent)
}
.method {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:75px
}
.method ol {
  list-style:none;
  margin:0;
  padding:0
}
.method li {
  display:flex;
  gap:27px;
  border-bottom:1px solid var(--line);
  padding:22px 0
}
.method li:first-child {
  padding-top:0
}
.method li>b {
  font-size:11px;
  color:var(--accent);
  font-weight:400
}
.method h3 {
  font-size:22px;
  margin-bottom:8px
}
.method li p {
  font-size:12px;
  margin:0
}
.contact {
  background:radial-gradient(at 0 100%,var(--glow),transparent 60%),var(--panel)
}
.contact-grid {
  display:grid;
  grid-template-columns:1.1fr 1fr;
  gap:100px
}
.contact h2 {
  font-size:clamp(45px,4.6vw,66px)
}
form {
  padding:32px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:var(--bg)
}
form h3 {
  font-size:25px
}
label {
  display:block;
  font-size:11px;
  margin:20px 0 8px
}
input,textarea {
  width:100%;
  padding:13px;
  color:var(--ink);
  background:var(--panel);
  border:1px solid #53627b;
  border-radius:8px;
  font-size:12px
}
textarea {
  resize:vertical;
  min-height:100px
}
input::placeholder,textarea::placeholder {
  color:#96a3b9
}
form .button {
  width:100%;
  margin-top:22px
}
#status {
  font-size:11px;
  color:var(--accent);
  margin-top:12px
}
footer {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding-block:35px
}
footer .logo {
  width:150px
}
footer p,footer>span {
  font-size:10px;
  margin:0
}
.skip {
  position:absolute;
  top:-100px;
  background:var(--blue);
  padding:15px;
  z-index:20
}
.skip:focus {
  top:10px
}
.progress {
  position:fixed;
  top:0;
  left:0;
  right:0;
  height:2px;
  background:var(--accent);
  transform:scaleX(0);
  transform-origin:left;
  z-index:30;
  pointer-events:none
}
@keyframes float {
  50% {
    transform:translateY(-13px) rotate(3deg)
  }

}
@keyframes dash {
  to {
    stroke-dashoffset:-260
  }

}
html[data-theme=plateada] {
  --bg:#0a1423;
  --panel:#101c30;
  --ink:#f4f5f7;
  --muted:#adb4bf;
  --accent:#d6dce5;
  --blue:#adb4bf;
  --line:#353e4d;
  --radius:3px;
  --glow:#adb4bf12
}
html[data-theme=plateada] h1,html[data-theme=plateada] h2 {
  font-weight:600;
  letter-spacing:-.045em
}
html[data-theme=plateada] .brand-stage {
  border-radius:3px;
  background:linear-gradient(135deg,#101c30,#202b3b 55%,#101c30)
}
html[data-theme=plateada] .brand-stage:before {
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(120deg,transparent 25%,#adb4bf0a 26%,transparent 65%);
  pointer-events:none
}
html[data-theme=plateada] .ring {
  border-radius:12px;
  transform:rotate(-35deg);
  width:280px;
  height:280px
}
html[data-theme=plateada] .r2 {
  width:345px;
  height:345px;
  transform:rotate(-35deg)
}
html[data-theme=plateada] .button {
  background:linear-gradient(110deg,#e4e7ed,#adb4bf);
  color:#101c30;
  border-radius:3px
}
html[data-theme=plateada] .button:hover {
  background:#f4f5f7
}
html[data-theme=plateada] .outline,html[data-theme=plateada] .process-choices button,html[data-theme=plateada] .map-node,html[data-theme=plateada] input,html[data-theme=plateada] textarea {
  border-radius:3px
}
html[data-theme=plateada] .hero-mark {
  animation-name:float-silver
}
@keyframes float-silver {
  50% {
    transform:translateY(-10px)
  }

}
@media(max-width:1050px) {
  .wrap {
    width:calc(100% - 56px)
  }
  header {
    padding:0 28px
  }
  nav {
    gap:18px
  }
  .hero {
    gap:20px
  }
  h1 {
    font-size:60px
  }
  .brand-stage {
    min-height:480px
  }
  .brand-sculpture {
    height:280px
  }
  .hero-mark {
    width:210px;
    height:210px
  }
  .stage-top {
    padding:0 18px
  }
  .stage-nodes {
    gap:5px
  }
  .stage-nodes button {
    font-size:8px;
    padding:8px
  }
  .lab {
    gap:30px;
    grid-template-columns:.9fr 1.1fr
  }
  .vision,.method,.contact-grid {
    gap:40px
  }
  .process-choices {
    grid-template-columns:1fr
  }
  .sectors h3 {
    font-size:24px
  }
  .actions {
    gap:15px;
    flex-wrap:wrap
  }

}
@media(max-width:720px) {
  .wrap {
    width:calc(100% - 40px)
  }
  header {
    padding:0 20px;
    height:86px;
    position:relative
  }
  .logo {
    width:155px;
    height:50px
  }
  .menu {
    display:block;
    background:transparent;
    color:var(--ink);
    border:1px solid var(--line);
    border-radius:5px;
    padding:8px 14px;
    font-size:11px
  }
  nav {
    display:none;
    position:absolute;
    top:85px;
    left:0;
    right:0;
    background:var(--panel);
    border-bottom:1px solid var(--line);
    padding:25px;
    z-index:10
  }
  nav.open {
    display:flex;
    flex-direction:column;
    align-items:stretch
  }
  .hero {
    display:block;
    padding-top:48px
  }
  h1 {
    font-size:clamp(51px,12vw,76px)
  }
  .lead {
    font-size:14px
  }
  .desktop {
    display:none
  }
  .brand-stage {
    margin-top:45px;
    min-height:460px;
    border-radius:100px 100px 24px 24px
  }
  .brand-sculpture {
    height:280px
  }
  .stage-top {
    font-size:6px;
    letter-spacing:1px;
    padding:0 25px
  }
  .hero-bottom {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:18px;
    font-size:7px;
    margin-top:30px
  }
  .section {
    padding-block:65px
  }
  .vision,.lab,.method,.contact-grid {
    grid-template-columns:1fr;
    gap:30px
  }
  h2 {
    font-size:35px
  }
  .large {
    font-size:21px
  }
  .section-head {
    display:block
  }
  .section-head>p {
    margin-top:20px
  }
  .process-choices {
    grid-template-columns:1fr 1fr
  }
  .lab {
    margin-top:30px
  }
  .map-panel {
    padding:22px 15px
  }
  .map {
    height:245px
  }
  .map-center {
    width:90px;
    height:100px
  }
  .map-node {
    font-size:9px
  }
  .sectors {
    grid-template-columns:1fr
  }
  .sectors article,.sectors article+article {
    border-left:0;
    border-bottom:1px solid var(--line);
    padding:30px 0
  }
  .sectors article:last-child {
    border-bottom:0
  }
  .symbol {
    float:right
  }
  .sectors h3 {
    font-size:28px;
    margin-top:25px
  }
  .sectors p {
    min-height:0;
    max-width:380px
  }
  .contact h2 {
    font-size:48px
  }
  form {
    padding:25px
  }
  footer {
    flex-wrap:wrap
  }
  footer p {
    display:none
  }
  footer>span {
    font-size:8px
  }
  .r2 {
    width:340px;
    height:340px
  }

}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  *,*:before,*:after {
    animation:none!important;
    transition:none!important
  }

}
/* Revisión de identidad: una sola K junto a los dos renglones. */ .wordmark {
  display:inline-flex;
  align-items:center;
  gap:13px;
  color:var(--ink);
  line-height:1
}
.wordmark img {
  width:62px;
  height:62px;
  object-fit:contain
}
.wordmark>span {
  display:flex;
  flex-direction:column;
  gap:11px
}
.wordmark b {
  font-size:24px;
  letter-spacing:3px;
  font-weight:750
}
.wordmark small {
  font-size:10px;
  letter-spacing:5.4px
}
.hero-mark {
  image-rendering:auto
}
.hero .brand-stage {
  border-radius:0;
  border:0;
  min-height:520px
}
.hero .stage-top {
  padding:0
}
.hero .brand-sculpture {
  height:350px
}
.hero .ring {
  border:none;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  width:420px;
  height:290px;
  opacity:.7
}
.hero .r2 {
  width:330px;
  height:330px;
  border:1px solid var(--line)
}
.hero .hero-mark {
  width:230px;
  height:230px;
  filter:none
}
.hero .stage-nodes button {
  background:transparent;
  border:0;
  border-bottom:1px solid var(--line);
  border-radius:0;
  padding:12px 10px
}
.hero .stage-nodes button[aria-pressed=true] {
  border-color:var(--accent)
}
html[data-theme=fluida] {
  --bg:#fafbf9;
  --panel:#f0f5f8;
  --ink:#0f172a;
  --muted:#536178;
  --accent:#126bba;
  --blue:#2563eb;
  --line:#d6e0e7;
  --glow:#22d3ee12
}
html[data-theme=fluida] .hero .brand-stage {
  background:radial-gradient(ellipse at 60% 40%,#22d3ee18,transparent 65%)
}
html[data-theme=fluida] .hero h1 {
  font-weight:550;
  letter-spacing:-.065em
}
html[data-theme=fluida] .hero h1 em {
  background:linear-gradient(105deg,#2563eb,#078baf);
  background-clip:text;
  color:transparent
}
html[data-theme=fluida] .hero .brand-sculpture:before {
  content:'';
  position:absolute;
  width:280px;
  height:280px;
  border-radius:50%;
  background:#fff;
  box-shadow:0 30px 90px #2563eb0d
}
html[data-theme=fluida] .hero .r1 {
  transform:rotate(-25deg);
  border-color:#2563eb35
}
html[data-theme=fluida] .hero .r2 {
  transform:rotate(30deg);
  border-radius:50%;
  border-color:#10b4d935
}
html[data-theme=fluida] .outline {
  border-color:#b4c3d2
}
html[data-theme=fluida] .lab-section {
  background:#edf4f7
}
html[data-theme=fluida] .map-panel {
  background:#fff;
  box-shadow:0 20px 60px #14375407
}
html[data-theme=fluida] .map-node {
  background:#f5faff
}
html[data-theme=fluida] .map-center {
  background:#fff
}
html[data-theme=fluida] form {
  background:#fff
}
html[data-theme=fluida] input,html[data-theme=fluida] textarea {
  background:#fafcfe;
  border-color:#bac9d5
}
html[data-theme=fluida] .contact {
  background:#edf3f6
}
html[data-theme=fluida] .sectors article:hover {
  background:#2563eb03
}
html[data-theme=fluida] .symbol {
  color:#1686ba
}
html[data-theme=plateada] .hero {
  grid-template-columns:1.2fr .8fr;
  gap:60px;
  padding-top:110px
}
html[data-theme=plateada] .hero h1 {
  font-size:clamp(55px,6.5vw,96px);
  font-weight:450;
  line-height:1.03
}
html[data-theme=plateada] .hero .brand-stage {
  background:transparent;
  min-height:440px;
  border-left:1px solid var(--line);
  padding-left:35px
}
html[data-theme=plateada] .brand-stage:before {
  display:none
}
html[data-theme=plateada] .hero .brand-sculpture {
  height:290px
}
html[data-theme=plateada] .hero .hero-mark {
  width:210px;
  height:210px
}
html[data-theme=plateada] .hero .ring {
  border-radius:0;
  width:280px;
  height:280px;
  transform:rotate(0deg);
  border-color:#adb4bf16
}
html[data-theme=plateada] .hero .r2 {
  transform:rotate(45deg);
  width:215px;
  height:215px
}
html[data-theme=plateada] .hero .stage-top {
  font-size:6px;
  letter-spacing:1px
}
html[data-theme=plateada] .lab-section {
  background:#eff0f1;
  color:#101c30;
  --ink:#101c30;
  --muted:#505b6b;
  --accent:#33475e;
  --panel:#f5f6f7;
  --bg:#fff;
  --line:#cbd0d6;
  --glow:#adb4bf12
}
html[data-theme=plateada] .map-panel {
  box-shadow:0 20px 60px #00000007
}
html[data-theme=plateada] .wordmark b {
  font-size:23px;
  letter-spacing:3px
}
html[data-theme=plateada] .section-head h2 em {
  color:#536579
}
@media(max-width:1050px) {
  html[data-theme=plateada] .hero {
    gap:20px
  }
  html[data-theme=plateada] .hero .brand-stage {
    padding-left:20px
  }
  .hero .brand-sculpture {
    height:300px
  }
  .hero .brand-stage {
    min-height:470px
  }

}
@media(max-width:720px) {
  .wordmark img {
    width:48px;
    height:48px
  }
  .wordmark {
    gap:9px
  }
  .wordmark b,html[data-theme=plateada] .wordmark b {
    font-size:18px;
    letter-spacing:2px
  }
  .wordmark small {
    font-size:8px;
    letter-spacing:3.7px
  }
  .wordmark>span {
    gap:9px
  }
  .hero .brand-stage {
    min-height:410px;
    margin-top:35px;
    padding:20px 5px
  }
  .hero .brand-sculpture {
    height:280px
  }
  .hero .hero-mark {
    width:190px;
    height:190px
  }
  .hero .ring {
    width:310px
  }
  .hero .r2 {
    width:270px;
    height:270px
  }
  html[data-theme=plateada] .hero {
    padding-top:55px
  }
  html[data-theme=plateada] .hero h1 {
    font-size:clamp(52px,12vw,76px)
  }
  html[data-theme=plateada] .hero .brand-stage {
    border-left:0;
    border-top:1px solid var(--line);
    padding:25px 5px;
    min-height:390px
  }
  footer .wordmark img {
    width:40px;
    height:40px
  }
  footer .wordmark b {
    font-size:16px
  }
  footer .wordmark small {
    font-size:7px
  }

}
/* Plateada: papel frío, plata suave y profundidad marino. */ html[data-theme=plateada] {
  --bg:#f6f7f9;
  --panel:#edf0f4;
  --ink:#101c30;
  --muted:#5e6979;
  --accent:#536a86;
  --blue:#101c30;
  --line:#d4dbe4;
  --glow:#aebdd21a
}
html[data-theme=plateada] body {
  background:radial-gradient(ellipse at 85% 5%,#d8e0ed65,transparent 40%),var(--bg)
}
html[data-theme=plateada] .hero .brand-stage {
  background:radial-gradient(ellipse at 50% 40%,#d8e0ebaa,transparent 68%);
  border-left:0;
  overflow:visible
}
html[data-theme=plateada] .hero .hero-mark {
  width:240px;
  height:240px;
  animation:none;
  filter:drop-shadow(0 22px 25px #24354f14)
}
html[data-theme=plateada] .hero h1 em {
  color:#61728c
}
html[data-theme=plateada] .hero .brand-sculpture:before {
  content:'';
  position:absolute;
  width:300px;
  height:300px;
  border-radius:50%;
  background:radial-gradient(ellipse,#fff9,transparent 70%);
  pointer-events:none
}
html[data-theme=plateada] .outline {
  border-color:#b8c4d3
}
html[data-theme=plateada] .button {
  background:linear-gradient(110deg,#152940,#30465f);
  color:#f4f5f7
}
html[data-theme=plateada] .button:hover {
  background:#30465f
}
html[data-theme=plateada] .contact {
  background:linear-gradient(130deg,#e5eaf2,#f7f8fa)
}
html[data-theme=plateada] form {
  background:#ffffffa0
}
html[data-theme=plateada] input,html[data-theme=plateada] textarea {
  background:#fafbfd;
  border-color:#bbc6d4
}
html[data-theme=plateada] .map-panel {
  background:linear-gradient(135deg,#fff,#f2f4f7)
}
html[data-theme=plateada] .stage-nodes button {
  color:#596b82
}
html[data-theme=plateada] .stage-nodes button[aria-pressed=true] {
  color:#101c30;
  border-color:#101c30
}
@media(max-width:720px) {
  html[data-theme=plateada] .hero .hero-mark {
    width:210px;
    height:210px
  }

}
/* Símbolo Fluido: ensamblaje único y parallax mínimo. */ html[data-theme=fluida] .assembly-stage .assembled-logo {
  width:260px;
  height:260px;
  max-width:90%;
  animation:none;
  transform:none;
  overflow:visible;
  filter:drop-shadow(0 16px 22px #1c5c9a0b)
}
html[data-theme=fluida] .assembly-stage .piece {
  transform-box:fill-box;
  transform-origin:center;
  transition:transform 650ms cubic-bezier(.2,.7,.2,1)
}
html[data-theme=fluida] .assembly-stage:before {
  width:320px;
  height:320px;
  background:radial-gradient(ellipse,#fff 30%,#ffffff00 70%);
  box-shadow:none
}
.assembly-caption {
  text-align:center;
  font-size:14px;
  letter-spacing:-.02em;
  line-height:2;
  color:#536178;
  margin:2px 0 0
}
.assembly-caption span {
  font-size:8px;
  letter-spacing:2.4px;
  color:#127ca7
}
.hero .brand-stage:has(.assembly-stage) {
  display:flex;
  flex-direction:column;
  justify-content:center
}
.hero .brand-stage:has(.assembly-stage) .stage-top {
  margin-bottom:15px
}
.hero .brand-stage:has(.assembly-stage) .brand-sculpture {
  height:340px
}
@media(max-width:720px) {
  html[data-theme=fluida] .assembly-stage .assembled-logo {
    width:230px;
    height:230px
  }
  .hero .brand-stage:has(.assembly-stage) .brand-sculpture {
    height:280px
  }

}
.service-intro {
  font-size:18px;
  line-height:1.8;
  max-width:800px;
  margin:10px 0 45px
}
.service-directions {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  border-block:1px solid var(--line)
}
.service-directions article {
  padding:30px 30px 30px 0
}
.service-directions article+article {
  border-left:1px solid var(--line);
  padding-left:30px
}
.service-directions article>span {
  font-size:8px;
  letter-spacing:1.8px;
  color:var(--muted)
}
.service-directions h3 {
  margin-top:24px;
  font-size:29px
}
.service-directions p {
  font-size:13px;
  margin-bottom:0
}
.open-brief {
  display:grid;
  grid-template-columns:1fr 1.2fr;
  gap:90px;
  padding-top:55px
}
.open-brief h3 {
  font-size:34px
}
.open-brief p {
  font-size:13px
}
.open-brief label {
  margin-top:0
}
.open-brief textarea {
  background:var(--bg);
  color:var(--ink);
  border-color:var(--line)
}
.open-brief .carry {
  color:white;
  background:var(--blue);
  margin-top:15px;
  padding:15px 20px
}
.open-brief small {
  display:block;
  font-size:9px;
  color:var(--muted);
  margin-top:12px
}
html[data-theme=plateada] .open-brief .carry {
  background:#152940;
  color:#fff
}
@media(max-width:720px) {
  .service-intro {
    font-size:15px
  }
  .service-directions,.open-brief {
    grid-template-columns:1fr
  }
  .service-directions article,.service-directions article+article {
    padding:26px 0;
    border-left:0;
    border-bottom:1px solid var(--line)
  }
  .service-directions article:last-child {
    border-bottom:0
  }
  .open-brief {
    gap:20px;
    padding-top:35px
  }
  .open-brief h3 {
    font-size:30px
  }

}
/* Misma tipografía y espaciado de servicios; solo cambia la disposición. */ .service-directions {
  grid-template-columns:1fr;
  border-bottom:0
}
.service-directions article,.service-directions article+article {
  display:grid;
  grid-template-columns:1fr 1fr;
  column-gap:100px;
  padding:30px 0;
  border-left:0;
  border-bottom:1px solid var(--line)
}
.service-directions article>span {
  grid-column:1;
  grid-row:1
}
.service-directions article h3 {
  grid-column:1;
  grid-row:2;
  margin-bottom:0
}
.service-directions article p {
  grid-column:2;
  grid-row:1/3;
  align-self:center
}
.service-directions article:nth-child(even)>span,.service-directions article:nth-child(even) h3 {
  grid-column:2
}
.service-directions article:nth-child(even) p {
  grid-column:1
}
@media(max-width:1050px) {
  .service-directions article,.service-directions article+article {
    column-gap:40px
  }

}
@media(max-width:720px) {
  .service-directions article,.service-directions article+article {
    display:block;
    padding:26px 0
  }
  .service-directions article h3 {
    margin-bottom:28px
  }

}
/* Página concisa: misma identidad y títulos de dos tonos. */ .service-directions article h3 {
  font-size:clamp(34px,3.65vw,52px);
  font-weight:500;
  letter-spacing:-.055em;
  line-height:1.07
}
.service-directions article h3 em {
  color:var(--accent)
}
html[data-theme=plateada] .service-directions article h3 {
  font-weight:600;
  letter-spacing:-.045em
}
.service-intro {
  font-size:15px;
  max-width:720px;
  margin-bottom:25px
}
.section {
  padding-top:65px;
  padding-bottom:65px
}
.service-directions article,.service-directions article+article {
  padding-top:26px;
  padding-bottom:26px
}
.service-directions article h3 {
  margin-top:18px
}
.method li {
  padding-top:14px;
  padding-bottom:14px
}
.method h3 {
  font-size:19px
}
.method li p {
  font-size:12px
}
.contact h2 {
  font-size:clamp(38px,4vw,56px)
}
@media(max-width:720px) {
  .section {
    padding-top:42px;
    padding-bottom:42px
  }
  .service-directions article h3 {
    font-size:35px;
    margin-bottom:18px
  }
  .service-directions article,.service-directions article+article {
    padding-top:22px;
    padding-bottom:22px
  }

}
/* Lectura cómoda y menos controles: jerarquía clara, identidad conservada. */ body {
  font-size:17px;
  line-height:1.7
}
nav {
  font-size:15px;
  gap:30px
}
.eyebrow {
  font-size:11px;
  letter-spacing:1.8px
}
.lead {
  font-size:19px;
  line-height:1.7;
  max-width:590px
}
.button {
  font-size:15px;
  padding:15px 23px
}
.text-link {
  font-size:16px
}
.hero {
  padding-bottom:50px
}
.hero .brand-stage {
  min-height:360px;
  padding-top:0;
  padding-bottom:0
}
.hero .brand-sculpture {
  height:340px
}
html[data-theme=plateada] .hero {
  padding-top:70px;
  align-items:center
}
html[data-theme=plateada] .hero .brand-stage {
  min-height:330px
}
html[data-theme=plateada] .hero .brand-sculpture {
  height:330px
}
.service-intro {
  font-size:18px;
  line-height:1.75;
  max-width:800px;
  margin-bottom:32px
}
.service-directions article>span {
  font-size:11px;
  letter-spacing:1.4px
}
.service-directions article p {
  font-size:17px;
  line-height:1.75
}
.service-directions article h3 {
  font-size:clamp(32px,3vw,43px)
}
.service-directions article,.service-directions article+article {
  padding-block:28px
}
.method {
  display:block
}
.method>div {
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:25px;
  flex-wrap:wrap
}
.method>div .eyebrow {
  flex-basis:100%;
  margin-bottom:0
}
.method>div>p:last-child {
  font-size:17px;
  max-width:300px
}
.method ol {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:28px;
  border-top:1px solid var(--line);
  margin-top:10px;
  padding-top:25px
}
.method li,.method li:first-child {
  display:block;
  padding:0;
  border-bottom:0
}
.method li>b {
  display:block;
  font-size:13px;
  margin-bottom:12px
}
.method h3 {
  font-size:23px
}
.method li p {
  font-size:16px;
  line-height:1.65
}
.contact-grid {
  gap:70px
}
.contact-grid>div>p:not(.eyebrow) {
  font-size:18px
}
label {
  font-size:15px;
  margin-top:17px
}
form label:first-child {
  margin-top:0
}
input,textarea {
  font-size:16px;
  padding:13px
}
form>small {
  font-size:13px;
  line-height:1.6
}
#status {
  font-size:14px
}
footer p,footer>span {
  font-size:13px
}
footer .wordmark small {
  font-size:9px
}
.assembly-caption {
  font-size:16px
}
.assembly-caption span {
  font-size:11px
}
@media(max-width:900px) {
  .method ol {
    grid-template-columns:1fr 1fr;
    gap:30px
  }
  .lead {
    font-size:18px
  }
  .contact-grid {
    gap:35px
  }

}
@media(max-width:720px) {
  body {
    font-size:16px
  }
  nav {
    font-size:16px
  }
  .eyebrow {
    font-size:10px;
    line-height:1.7
  }
  .hero {
    padding-bottom:30px
  }
  .hero .brand-stage {
    min-height:290px;
    margin-top:25px
  }
  .hero .brand-sculpture,html[data-theme=plateada] .hero .brand-sculpture {
    height:280px
  }
  html[data-theme=plateada] .hero .brand-stage {
    min-height:280px
  }
  .service-intro,.service-directions article p {
    font-size:16px
  }
  .service-directions article h3 {
    font-size:35px
  }
  .method>div {
    display:block
  }
  .method>div .eyebrow {
    margin-bottom:25px
  }
  .method>div>p:last-child {
    max-width:none
  }
  .method ol {
    gap:24px 20px
  }
  .method h3 {
    font-size:21px
  }
  .method li p {
    font-size:15px
  }
  form {
    padding:22px
  }
  .contact-grid>div>p:not(.eyebrow) {
    font-size:16px
  }
  footer>span {
    font-size:12px
  }
  footer .wordmark small {
    font-size:8px
  }

}
/* Servicios como conversación: lista alineada, una respuesta visible. */ .service-directions {
  display:block;
  border:0;
  max-width:880px;
  margin:30px auto 0
}
.service-disclosure {
  border:0;
  margin:0 0 12px
}
.service-disclosure summary {
  list-style:none;
  cursor:pointer;
  display:flex;
  align-items:center;
  gap:22px;
  padding:22px 25px;
  border:1px solid var(--line);
  border-radius:14px;
  background:var(--bg);
  transition:border-color .2s,background .2s
}
.service-disclosure summary::-webkit-details-marker {
  display:none
}
.service-label {
  font-size:12px;
  letter-spacing:1px;
  color:var(--muted);
  min-width:145px
}
.service-title {
  font-size:23px;
  letter-spacing:-.035em;
  font-weight:500;
  line-height:1.3;
  color:var(--ink);
  flex:1
}
.service-title br {
  display:none
}
.service-title br:after {
  content:' '
}
.service-title em {
  font-style:normal;
  color:inherit
}
.service-title em:before {
  content:' '
}
.disclosure-icon {
  font-size:27px;
  line-height:1;
  font-weight:300;
  color:var(--accent);
  transition:transform .25s
}
.service-disclosure[open] summary {
  border-color:var(--accent);
  background:var(--panel)
}
.service-disclosure[open] .disclosure-icon {
  transform:rotate(45deg)
}
.service-disclosure summary:hover {
  border-color:var(--accent)
}
.service-disclosure summary:focus-visible {
  outline:2px solid var(--accent);
  outline-offset:4px
}
.service-panel {
  position:relative;
  margin:15px 20px 25px 48px;
  padding:22px 26px;
  border-radius:18px;
  background:#e2ece9;
  max-width:650px;
  color:#172c31;
  box-shadow:0 3px 10px #10203005;
  animation:chat-reply .4s cubic-bezier(.22,1,.36,1);
  transform-origin:top left
}
.service-panel:before {
  content:'';
  position:absolute;
  left:-7px;
  top:18px;
  width:14px;
  height:14px;
  background:inherit;
  transform:rotate(45deg);
  border-radius:0 0 0 3px
}
.service-panel p {
  font-size:17px;
  line-height:1.7;
  color:inherit;
  margin:0
}
html[data-theme=plateada] .service-panel {
  background:#e1e8ee;
  color:#172c42;
  border:1px solid #a5b1bf;
  box-shadow:0 5px 16px #00000018
}
html[data-theme=plateada] .service-panel:before {
  left:-8px;
  border-left:1px solid #a5b1bf;
  border-bottom:1px solid #a5b1bf
}
@keyframes chat-reply {
  from {
    opacity:0;
    transform:translateY(-5px)
  }
  to {
    opacity:1;
    transform:translateY(0)
  }

}
@media(max-width:720px) {
  .service-directions {
    margin-top:24px
  }
  .service-disclosure summary {
    padding:19px 17px;
    gap:10px;
    flex-wrap:wrap
  }
  .service-label {
    font-size:11px;
    min-width:0;
    flex-basis:calc(100% - 38px);
    order:0
  }
  .service-title {
    font-size:22px;
    order:2;
    flex-basis:100%;
    padding-right:25px
  }
  .disclosure-icon {
    order:1;
    margin-left:auto
  }
  .service-panel {
    margin:12px 0 22px 18px;
    padding:19px 21px
  }
  .service-panel p {
    font-size:16px
  }

}
/* Approved capitular lockup: single K, top-aligned name. */ .wordmark {
  align-items:flex-start
}
.wordmark img {
  height:auto;
  object-fit:contain
}
.wordmark>span {
  padding-top:0
}
.wordmark b {
  line-height:.74;
  display:block
}
.hero-mark {
  object-fit:contain
}
/* Microinteracciones suaves, sin movimiento continuo adicional. */ nav a {
  position:relative
}
nav a:after {
  content:'';
  position:absolute;
  left:0;
  right:0;
  bottom:-6px;
  height:1px;
  background:currentColor;
  transform:scaleX(0);
  transform-origin:left;
  transition:transform 220ms ease
}
nav a:focus-visible:after {
  transform:scaleX(1)
}
.button {
  transition:background-color 220ms ease,box-shadow 220ms ease,transform 220ms ease
}
.button span {
  display:inline-block;
  transition:transform 220ms ease
}
.button:active {
  transform:translateY(0)
}
.service-disclosure summary {
  transition:border-color 220ms ease,background-color 220ms ease,transform 220ms ease
}
input,textarea {
  transition:border-color 200ms ease,background-color 200ms ease,box-shadow 200ms ease
}
input:focus,textarea:focus {
  border-color:var(--accent);
  box-shadow:0 0 0 3px #d6dce510
}
@media(hover:hover) and (prefers-reduced-motion:no-preference) {
   nav a:hover:after {
    transform:scaleX(1)
  }
   .button:hover {
    transform:translateY(-2px);
    box-shadow:0 5px 16px #00000020
  }
   .button:hover span {
    transform:translate(2px,-2px)
  }
   .service-disclosure summary:hover {
    transform:none
  }

}
@media(prefers-reduced-motion:reduce) {
   html {
    scroll-behavior:auto
  }
   *,*:before,*:after {
    animation:none!important;
    transition:none!important
  }

}
/* El espacio de la respuesta contiene sus márgenes durante toda la animación. */ .service-reply {
  display:flow-root;
  overflow-anchor:none
}
.service-disclosure .service-panel {
  animation:none
}
.hero-copy,.service-title,.contact-grid>* {
  min-width:0
}
html[data-theme=plateada] .hero h1 {
  max-width:15ch;
  font-size:clamp(2.5rem,5.2vw,4.75rem);
  line-height:1.08;
  text-wrap:balance;
  overflow-wrap:break-word
}
.hero-copy .lead,.service-intro {
  max-width:60ch;
  text-wrap:pretty
}
.service-title {
  text-wrap:balance
}
@media(max-width:720px) {
  .hero-copy .actions {
    align-items:stretch
  }
  .hero-copy .actions .button {
    width:100%
  }

}
.contact-trap {
  position:absolute;
  width:1px;
  height:1px;
  overflow:hidden;
  clip-path:inset(50%)
}
.meeting-note {
  font-size:14px;
  margin-top:12px
}
form[aria-busy=true] .button {
  cursor:wait
}
/* Confirmación de envío: colores de estado solicitados, aislados de la marca. */ .contact-confirmation {
  width:100%;
  color:#24563a;
  outline:none
}
.contact-confirmation[hidden],.contact-fields[hidden] {
  display:none
}
html[data-theme=plateada] #quote-form.is-sent {
  display:grid;
  align-content:center;
  background:#e8f2eb;
  border-color:#719d7d
}
#quote-form.is-sent:focus-within {
  outline:none
}
.contact-confirmation:focus-visible {
  outline:2px solid #24563a;
  outline-offset:8px
}
.confirmation-card {
  width:100%;
  padding:24px 0;
  border:0;
  text-align:center;
  animation:confirmation-enter 420ms cubic-bezier(.22,1,.36,1) both
}
.confirmation-check {
  width:76px;
  height:76px;
  display:grid;
  place-items:center;
  margin:0 auto 24px;
  border:1px solid #719d7d;
  border-radius:50%;
  background:#e0eee4
}
.confirmation-check svg {
  width:44px;
  height:44px;
  stroke:#24563a;
  stroke-width:3;
  stroke-linecap:round;
  stroke-linejoin:round
}
.confirmation-check path {
  stroke-dasharray:38;
  stroke-dashoffset:0;
  animation:confirmation-check 550ms 100ms ease both
}
.confirmation-card .confirmation-eyebrow {
  margin:0 0 12px;
  font-size:11px;
  letter-spacing:2px;
  color:#356b47
}
.confirmation-card h2 {
  margin:0 0 18px;
  font-size:clamp(30px,5vw,42px);
  line-height:1.12;
  letter-spacing:-.04em;
  color:#24563a
}
.confirmation-card p {
  color:#356b47;
  font-size:16px;
  line-height:1.65;
  margin:0 0 20px;
  text-wrap:pretty
}
.confirmation-card .confirmation-note {
  font-size:14px;
  margin-bottom:28px
}
.confirmation-button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:24px;
  min-height:48px;
  padding:12px 22px;
  border:1px solid #527f60;
  border-radius:8px;
  background:#e0eee4;
  color:#24563a;
  font-weight:500;
  transition:background-color 180ms ease
}
.confirmation-button:hover {
  background:#d4e7da
}
.confirmation-button:focus-visible {
  outline:2px solid #24563a;
  outline-offset:5px
}
@keyframes confirmation-enter {
  from {
    opacity:0;
    transform:translateY(12px) scale(.98)
  }
  to {
    opacity:1;
    transform:translateY(0) scale(1)
  }

}
@keyframes confirmation-check {
  from {
    stroke-dashoffset:38
  }
  to {
    stroke-dashoffset:0
  }

}
@media(max-height:600px) {
  .confirmation-card {
    padding:12px 0
  }
  .confirmation-check {
    width:54px;
    height:54px;
    margin-bottom:12px
  }
  .confirmation-card h2 {
    margin-bottom:12px
  }
  .confirmation-card p {
    margin-bottom:12px
  }
  .confirmation-card .confirmation-note {
    margin-bottom:16px
  }

}
@media(prefers-reduced-motion:reduce) {
  .confirmation-card,.confirmation-check path {
    animation:none
  }

}
.contact-fields>small {
  display:block;
  font-size:13px;
  line-height:1.6;
  color:var(--muted);
  margin-top:15px
}
/* picture no agrega una caja: conserva exactamente la composición aprobada. */ .wordmark>picture,.brand-sculpture>picture {
  display:contents
}
.visually-hidden {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip-path:inset(50%);
  white-space:nowrap;
  border:0
}
.wordmark>picture>source,.brand-sculpture>picture>source {
  display:none
}
/* Revisión estética local: misma identidad, composición y controles consistentes. */ html[data-theme=plateada] .button, html[data-theme=plateada] #quote-form, html[data-theme=plateada] input, html[data-theme=plateada] textarea, .service-disclosure summary,.menu {
  border-radius:8px
}
.services-layout {
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
  gap:clamp(40px,6vw,88px);
  align-items:start
}
.services-copy {
  min-width:0
}
.services-copy h2 {
  text-wrap:balance
}
.services-copy .service-intro {
  margin-bottom:0;
  max-width:42ch
}
.services-layout .service-directions {
  width:100%;
  max-width:none;
  margin:0
}
.services-layout summary {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  column-gap:20px;
  row-gap:8px;
  padding:24px
}
.services-layout .service-label {
  grid-column:1;
  grid-row:1;
  min-width:0
}
.services-layout .service-title {
  grid-column:1;
  grid-row:2;
  padding-right:0
}
.services-layout .disclosure-icon {
  grid-column:2;
  grid-row:1/3;
  align-self:center;
  margin:0
}
.services-layout .service-panel {
  margin-left:18px;
  margin-right:0;
  max-width:none
}
.form-field-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:20px 18px
}
.form-field {
  min-width:0
}
.form-field label {
  margin:0 0 8px
}
#quote-form {
  align-self:start
}
.method ol {
  border-top:0;
  padding-top:16px;
  gap:32px
}
.method li {
  position:relative;
  min-width:0
}
.method li>b {
  display:grid;
  place-items:center;
  width:36px;
  height:36px;
  margin-bottom:18px;
  border:1px solid var(--line);
  border-radius:50%;
  font-size:13px
}
.method li:not(:last-child)::after {
  content:'';
  position:absolute;
  top:18px;
  left:48px;
  width:calc(100% - 16px);
  height:1px;
  background:var(--line);
  pointer-events:none
}
.hero-copy .meeting-note {
  display:inline-flex;
  align-items:center;
  gap:9px;
  padding:6px 12px;
  border:1px solid var(--line);
  border-radius:999px;
  background:var(--panel);
  color:var(--accent);
  font-size:12px;
  line-height:1.5;
  margin-top:4px
}
.hero-copy .meeting-note::before {
  content:'';
  width:5px;
  height:5px;
  flex:none;
  border-radius:50%;
  background:currentColor
}
@media(max-width:1000px) {
   .services-layout {
    grid-template-columns:1fr;
    gap:30px
  }
   .services-copy .service-intro {
    max-width:60ch
  }

}
@media(max-width:900px) {
   .method li:nth-child(2)::after {
    display:none
  }

}
@media(max-width:720px) {
   html[data-theme=plateada] .hero .brand-stage {
    min-height:220px;
    margin-top:16px;
    padding:12px 5px
  }
   html[data-theme=plateada] .hero .brand-sculpture {
    height:220px
  }
   .services-layout summary {
    padding:20px;
    row-gap:8px
  }
   .form-field-grid {
    grid-template-columns:1fr;
    gap:17px
  }

}
@media(max-width:600px) {
   .method ol {
    grid-template-columns:1fr;
    gap:28px
  }
   .method li,.method li:first-child {
    display:grid;
    grid-template-columns:36px minmax(0,1fr);
    column-gap:18px
  }
   .method li>b {
    margin:0
  }
   .method li:not(:last-child)::after {
    display:block;
    top:48px;
    left:18px;
    width:1px;
    height:calc(100% - 20px)
  }
   .method h3 {
    margin-top:4px
  }

}
@media(min-width:721px) and (max-width:1000px) {
  .form-field-grid {
    grid-template-columns:1fr;
    gap:17px
  }

}
/* Figma: tipografía expresiva, profundidad ligera y navegación orientada. */ html {
  scroll-padding-top:130px
}
header {
  position:sticky;
  top:0;
  z-index:20;
  background:var(--bg);
  box-shadow:0 8px 24px var(--glow)
}
nav a[aria-current=location]::after {
  transform:scaleX(1)
}
html[data-theme=plateada] .hero h1 {
  font-size:clamp(44px,6vw,84px);
  font-weight:520;
  line-height:1.04;
  letter-spacing:-.055em;
  max-width:16ch
}
.hero-copy .lead {
  max-width:51ch
}
.hero-copy .actions {
  gap:24px
}
.brand-stage {
  isolation:isolate
}
html[data-theme=plateada] .hero .brand-stage::after {
  content:'';
  position:absolute;
  inset:22px 12px;
  border:1px solid var(--line);
  border-radius:28px;
  background:var(--glow);
  box-shadow:inset 0 1px 0 var(--bg),0 22px 48px var(--glow);
  transform:rotate(-6deg);
  z-index:-1;
  pointer-events:none;
  transition:transform 500ms cubic-bezier(.22,1,.36,1)
}
.services-layout .service-disclosure[open] summary {
  box-shadow:0 8px 24px var(--glow)
}
.services-layout summary {
  transition:border-color 220ms ease,background-color 220ms ease,box-shadow 220ms ease
}
.method li>b {
  box-shadow:inset 0 1px 0 var(--bg),0 4px 12px var(--glow)
}
html[data-theme=plateada] #quote-form {
  box-shadow:0 12px 36px var(--glow)
}
@media(hover:hover) and (prefers-reduced-motion:no-preference) {
   html[data-theme=plateada] .hero .brand-stage:hover::after {
    transform:rotate(-2deg) translateY(-3px)
  }
   .services-layout summary:hover {
    box-shadow:0 6px 20px var(--glow)
  }

}
@media(max-width:720px) {
   html {
    scroll-padding-top:104px
  }
   header {
    position:sticky;
    top:0
  }
   html[data-theme=plateada] .hero h1 {
    font-size:clamp(40px,10.5vw,54px);
    font-weight:540
  }
   html[data-theme=plateada] .hero .brand-stage::after {
    inset:14px 32px;
    border-radius:22px
  }
   .hero-copy .actions {
    gap:18px
  }

}
@media(prefers-reduced-motion:reduce) {
   html {
    scroll-behavior:auto
  }
   html[data-theme=plateada] .hero .brand-stage::after,.services-layout summary {
    transition:none
  }

}
/* El isotipo acompaña la misma inclinación del marco, sin modificar el archivo de marca. */ html[data-theme=plateada] .hero .hero-mark {
  transform:rotate(-6deg);
  transition:transform 500ms cubic-bezier(.22,1,.36,1)
}
@media(hover:hover) and (prefers-reduced-motion:no-preference) {
   html[data-theme=plateada] .hero .brand-stage:hover .hero-mark {
    transform:rotate(-2deg) translateY(-3px)
  }

}
@media(prefers-reduced-motion:reduce) {
   html[data-theme=plateada] .hero .hero-mark {
    transition:none
  }

}
