html,body{overflow-x:hidden}
  h1,h2,h3,p,.check-text{overflow-wrap:anywhere;word-break:break-word}

*{box-sizing:border-box;margin:0;padding:0}
  body{font-family:'Inter',sans-serif;color:#111917;-webkit-font-smoothing:antialiased;background:#fff}
  a{color:#159e82;text-decoration:none}
  a:hover{color:#0f7a63}
  h1,h2,h3,h4{letter-spacing:-.02em}
  @keyframes consorfy-orbit{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
  @keyframes consorfy-counter-orbit{from{transform:rotate(0deg)}to{transform:rotate(-360deg)}}
  @keyframes consorfy-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
  .site-nav__burger{display:none;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid #e4e7e6;border-radius:12px;background:#fff;cursor:pointer;padding:0;flex-shrink:0;color:#111917}
  .nav-drawer,.nav-backdrop{display:none}
  .migra-visual{width:min(640px,100%);height:580px;min-height:580px;padding:0}
  .migra-orbit{position:relative;width:100%;height:100%;--orbit-r:220px}
  .migra-track{position:absolute;left:50%;top:50%;width:calc(var(--orbit-r) * 2);height:calc(var(--orbit-r) * 2);transform:translate(-50%,-50%);border:1.5px solid #d4dad7;border-radius:50%;pointer-events:none;z-index:0}
  .migra-logo{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:108px;height:108px;border-radius:50%;background:#fff;border:1px solid #e2ece8;display:flex;align-items:center;justify-content:center;padding:22px;z-index:2;box-shadow:0 10px 28px rgba(15,30,25,.08)}
  .migra-logo img{width:100%;height:100%;display:block}
  .migra-ring{position:absolute;inset:0;animation:consorfy-orbit 52s linear infinite;z-index:1}
  .migra-icon{position:absolute;left:50%;top:50%;width:64px;height:64px;margin:-32px 0 0 -32px;transform:rotate(var(--a)) translateY(calc(var(--orbit-r) * -1))}
  .migra-icon-spin{width:100%;height:100%;animation:consorfy-counter-orbit 52s linear infinite}
  .migra-icon-face{width:100%;height:100%;transform:rotate(calc(var(--a) * -1));background:#fff;border:1px solid #eef0ef;border-radius:16px;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 20px rgba(15,30,25,.08)}
  .migra-icon-face span{font-family:'Material Symbols Rounded';font-size:26px;line-height:1}
  .section-heading,.cta-heading{font-size:50px!important;line-height:1.1!important;font-weight:700;letter-spacing:-.03em}
  .app-heading-break,.cta-heading-line{display:block}
  .app-store-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:36px}
  .app-store-link{display:flex;align-items:center;justify-content:center;gap:9px;width:128px;max-width:100%;min-height:40px;padding:8px 14px 8px 12px;border-radius:10px;background:#0f1614;color:#fff}
  .app-store-link:first-child{width:115px}
  .app-store-link:hover{background:#29343a;color:#fff}
  .app-store-link:focus-visible{outline:3px solid #159e82;outline-offset:4px}
  .app-store-link img{display:block;object-fit:contain;flex-shrink:0}
  .app-store-link__apple{filter:invert(1)}
  .app-store-link__caption{display:block;font-size:9px;line-height:1.1;color:#a9beb7}
  .app-store-link__name{display:block;font-size:13px;line-height:1.1;font-weight:700;white-space:nowrap}
  .hero-block{position:relative;isolation:isolate;padding-top:22px;margin:0;background:#111917}
  .site-nav{margin-top:0!important}
  .hero-bg{position:absolute!important;top:0!important;right:0!important;bottom:0!important;left:0!important;width:100%!important;height:100%!important;overflow:hidden;z-index:0}
  .section{position:relative;z-index:1}
  .hero-bg img{width:100%!important;height:100%!important;max-width:none!important;object-fit:cover;display:block}
  .hero-slide-2{object-position:88% 66%!important;transform:scale(1.38);transform-origin:90% 58%}
  @media (max-width:900px){
    .page-wrap{padding:0!important}
    .hero-block{padding-top:12px}
    .site-nav{width:calc(100% - 24px)!important;margin:0 auto!important;padding:10px 12px!important;gap:12px!important;border-radius:16px!important;flex-wrap:nowrap!important}
    .site-nav__links,.site-nav__actions{display:none!important}
    .site-nav__burger{display:flex}
    .nav-backdrop{position:fixed;inset:0;background:rgba(15,22,20,.42);z-index:90}
    .nav-drawer{position:fixed;top:78px;left:12px;right:12px;z-index:110;background:#fff;border:1px solid #e4e7e6;border-radius:20px;padding:10px;flex-direction:column;gap:4px;box-shadow:0 22px 50px rgba(15,30,25,.18)}
    .nav-drawer a{display:flex;align-items:center;color:#2a302e!important;font-size:16px!important;font-weight:600!important;padding:14px 14px!important;border-radius:12px;border:none!important;background:transparent}
    .nav-drawer a.nav-drawer__ghost{justify-content:center;border:1px solid #e4e7e6!important;margin-top:6px}
    .nav-drawer a.nav-drawer__cta{justify-content:center;background:#29343A!important;color:#fff!important;font-weight:700!important;margin-top:4px}
    .hero-inner{padding:96px 20px 56px!important;min-height:72vh!important}
    .dash-wrap{display:none!important}
    .section{padding:48px 20px!important}
    .section-head{margin-bottom:28px!important}
    .split{grid-template-columns:1fr!important;gap:28px!important}
    .cta-box{padding:32px 20px!important;grid-template-columns:1fr!important;gap:24px!important;border-radius:22px!important}
    .migra-split{display:flex!important;flex-direction:column}
    .migra-copy{display:contents}
    .migra-copy-body{order:1}
    .migra-visual{order:2}
    .migra-cta,.app-cta{order:3;align-self:stretch;justify-content:center;margin-top:4px!important}
    .app-split{display:flex!important;flex-direction:column}
    .app-copy{display:contents}
    .app-copy-body{order:1}
    .phones-stage{order:2}
  }
  @media (min-width:901px){
    .nav-drawer,.nav-backdrop{display:none!important}
    .migra-split,.app-split{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
    .migra-copy,.app-copy{display:block}
    .migra-copy-body,.app-copy-body,.migra-visual,.migra-cta,.app-cta,.phones-stage{order:unset}
    .phone-mockup{width:243px;height:482px}
  }
  @media (max-width:768px){
    h1{font-size:32px!important;line-height:1.12!important}
    h2,.section-heading,.cta-heading{font-size:30px!important;line-height:1.15!important}
    h3{font-size:17px!important}
    h1 br,h2 br,.lead br,p br{display:none}
    p{font-size:15px!important;line-height:1.55!important}
    p.kicker{font-size:11px!important;letter-spacing:.16em!important;margin-bottom:14px!important}
    p.stat-num{font-size:32px!important;line-height:1.1!important}
    .cta-row{margin-top:22px!important;flex-direction:column;align-items:stretch}
    .cta-row a{justify-content:center;font-size:16px!important;padding:15px 22px!important}
    .split>*{min-width:0}
    .media-photo{height:220px!important}
    .float-card{display:none!important}
    .features-stage{min-height:0!important}
    .features-grid{grid-template-columns:1fr!important;gap:12px!important}
    .features-grid > div{padding:20px!important}
    .migra-visual{width:100%!important;max-width:100%!important;height:340px!important;min-height:340px!important;padding:0!important;overflow:visible!important}
    .migra-orbit{--orbit-r:124px}
    .migra-logo{width:80px;height:80px;padding:16px}
    .migra-icon{width:48px;height:48px;margin:-24px 0 0 -24px}
    .migra-icon-face{border-radius:14px}
    .migra-icon-face span{font-size:22px}
    .phones-stage{height:auto!important;min-height:0!important;overflow:visible!important;transform:none;padding:8px 0 20px}
    .phone-mockup{width:220px!important;height:436px!important}
    .phone-mockup__screen{inset:4.3% 6.2% 2.8% 6.2%}
    .phone-mockup__app{width:186px!important;height:380px!important;top:18px!important;left:7px!important}
    .phone-mockup__frame{left:0!important}
    .quotes-grid{grid-template-columns:1fr!important;gap:14px!important}
    .quotes-grid > div{padding:22px!important}
    .stats-band{grid-template-columns:1fr!important;margin-top:20px!important}
    .stats-band > div{padding:22px 16px!important;border-right:none!important;border-bottom:1px solid #eef0ef}
    .stats-band > div:last-child{border-bottom:none}
    .form-card{padding:20px!important}
    .form-grid{grid-template-columns:1fr!important}
    .check-text{font-size:15px!important}
    .site-footer{padding:40px 20px 28px!important}
    .footer-grid{gap:28px!important}
    .footer-legal{flex-direction:column;align-items:flex-start!important}
    .wa-wrap{right:16px!important;bottom:16px!important}
    .wa-panel{width:min(320px,calc(100vw - 32px))!important}
    img{max-width:100%}
    .hero-bg img{max-width:none!important;width:100%!important;height:100%!important}
    .hero-slide-2{transform:scale(1.55);transform-origin:84% 68%}
    #contacto.section{padding:16px 16px 40px!important}
  }

/* Estado interactivo: reemplaza el runtime del generador por clases simples. */
.material-symbol {
  font-family: 'Material Symbols Rounded';
  font-weight: 400;
  line-height: 1;
  font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
  flex-shrink: 0;
}

.nav-backdrop,
.nav-drawer {
  display: none;
}

body.menu-open .nav-backdrop {
  display: block;
}

body.menu-open .nav-drawer {
  display: flex;
}

.hero-bg-slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity .7s ease;
}

.hero-bg-slide.is-active {
  opacity: 1;
}

.hero-copy {
  position: absolute;
  inset: 0;
  display: block;
  opacity: 0;
  z-index: 1;
  pointer-events: none;
  transition: opacity .7s ease;
}

.hero-copy.is-active {
  position: relative;
  opacity: 1;
  z-index: 2;
  pointer-events: auto;
}

.slider-dot {
  width: 8px;
  height: 8px;
  border: none;
  padding: 0;
  border-radius: 8px;
  cursor: pointer;
  background: rgba(255, 255, 255, .25);
  transition: all .4s ease;
}

.slider-dot--light {
  width: 34px;
  background: #b8bfbc;
}

.slider-dot.is-active {
  width: 34px;
  background: #1cb894;
}

.benefit-reveal,
.benefit-card {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity .7s cubic-bezier(.22,.61,.36,1), transform .7s cubic-bezier(.22,.61,.36,1);
}

.benefit-reveal--delay {
  transition-delay: .15s;
}

.benefit-card {
  transform: translateY(16px);
}

.benefit-card--payment {
  transition-delay: .75s;
}

.benefit-card--communication {
  transition-delay: .5s;
}

#beneficios-section.is-visible .benefit-reveal,
#beneficios-section.is-visible .benefit-card {
  opacity: 1;
  transform: translateY(0);
}

.features-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}

.features-panel {
  position: absolute;
  inset: 0;
  opacity: 0;
  pointer-events: none;
  transition: opacity .7s ease;
}

.features-panel.is-active {
  position: relative;
  opacity: 1;
  pointer-events: auto;
}

.accordion-panel {
  max-height: 0;
  overflow: hidden;
  visibility: hidden;
  transition: max-height .3s ease;
}

.accordion-item.is-open .accordion-panel {
  max-height: var(--panel-height);
  visibility: visible;
}

.accordion-icon {
  color: #159e82;
  font-size: 22px;
  transform: rotate(0deg);
  transition: transform .25s ease;
}

.accordion-item.is-open .accordion-icon {
  transform: rotate(180deg);
}

.quote-card {
  display: flex;
  flex-direction: column;
}

.quote-author {
  margin-top: auto;
}

.quote-author > span {
  flex-shrink: 0;
}

.quote-author > div {
  min-width: 0;
}

.role-button {
  text-align: center;
  padding: 15px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 12px;
  color: #cfe0da;
  font-weight: 600;
  background: transparent;
  font-family: inherit;
  font-size: 15px;
  cursor: pointer;
}

.contact-field-error {
  display: block;
  margin-top: 6px;
  color: #ffb4ab;
  font-size: 12px;
  line-height: 1.4;
  overflow-wrap: anywhere;
}

.contact-field-error[hidden] {
  display: none;
}

[data-contact-field][aria-invalid="true"] {
  border-color: #ffb4ab !important;
}

[data-contact-field]:focus-visible {
  outline: 2px solid #3fcaa7 !important;
  outline-offset: 2px;
}

.role-button.is-active {
  border-color: #1cb894;
  color: #fff;
  font-weight: 700;
  background: rgba(28,184,148,.1);
}

.wa-panel {
  display: none;
}

.wa-wrap.is-open .wa-panel {
  display: block;
}

.wa-close-icon {
  display: none;
  color: #0f1614;
  font-size: 30px;
}

.wa-icon {
  display: flex;
  align-items: center;
  justify-content: center;
}

.wa-wrap.is-open .wa-icon {
  display: none;
}

.wa-wrap.is-open .wa-close-icon {
  display: block;
}

