/* 1. Variables de color y diseño global */
:root {
  color-scheme:dark;
  --bg:#10101b;
  --panel:#191927;
  --panel2:#202033;
  --text:#f5f4ff;
  --muted:#b4b2ca;
  --purple:#a78bfa;
  --pink:#f472b6;
  --line:#34334b;
  --green:#6ee7b7
}

/* 2. Reset y elementos HTML básicos */
* {
  box-sizing:border-box
}

html {
  scroll-behavior:smooth
}

body {
  margin:0;
  background:radial-gradient(ellipse at 80% 0%,#29204a 0,transparent 35%),var(--bg);
  color:var(--text);
  font:16px/1.6 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif
}

a {
  color:inherit;
  text-decoration:none
}

a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible {
  outline:3px solid var(--pink);
  outline-offset:3px
}

/* 3. Cabecera, marca y navegación */
.site-header {
  height:78px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:0 max(5vw,20px);
  border-bottom:1px solid #ffffff12;
  background:#10101bd9;
  backdrop-filter:blur(14px);
  position:sticky;
  top:0;
  z-index:10
}

.brand {
  display:flex;
  align-items:center;
  gap:10px;
  font-weight:700;
  font-size:1.1rem
}

.brand b {
  color:var(--purple)
}

.brand-mark {
  display:grid;
  place-items:center;
  width:39px;
  height:39px;
  border-radius:13px;
  background:linear-gradient(135deg,#8b5cf6,#ec4899);
  font-size:.85rem;
  box-shadow:0 5px 25px #8b5cf644
}

.nav {
  display:flex;
  align-items:center;
  gap:28px;
  color:var(--muted);
  font-size:.94rem
}

.nav a:hover,.footer a:hover {
  color:var(--text)
}

.nav-login {
  border:1px solid var(--line);
  padding:8px 17px;
  border-radius:12px;
  color:var(--text)!important
}

.menu-toggle {
  display:none;
  background:transparent;
  border:0;
  color:var(--text);
  font-size:1.6rem
}

/* 4. Portada y elementos decorativos */
.hero {
  max-width:1200px;
  margin:auto;
  min-height:580px;
  padding:80px 28px 70px;
  display:grid;
  grid-template-columns:1.08fr .92fr;
  align-items:center;
  gap:50px
}

.eyebrow {
  display:inline-block;
  color:var(--purple);
  font-size:.76rem;
  letter-spacing:.14em;
  font-weight:800
}

.hero h1 {
  font-size:clamp(3rem,6vw,5.6rem);
  line-height:1.04;
  letter-spacing:-.055em;
  margin:20px 0
}

.hero h1 span,.section-heading h2 span {
  background:linear-gradient(90deg,#c4b5fd,#f9a8d4);
  background-clip:text;
  color:transparent
}

.hero-copy>p,.section-heading>p,.cta-panel p {
  max-width:570px;
  color:var(--muted);
  font-size:1.08rem
}

.actions {
  display:flex;
  flex-wrap:wrap;
  gap:13px;
  margin:28px 0
}

.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid transparent;
  border-radius:13px;
  padding:12px 20px;
  font-weight:750;
  cursor:pointer;
  transition:transform .2s,filter .2s
}

.button:hover {
  transform:translateY(-2px);
  filter:brightness(1.08)
}

.primary {
  background:linear-gradient(100deg,#8b5cf6,#d946ef);
  color:white;
  box-shadow:0 8px 30px #8b5cf633
}

.secondary {
  border-color:var(--line);
  background:#ffffff06
}

.hero-stats {
  display:flex;
  flex-wrap:wrap;
  gap:24px;
  margin-top:34px
}

.hero-stats div {
  display:flex;
  align-items:center;
  gap:8px;
  color:var(--muted);
  font-size:.85rem
}

.hero-stats strong {
  font-size:1.25rem
}

.hero-art {
  min-height:380px;
  position:relative;
  display:grid;
  place-items:center;
  overflow:hidden
}

.hero-art:before {
  content:"";
  position:absolute;
  width:300px;
  height:300px;
  border-radius:50%;
  background:radial-gradient(circle,#8b5cf655,transparent 70%);
  filter:blur(14px)
}

.orbit {
  position:absolute;
  border:1px solid #c4b5fd42;
  border-radius:50%;
  transform:rotate(-24deg)
}

.orbit-one {
  width:330px;
  height:180px
}

.orbit-two {
  width:400px;
  height:240px;
  transform:rotate(55deg)
}

.planet {
  display:grid;
  place-items:center;
  width:190px;
  height:190px;
  border-radius:45%;
  font-size:6rem;
  background:linear-gradient(145deg,#312e81,#7e22ce 65%,#db2777);
  box-shadow:inset -16px -18px 45px #160b36,0 0 90px #a855f755;
  transform:rotate(-8deg);
  z-index:1
}

.float-tag {
  position:absolute;
  z-index:2;
  border:1px solid #ffffff20;
  background:#1c1a31eF;
  padding:8px 13px;
  border-radius:12px;
  font-size:.8rem;
  font-weight:800;
  box-shadow:0 10px 30px #0003
}

.tag-a {
  top:52px;
  right:3%
}

.tag-b {
  bottom:65px;
  left:0
}

.tag-c {
  right:0;
  bottom:110px
}

/* 5. Secciones, tarjetas y llamadas a la acción */
.section {
  max-width:1200px;
  margin:auto;
  padding:65px 28px 85px
}

.section-heading {
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:24px;
  margin-bottom:30px
}

.section-heading h2,.cta-panel h2 {
  font-size:clamp(2rem,4vw,3.1rem);
  letter-spacing:-.04em;
  line-height:1.15;
  margin:12px 0
}

.section-heading>p {
  max-width:350px;
  font-size:.95rem
}

.feature-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:16px
}

.feature-card {
  background:linear-gradient(150deg,#ffffff08,#ffffff03);
  border:1px solid var(--line);
  border-radius:20px;
  padding:25px;
  min-height:260px
}

.feature-icon {
  display:grid;
  place-items:center;
  width:50px;
  height:50px;
  background:#a78bfa1a;
  border-radius:15px;
  font-size:1.5rem
}

.feature-card h3 {
  margin:18px 0 8px
}

.feature-card p {
  color:var(--muted);
  font-size:.91rem;
  min-height:80px
}

.feature-card a {
  font-weight:700;
  color:#c4b5fd;
  font-size:.9rem
}

.cta-panel {
  max-width:1144px;
  margin:0 auto 80px;
  padding:35px 40px;
  border-radius:24px;
  border:1px solid #a78bfa3d;
  background:linear-gradient(110deg,#8b5cf61c,#ec489915);
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:24px
}

.cta-panel h2 {
  margin:8px 0
}

.cta-panel p {
  margin:0;
  font-size:.95rem
}

/* 6. Pie de página */
.footer {
  border-top:1px solid var(--line);
  padding:32px max(5vw,20px);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:22px;
  flex-wrap:wrap;
  color:var(--muted);
  font-size:.88rem
}

.footer p {
  margin:0
}

.footer div {
  display:flex;
  gap:18px
}

.footer small {
  width:100%;
  color:#77758f
}

/* 7. Páginas interiores, formularios y paneles */
.page-wrap {
  max-width:1000px;
  min-height:65vh;
  margin:auto;
  padding:65px 24px
}

.page-wrap.narrow {
  max-width:640px
}

.page-title {
  font-size:clamp(2.3rem,5vw,3.6rem);
  letter-spacing:-.04em;
  line-height:1.12;
  margin:8px 0 16px
}

.muted {
  color:var(--muted)
}

.panel {
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:18px;
  padding:24px;
  margin:20px 0
}

.form-grid {
  display:grid;
  gap:15px
}

.field {
  display:grid;
  gap:7px
}

.field label {
  font-weight:700;
  font-size:.92rem
}

.field input,.field textarea,.field select {
  width:100%;
  border:1px solid var(--line);
  border-radius:11px;
  padding:12px 13px;
  background:#10101b;
  color:var(--text);
  font:inherit
}

.field textarea {
  min-height:110px;
  resize:vertical
}

.form-actions {
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  align-items:center
}

/* 8. Mensajes de estado, listados y tarjetas de servicios */
.notice {
  padding:12px 14px;
  border-radius:12px;
  background:#a78bfa14;
  border:1px solid #a78bfa42;
  color:#ddd6fe
}

.notice.error {
  background:#ef444415;
  border-color:#ef444455;
  color:#fecaca
}

.notice.success {
  background:#10b98115;
  border-color:#10b98155;
  color:#a7f3d0
}

.list-grid {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:16px
}

.service-card {
  border:1px solid var(--line);
  background:var(--panel);
  padding:20px;
  border-radius:16px
}

.service-card h3 {
  margin:8px 0
}

.badge {
  font-size:.75rem;
  border-radius:999px;
  padding:4px 9px;
  background:#a78bfa1b;
  color:#ddd6fe
}

.empty-state {
  padding:24px;
  border:1px dashed var(--line);
  border-radius:14px;
  color:var(--muted)
}

.legal h2 {
  margin-top:30px
}

.legal p,.legal li {
  color:#cbc9dc
}

.footer a {
  color:var(--muted)
}

/* 9. Diseño adaptable: tabletas y teléfonos */
@media(max-width:900px) {
  .hero {
  grid-template-columns:1fr;
  gap:10px;
  padding-top:55px
}

.hero-art {
  min-height:320px
}

.feature-grid {
  grid-template-columns:repeat(2,1fr)
}

.section-heading {
  align-items:start;
  flex-direction:column
}

.cta-panel {
  margin-left:20px;
  margin-right:20px
}

.nav {
  gap:15px
}


}

@media(max-width:620px) {
  .site-header {
  height:68px
}

.menu-toggle {
  display:block
}

.nav {
  display:none;
  position:absolute;
  top:67px;
  left:0;
  right:0;
  padding:18px 24px 22px;
  background:#151522;
  border-bottom:1px solid var(--line);
  flex-direction:column;
  align-items:stretch
}

.nav.open {
  display:flex
}

.nav a {
  padding:7px
}

.hero {
  padding:50px 22px 40px
}

.hero h1 {
  font-size:3.35rem
}

.hero-art {
  min-height:280px
}

.planet {
  width:150px;
  height:150px;
  font-size:4.5rem
}

.orbit-one {
  width:260px;
  height:140px
}

.orbit-two {
  width:300px;
  height:180px
}

.tag-a {
  top:25px
}

.tag-c {
  bottom:55px
}

.section {
  padding:45px 20px 55px
}

.feature-grid,.list-grid {
  grid-template-columns:1fr
}

.feature-card {
  min-height:0
}

.feature-card p {
  min-height:0
}

.cta-panel {
  margin:0 20px 50px;
  padding:26px;
  align-items:flex-start;
  flex-direction:column
}

.footer {
  align-items:flex-start;
  flex-direction:column;
  gap:13px
}

.footer small {
  margin-top:4px
}

.page-wrap {
  padding:45px 20px
}

.panel {
  padding:18px
}


}



/* 10. Asistente de ayuda y formulario de feedback. Mantener estilos aislados en .ug-helpbot. */
.ug-helpbot {
  position: fixed;
  z-index: 1000;
  right: 18px;
  bottom: 18px;
  width: min(390px, calc(100vw - 24px));
  color: var(--text);
  font: inherit;
}
.ug-helpbot button,
.ug-helpbot input,
.ug-helpbot select,
.ug-helpbot textarea { font: inherit; }
.ug-helpbot__toggle {
  display: block;
  margin-left: auto;
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 13px 18px;
  color: var(--text);
  background: var(--purple);
  box-shadow: 0 10px 35px #0007;
  font-weight: 750;
  cursor: pointer;
}
.ug-helpbot__panel {
  display: flex;
  flex-direction: column;
  gap: 12px;
  max-height: min(78vh, 760px);
  margin-bottom: 10px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: var(--panel);
  box-shadow: 0 16px 50px #0009;
}
.ug-helpbot__panel[hidden] { display: none; }
.ug-helpbot__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px;
  border-bottom: 1px solid var(--line);
}
.ug-helpbot__header strong,
.ug-helpbot__header small { display: block; }
.ug-helpbot__header small { margin-top: 4px; color: var(--muted); font-size: .76rem; }
.ug-helpbot__close {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 7px 9px;
  color: var(--text);
  background: var(--panel2);
  cursor: pointer;
}
.ug-helpbot__messages {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-height: 100px;
  max-height: 190px;
  padding: 0 14px;
  overflow-y: auto;
}
.ug-helpbot__bubble {
  max-width: 94%;
  margin: 0;
  padding: 10px 12px;
  border-radius: 12px;
  line-height: 1.5;
  overflow-wrap: anywhere;
  font-size: .9rem;
}
.ug-helpbot__bubble--bot { align-self: flex-start; background: var(--panel2); }
.ug-helpbot__bubble--user { align-self: flex-end; background: #453779; }
.ug-helpbot__quick {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: 0 14px;
}
.ug-helpbot__quick button {
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 6px 9px;
  color: var(--text);
  background: transparent;
  cursor: pointer;
  font-size: .78rem;
}
.ug-helpbot__ask {
  display: flex;
  gap: 8px;
  padding: 0 14px 14px;
}
.ug-helpbot__ask input,
.ug-helpbot__feedback input,
.ug-helpbot__feedback select,
.ug-helpbot__feedback textarea {
  width: 100%;
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 9px;
  padding: 10px;
  color: var(--text);
  background: var(--bg);
}
.ug-helpbot__ask input { flex: 1; }
.ug-helpbot__ask button { white-space: nowrap; }
.ug-helpbot__feedback {
  display: grid;
  gap: 9px;
  padding: 14px;
  overflow-y: auto;
  border-top: 1px solid var(--line);
}
.ug-helpbot__feedback h3 { margin: 0; font-size: 1.05rem; }
.ug-helpbot__feedback p { margin: 0; font-size: .84rem; line-height: 1.5; }
.ug-helpbot__feedback label { display: grid; gap: 5px; font-size: .84rem; }
.ug-helpbot__feedback textarea { resize: vertical; }
.ug-helpbot__feedback .button { width: 100%; }
.ug-helpbot__status { min-height: 1.3em; color: var(--muted); }
.ug-helpbot__honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.ug-helpbot button:focus-visible,
.ug-helpbot input:focus-visible,
.ug-helpbot select:focus-visible,
.ug-helpbot textarea:focus-visible { outline: 2px solid var(--purple); outline-offset: 2px; }

@media (max-width: 520px) {
  .ug-helpbot { right: 10px; bottom: 10px; width: calc(100vw - 20px); }
  .ug-helpbot__panel { max-height: 80vh; }
  .ug-helpbot__messages { max-height: 130px; }
}
