:root {
  --ink: #17141c;
  --muted: #6d6872;
  --purple: #1472ff;
  --purple-dark: #064bdc;
  --blue: #1472ff;
  --paper: #f5f8fd;
  --line: #dfe6f0;
  --white: #fff;
  --radius: 22px;
  --shadow: 0 24px 70px rgba(40, 26, 45, .12);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 88px; }
body { margin: 0; color: var(--ink); background: #fff; font-family: Inter, "Segoe UI", Arial, sans-serif; line-height: 1.6; -webkit-font-smoothing: antialiased; }
body.menu-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
button, input, textarea, select { font: inherit; }
.shell { width: min(1160px, calc(100% - 40px)); margin-inline: auto; }
.skip-link { position: fixed; z-index: 200; left: 15px; top: -70px; padding: 9px 14px; border-radius: 8px; background: #fff; }
.skip-link:focus { top: 12px; }

.site-header { position: fixed; z-index: 100; inset: 0 0 auto; border-bottom: 1px solid rgba(231, 226, 233, .8); background: rgba(255, 255, 255, .92); backdrop-filter: blur(18px); transition: box-shadow .2s; }
.site-header.scrolled { box-shadow: 0 10px 35px rgba(33, 20, 37, .08); }
.nav-wrap { height: 80px; display: flex; align-items: center; justify-content: space-between; gap: 30px; }
.brand img { width: 200px; height: auto; }
.main-nav { display: flex; align-items: center; gap: 28px; font-size: 13px; font-weight: 750; }
.main-nav > a { transition: color .2s; }
.main-nav > a:hover { color: var(--purple); }
.main-nav .nav-call { padding: 10px 16px; border-radius: 11px; color: #fff; background: var(--ink); }
.menu-toggle { display: none; width: 44px; height: 44px; padding: 10px; border: 0; border-radius: 11px; background: var(--ink); }
.menu-toggle span { display: block; height: 2px; margin: 5px; border-radius: 2px; background: #fff; }

main { display: flex; flex-direction: column; }
.hero { order: 1; }
.software { order: 2; }
.services { order: 3; }
.custom-sections { order: 4; }
.about { order: 5; }
.contact { order: 6; }

.hero { position: relative; overflow: hidden; padding: 145px 0 85px; background: linear-gradient(135deg, #fff 0%, #f8f2fa 58%, #eef6fa 100%); }
.hero::before { content: ""; position: absolute; inset: 0; background-image: linear-gradient(rgba(125,49,141,.04) 1px, transparent 1px), linear-gradient(90deg, rgba(125,49,141,.04) 1px, transparent 1px); background-size: 48px 48px; mask-image: linear-gradient(#000, transparent 90%); }
.hero::after { content: ""; position: absolute; width: 520px; height: 520px; right: -170px; top: 50px; border-radius: 50%; background: radial-gradient(circle, rgba(125,49,141,.13), transparent 68%); animation: drift 9s ease-in-out infinite; }
.hero-grid { position: relative; z-index: 1; display: grid; grid-template-columns: 1.08fr .92fr; gap: 75px; align-items: center; }
.eyebrow { margin: 0 0 16px; color: var(--purple); font-size: 11px; font-weight: 900; letter-spacing: .16em; text-transform: uppercase; }
.eyebrow.light { color: #dcb7e4; }
.hero h1 { margin: 0; max-width: 720px; font-size: clamp(48px, 6vw, 76px); line-height: 1; letter-spacing: -.055em; }
.hero h1 span, .hero h1 em { display: block; }
.hero h1 em { color: var(--purple); font-style: normal; }
.hero-lead { max-width: 660px; margin: 25px 0 0; color: var(--muted); font-size: 18px; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 11px; margin-top: 32px; }
.button { min-height: 50px; display: inline-flex; align-items: center; justify-content: center; gap: 11px; padding: 0 21px; border: 0; border-radius: 12px; font-size: 13px; font-weight: 850; cursor: pointer; transition: transform .2s, box-shadow .2s; }
.button:hover { transform: translateY(-2px); }
.button.primary { color: #fff; background: linear-gradient(135deg, var(--purple), var(--purple-dark)); box-shadow: 0 13px 27px rgba(125,49,141,.22); }
.button.secondary { border: 1px solid var(--line); background: #fff; }
.hero-points { display: flex; flex-wrap: wrap; gap: 21px; margin-top: 35px; color: var(--muted); font-size: 11px; }
.hero-points b { color: var(--ink); }
.hero-brand { position: relative; }
.logo-panel { min-height: 390px; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 38px; border: 1px solid rgba(125,49,141,.15); border-radius: 28px; background: rgba(255,255,255,.88); box-shadow: var(--shadow); }
.logo-panel > span { margin-bottom: 18px; color: var(--muted); font-size: 9px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.logo-panel > #hero-image { width: 255px; height: 145px; object-fit: contain; }
.hero-software-logos { width: 100%; display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: 18px; }
.hero-software-logos a { min-width: 0; display: grid; place-items: center; gap: 3px; padding: 8px 5px; border: 1px solid var(--line); border-radius: 10px; background: #fff; transition: transform .2s, border-color .2s; }
.hero-software-logos a:hover { transform: translateY(-3px); border-color: #cda4d5; }
.hero-software-logos img { width: 100%; height: 30px; object-fit: contain; }
.hero-software-logos a:first-child img { object-position: center 43%; }
.hero-software-logos small { color: var(--muted); font-size: 7px; font-weight: 800; text-transform: uppercase; }
.status-card { position: absolute; right: -15px; bottom: -18px; display: flex; align-items: center; gap: 11px; padding: 13px 16px; border: 1px solid var(--line); border-radius: 13px; background: #fff; box-shadow: 0 16px 35px rgba(35,23,39,.13); }
.status-card i { width: 9px; height: 9px; border-radius: 50%; background: #42ad68; box-shadow: 0 0 0 5px rgba(66,173,104,.13); }
.status-card strong, .status-card small { display: block; }
.status-card strong { font-size: 11px; }
.status-card small { color: var(--muted); font-size: 8px; }

.section { padding: 105px 0; }
.section h2 { margin: 0; font-size: clamp(39px, 4.5vw, 58px); line-height: 1.05; letter-spacing: -.045em; }
.software { position: relative; overflow: hidden; color: #fff; background: #19141d; }
.software::before { content: ""; position: absolute; width: 560px; height: 560px; right: -230px; top: -240px; border-radius: 50%; background: radial-gradient(circle, rgba(125,49,141,.25), transparent 68%); }
.software > .shell { position: relative; }
.software-heading { max-width: 720px; margin-bottom: 45px; }
.software-heading h2 { margin-bottom: 18px; }
.software-heading > p { margin: 0; color: #b9b0bc; }
.software-card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.software-card { overflow: hidden; display: flex; flex-direction: column; border: 1px solid rgba(255,255,255,.1); border-radius: var(--radius); color: var(--ink); background: #fff; transition: transform .25s, box-shadow .25s; }
.software-card:hover { transform: translateY(-6px); box-shadow: 0 28px 65px rgba(0,0,0,.25); }
.software-card-logo { height: 92px; display: grid; place-items: center; padding: 12px 24px; background: #fff; }
.software-card-logo img { width: 100px; height: 68px; object-fit: contain; object-position: center 43%; }
.software-card-logo.wide img { width: 175px; height: 53px; object-position: center; }
.software-card-photo { width: 100%; height: 235px; object-fit: cover; background: #f0eef1; }
.software-card-photo.contain { padding: 10px; object-fit: contain; }
.software-card-content { flex: 1; display: flex; flex-direction: column; padding: 26px; }
.software-card-content > span { color: var(--purple); font-size: 8px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.software-card-content h3 { min-height: 55px; margin: 8px 0 11px; font-size: 23px; line-height: 1.18; letter-spacing: -.03em; }
.software-card-content p { min-height: 64px; margin: 0; color: var(--muted); font-size: 12px; }
.software-card-content ul { display: flex; flex-wrap: wrap; gap: 5px; margin: 19px 0 23px; padding: 0; list-style: none; }
.software-card-content li { padding: 5px 8px; border-radius: 999px; color: #625b66; background: #f2eff3; font-size: 8px; font-weight: 750; }
.software-card-content a { margin-top: auto; color: var(--purple); font-size: 11px; font-weight: 900; }

.section-heading { display: grid; grid-template-columns: 1fr .72fr; gap: 65px; align-items: end; margin-bottom: 42px; }
.section-heading > p { margin: 0; color: var(--muted); font-size: 15px; }
.service-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 17px; }
.service-card { position: relative; min-height: 405px; padding: 70px 30px 30px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; transition: transform .25s, box-shadow .25s; }
.service-card:hover { transform: translateY(-5px); box-shadow: var(--shadow); }
.service-card.featured { color: #fff; border-color: transparent; background: linear-gradient(145deg, #2a1c2e, #52245b); }
.service-card .number { position: absolute; left: 30px; top: 25px; color: var(--purple); font-size: 11px; font-weight: 900; letter-spacing: .12em; }
.service-card.featured .number { color: #dcaee5; }
.service-card h3 { margin: 0 0 12px; font-size: 24px; letter-spacing: -.03em; }
.service-card p { color: var(--muted); font-size: 13px; }
.service-card.featured p { color: #d2c6d5; }
.service-card ul { margin: 21px 0 35px; padding: 0; list-style: none; font-size: 11px; }
.service-card li { padding: 7px 0; border-bottom: 1px solid var(--line); }
.service-card.featured li { border-color: rgba(255,255,255,.13); }
.service-card li::before { content: "—"; margin-right: 8px; color: var(--purple); }
.service-card.featured li::before { color: #dcaee5; }
.service-card > a { position: absolute; left: 30px; bottom: 27px; color: var(--purple); font-size: 11px; font-weight: 900; }
.service-card.featured > a { color: #fff; }

.about { background: var(--paper); }
.about-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 72px; align-items: center; }
.about-media { position: relative; }
.about-media > img { width: 100%; height: 490px; object-fit: cover; border-radius: 24px; box-shadow: var(--shadow); }
.about-media > .about-award-card { position: absolute; top: 22px; left: -18px; display: flex; align-items: center; gap: 7px; width: 220px; padding: 7px 9px 7px 7px; border: 1px solid rgba(232, 215, 239, .8); border-radius: 12px; color: #fff; background: rgba(79, 30, 92, .78); box-shadow: 0 12px 24px rgba(44, 17, 57, .2); backdrop-filter: blur(8px); }
.about-award-card > img { flex: 0 0 46px; width: 46px; height: 46px; object-fit: contain; border: 2px solid rgba(255, 255, 255, .8); border-radius: 50%; background: #fff; }
.about-award-card > span { display: grid; gap: 3px; min-width: 0; }
.about-award-card strong, .about-award-card small { display: block; }
.about-award-card strong { color: #fff; font-size: 9px; line-height: 1.2; }
.about-award-card small { color: #f0dff4; font-size: 8px; line-height: 1.3; }
.about-copy .lead { color: var(--muted); font-size: 16px; }
.about-identity-note { max-width: 520px; margin: 18px 0 0; color: #526d87; font-size: 13px; line-height: 1.75; }
.values { margin-top: 28px; }
.values > div { display: flex; gap: 17px; padding: 15px 0; border-bottom: 1px solid var(--line); }
.values b { color: var(--purple); font-size: 10px; }
.values span, .values strong { display: block; }
.values span { color: var(--muted); font-size: 11px; }
.values strong { margin-bottom: 2px; color: var(--ink); font-size: 14px; }
.company-location { display: grid; grid-template-columns: minmax(250px, .72fr) minmax(0, 1.28fr); gap: 24px; margin-top: 58px; padding: 18px; border: 1px solid #d6e5f2; border-radius: 26px; background: linear-gradient(135deg, #f7fbff, #fff 60%, #eef7ff); box-shadow: 0 18px 45px rgba(8, 51, 102, .08); }
.company-location-copy { padding: 22px 20px; }
.company-location-copy h3 { margin: 6px 0 14px; color: #0a2d5d; font-size: clamp(27px, 3vw, 40px); line-height: 1.06; letter-spacing: -.045em; }
.company-location-copy > p:not(.eyebrow) { color: #607793; font-size: 12px; line-height: 1.75; }
.company-location-copy address { margin: 23px 0; color: #49647d; font-size: 12px; font-style: normal; line-height: 1.7; }
.company-location-copy address strong { color: #123a5c; }
.company-location-copy .button { width: max-content; }
.company-map { min-height: 350px; overflow: hidden; border: 1px solid #d2e2ee; border-radius: 19px; background: #dce9f1; }
.company-map iframe { display: block; width: 100%; height: 100%; min-height: 350px; border: 0; }
@media (max-width: 700px) {
  .company-location { grid-template-columns: 1fr; margin-top: 42px; padding: 10px; border-radius: 21px; }
  .company-location-copy { padding: 17px 12px 20px; }
  .company-location-copy .button { width: 100%; }
  .company-map, .company-map iframe { min-height: 280px; }
}

.contact { background: #fff; }
.contact-card { display: grid; grid-template-columns: .85fr 1.15fr; gap: 65px; padding: 60px; border-radius: 28px; color: #fff; background: linear-gradient(145deg, #211724, #54245d); }
.contact-copy h2 { margin: 0; font-size: clamp(40px, 4.5vw, 55px); line-height: 1.05; letter-spacing: -.045em; }
.contact-copy > p:not(.eyebrow) { color: #cbbdce; }
.contact-links { display: grid; gap: 10px; margin-top: 35px; }
.contact-links a { padding: 12px 0; border-bottom: 1px solid rgba(255,255,255,.14); }
.contact-links small, .contact-links strong { display: block; }
.contact-links small { color: #b7a9bb; font-size: 8px; text-transform: uppercase; }
.contact-links strong { font-size: 13px; overflow-wrap: anywhere; }
.contact-form { padding: 28px; border-radius: 18px; color: var(--ink); background: #fff; box-shadow: 0 24px 55px rgba(0,0,0,.16); }
.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 11px; }
.contact-form label { display: grid; gap: 5px; margin-bottom: 11px; font-size: 10px; font-weight: 800; }
.contact-form input, .contact-form textarea, .contact-form select { width: 100%; padding: 12px 13px; border: 1px solid var(--line); border-radius: 9px; color: var(--ink); background: #fcfbfc; outline: none; }
.contact-form input:focus, .contact-form textarea:focus, .contact-form select:focus { border-color: var(--purple); box-shadow: 0 0 0 3px rgba(125,49,141,.08); }
.contact-form textarea { resize: vertical; }
.contact-form .privacy { display: flex; align-items: center; font-weight: 500; }
.privacy input { width: auto; }
#form-note { margin: 9px 0 0; color: var(--muted); font-size: 8px; }
.contact-direct-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.contact-direct-actions>a{display:flex!important;align-items:center;gap:9px;min-width:0;width:100%!important;max-width:100%;padding:13px 11px;border:1px solid rgba(146,211,255,.28);border-radius:13px;color:#fff;background:rgba(255,255,255,.1);transition:transform .2s ease,background .2s ease}.contact-direct-actions>a:hover{transform:translateY(-3px);background:rgba(255,255,255,.17)}.contact-direct-actions .contact-whatsapp-action{border-color:rgba(71,227,157,.35);background:rgba(19,190,111,.16)}.contact-direct-actions .contact-whatsapp-action:hover{background:rgba(19,190,111,.27)}.contact-direct-actions .contact-phone-icon{display:grid;place-items:center;flex:0 0 32px;width:32px;height:32px}.contact-direct-actions>a>span:last-child{min-width:0}.contact-direct-actions strong{display:block;overflow:visible;font-size:clamp(14px,1.45vw,18px)!important;letter-spacing:0!important;white-space:nowrap}@media(max-width:700px){.contact-direct-actions{grid-template-columns:1fr}.contact-direct-actions strong{font-size:18px!important}}
.contact-form-head{display:flex;align-items:center;gap:13px;margin-bottom:22px;padding-bottom:17px;border-bottom:1px solid #e0eaf3}.contact-form-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:11px;color:#fff;background:linear-gradient(135deg,#147dff,#08a5c4);font-size:19px;font-weight:900;box-shadow:0 8px 18px rgba(20,125,255,.2)}.contact-form-head>div{display:grid;gap:2px}.contact-form-kicker{color:#147dff;font-size:8px;font-weight:900;letter-spacing:.13em;text-transform:uppercase}.contact-form-head h3{margin:0;color:#102d4e;font-size:22px;line-height:1.1}.contact-form-head p{margin:0;color:#71869b;font-size:10px}.contact-primary-contact{display:grid;gap:8px;margin-top:30px}.contact-contact-label{color:#82b9ee;font-size:8px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.contact-primary-contact>a{display:flex;align-items:center;gap:12px;width:max-content;max-width:100%;padding:13px 15px;border:1px solid rgba(146,211,255,.28);border-radius:13px;color:#fff;background:rgba(255,255,255,.1);transition:transform .2s ease,background .2s ease}.contact-primary-contact>a:hover{transform:translateY(-3px);background:rgba(255,255,255,.17)}.contact-phone-icon{display:grid;place-items:center;width:35px;height:35px;border-radius:10px;color:#062d59;background:#9de8f3;font-size:18px}.contact-primary-contact small,.contact-primary-contact strong{display:block}.contact-primary-contact small{margin-bottom:2px;color:#bcd6ed;font-size:8px;text-transform:uppercase}.contact-primary-contact strong{color:#fff;font-size:clamp(17px,2vw,23px);letter-spacing:.01em}.contact-links{margin-top:17px}.contact-links a{padding:12px 0}.contact-links small{color:#82b9ee;font-size:8px}.contact-links strong{font-size:12px}.contact-form .privacy{font-size:9px}.contact-form .button{min-height:48px;padding-inline:20px;font-weight:850}@media(max-width:700px){.contact-form-head h3{font-size:20px}.contact-primary-contact{margin-top:25px}.contact-primary-contact>a{width:100%}.contact-primary-contact strong{font-size:18px}}

.site-footer { padding: 45px 0 22px; border-top: 1px solid var(--line); }
.footer-main { display: flex; justify-content: space-between; gap: 30px; }
.footer-main img { width: 185px; }
.footer-main p { color: var(--muted); font-size: 10px; }
.footer-main nav { display: flex; gap: 22px; font-size: 11px; font-weight: 750; }
.footer-bottom { display: flex; justify-content: space-between; margin-top: 35px; padding-top: 16px; border-top: 1px solid var(--line); color: var(--muted); font-size: 9px; }
.footer-bottom div { display: flex; gap: 16px; }

.custom-block { padding: 90px 0; }
.custom-block.theme-soft { background: #f6f2f7; }
.custom-block.theme-dark { color: #fff; background: #1c161f; }
.custom-block-inner { display: grid; grid-template-columns: 1fr 1fr; gap: 65px; align-items: center; }
.custom-block.layout-image-right .custom-block-media { order: 2; }
.custom-block.layout-center .custom-block-inner, .custom-block.custom-text .custom-block-inner, .custom-block.custom-cta .custom-block-inner { display: block; max-width: 820px; text-align: center; }
.custom-block-copy h2 { margin: 0 0 18px; font-size: clamp(36px, 4vw, 54px); line-height: 1.06; }
.custom-block-text { white-space: pre-line; color: var(--muted); }
.theme-dark .custom-block-text { color: #c8becb; }
.custom-block-copy .button { margin-top: 16px; }
.custom-block-media { overflow: hidden; border-radius: 22px; box-shadow: var(--shadow); }
.custom-block-media img { width: 100%; object-fit: cover; }
.custom-block-media.size-small { max-width: 360px; }
.custom-block-media.size-small img { height: 280px; }
.custom-block-media.size-medium img { height: 420px; }
.custom-block-media.size-large img { height: 550px; }
.custom-cta .custom-block-inner { padding: 48px; border-radius: 25px; background: #f5eef7; }
.custom-cta.theme-dark .custom-block-inner { background: #322337; }

.reveal { opacity: 0; transform: translateY(18px); transition: opacity .65s ease, transform .65s ease; }
.reveal.visible { opacity: 1; transform: none; }
@keyframes drift { 50% { transform: translate(-25px, 18px) scale(1.08); } }

@media (max-width: 980px) {
  .menu-toggle { display: block; }
  .main-nav { position: fixed; inset: 80px 0 auto; display: none; flex-direction: column; align-items: stretch; gap: 8px; padding: 22px; border-bottom: 1px solid var(--line); background: #fff; box-shadow: 0 25px 45px rgba(30,20,34,.12); }
  .main-nav.open { display: flex; }
  .main-nav a { padding: 9px; }
  .hero-grid, .about-grid, .contact-card { grid-template-columns: 1fr; }
  .hero-grid { gap: 45px; }
  .hero-brand { width: min(650px, 100%); }
  .software-card-grid { grid-template-columns: 1fr; }
  .software-card { display: grid; grid-template-columns: 220px 1fr; }
  .software-card-logo, .software-card-photo { grid-column: 1; }
  .software-card-photo { height: 220px; }
  .software-card-content { grid-column: 2; grid-row: 1 / 3; }
  .software-card-content h3, .software-card-content p { min-height: 0; }
  .section-heading { grid-template-columns: 1fr; gap: 14px; }
  .service-grid { grid-template-columns: 1fr; }
  .service-card { min-height: 350px; }
  .about-media { max-width: 680px; }
  .contact-card { gap: 35px; }
}

@media (max-width: 650px) {
  .shell { width: min(100% - 26px, 1160px); }
  .nav-wrap { height: 72px; }
  .brand img { width: 170px; }
  .main-nav { inset-block-start: 72px; }
  .hero { padding: 112px 0 65px; }
  .hero h1 { font-size: 43px; }
  .hero-lead { font-size: 15px; }
  .hero-points { display: grid; gap: 8px; }
  .logo-panel { min-height: 0; padding: 28px 20px 36px; }
  .logo-panel > #hero-image { width: 210px; height: 125px; }
  .status-card { right: 5px; bottom: -18px; }
  .section { padding: 72px 0; }
  .section h2 { font-size: 38px; }
  .software-card { display: flex; }
  .software-card-logo { height: 82px; }
  .software-card-photo { height: 225px; }
  .software-card-content { padding: 23px; }
  .software-card-content h3, .software-card-content p { min-height: 0; }
  .service-card { min-height: 390px; padding-inline: 24px; }
  .service-card .number, .service-card > a { left: 24px; }
  .about-media > img { height: 350px; }
  .about-media > .about-award-card { top: 14px; left: 7px; width: min(220px, calc(100% - 14px)); }
  .contact-card { padding: 30px 20px; border-radius: 22px; }
  .field-row { grid-template-columns: 1fr; }
  .contact-form { padding: 19px; }
  .footer-main, .footer-bottom { flex-direction: column; }
  .footer-main nav { flex-wrap: wrap; }
  .footer-bottom { gap: 20px; }
  .custom-block { padding: 68px 0; }
  .custom-block-inner { grid-template-columns: 1fr; gap: 32px; }
  .custom-block.layout-image-right .custom-block-media { order: 0; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .hero::after { animation: none; }
  .reveal { opacity: 1; transform: none; transition: none; }
}

/* Dirección visual: interfaz tecnológica azul marino */
.site-header { color: #fff; border-bottom-color: rgba(255,255,255,.1); background: rgba(4,18,43,.88); }
.site-header .brand { padding: 6px 10px; border-radius: 9px; background: #fff; }
.site-header .brand img { width: 175px; }
.site-header .nav-call { color: #fff; background: #1472ff; box-shadow: 0 8px 22px rgba(20,114,255,.28); }
.site-header.scrolled { color: var(--ink); border-bottom-color: var(--line); background: rgba(255,255,255,.94); }
.site-header.scrolled .nav-call { color: #fff; }

.hero { min-height: 720px; display: grid; align-items: center; padding: 130px 0 72px; color: #fff; background: radial-gradient(circle at 88% 28%, #073caa 0, #06285f 25%, #041a3d 52%, #031229 100%); }
.hero::before { opacity: .5; background-image: linear-gradient(rgba(42,126,255,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(42,126,255,.1) 1px,transparent 1px); background-size: 52px 52px; mask-image: linear-gradient(#000,transparent 95%); }
.hero::after { width: 720px; height: 720px; right: -170px; top: 20px; background: radial-gradient(circle,rgba(16,111,255,.28),transparent 66%); }
.hero-grid { grid-template-columns: .92fr 1.08fr; gap: 55px; }
.hero .eyebrow { width: fit-content; margin-bottom: 22px; padding: 7px 11px; border: 1px solid rgba(89,159,255,.22); border-radius: 7px; color: #cfe1ff; background: rgba(46,118,226,.13); letter-spacing: 0; text-transform: none; }
.hero .eyebrow::before { content: ""; display: inline-block; width: 6px; height: 6px; margin-right: 7px; border-radius: 50%; background: #32d083; box-shadow: 0 0 12px #32d083; }
.hero h1 { font-size: clamp(48px,5vw,68px); line-height: 1.08; }
.hero h1 em { color: #3786ff; }
.hero-lead { color: #c2cee1; font-size: 16px; }
.hero .button.primary { background: #1472ff; box-shadow: 0 14px 30px rgba(20,114,255,.3); }
.hero .button.secondary { color: #fff; border-color: rgba(255,255,255,.45); background: transparent; }
.hero-points { margin-top: 38px; color: #aebbd0; }
.hero-points b { color: #fff; }

.hero-brand { min-height: 520px; display: grid; place-items: center; }
.hero-logo-mark { position: absolute; z-index: 4; top: 20px; right: 12px; display: grid; place-items: center; width: 94px; height: 94px; padding: 14px; border: 1px solid rgba(255,255,255,.62); border-radius: 24px; background: rgba(255,255,255,.92); box-shadow: 0 16px 32px rgba(0,0,0,.22); transform: rotate(7deg); }
.hero-logo-mark img { width: 100%; height: 100%; object-fit: contain; }
.dashboard-frame { position: relative; z-index: 2; width: min(560px,92%); overflow: hidden; border: 7px solid rgba(255,255,255,.95); border-radius: 22px; background: #fff; box-shadow: 0 35px 80px rgba(0,0,0,.38),0 0 70px rgba(24,112,255,.18); transform: perspective(1100px) rotateY(-5deg) rotateX(2deg); animation: dashboardFloat 6s ease-in-out infinite; }
.dashboard-bar { height: 38px; display: flex; align-items: center; gap: 6px; padding: 0 13px; color: #607089; background: #eef3fa; }
.dashboard-bar i { width: 7px; height: 7px; border-radius: 50%; background: #9eb0c5; }
.dashboard-bar span { margin-left: 7px; font-size: 8px; font-weight: 800; }
.dashboard-frame > img { width: 100%; height: 435px; object-fit: cover; object-position: top center; }
.floating-product { position: absolute; z-index: 3; width: 150px; display: grid; gap: 3px; padding: 10px 12px; border: 1px solid rgba(255,255,255,.7); border-radius: 13px; color: #1c2940; background: rgba(255,255,255,.95); box-shadow: 0 17px 38px rgba(0,0,0,.22); transition: transform .25s; }
.floating-product:hover { transform: translateY(-4px); }
.floating-product img { width: 100%; height: 38px; object-fit: contain; }
.floating-product span { color: #66758b; font-size: 8px; font-weight: 800; text-align: center; }
.float-neocontrol { left: -10px; top: 54px; }
.float-neotemp { right: -8px; top: 125px; }
.float-farmatemp { right: 30px; bottom: 4px; }

.software { color: var(--ink); background: #fff; }
.software::before { width: 600px; height: 600px; right: -320px; top: -300px; background: radial-gradient(circle,rgba(20,114,255,.08),transparent 68%); }
.software-heading { margin-inline: auto; text-align: center; }
.software-heading .eyebrow { color: #1472ff; }
.software-heading > p { color: var(--muted); }
.software-card { border-color: #dfe6f0; box-shadow: 0 8px 25px rgba(15,44,85,.05); }
.software-card:hover { box-shadow: 0 25px 55px rgba(18,55,106,.14); }
.software-card-content > span,.software-card-content a { color: #126df0; }
.software-card-content li { color: #426087; background: #edf4ff; }
.services { background: #f7f9fc; }
.service-card { border-color: #dfe6f0; }
.service-card.featured { background: linear-gradient(145deg,#061d45,#0b397e); }
.service-card .number,.service-card > a { color: #1472ff; }

@keyframes dashboardFloat { 0%,100% { transform: perspective(1100px) rotateY(-5deg) rotateX(2deg) translateY(0); } 50% { transform: perspective(1100px) rotateY(-5deg) rotateX(2deg) translateY(-8px); } }

@media (max-width: 980px) {
  .site-header .main-nav { color: var(--ink); }
  .hero-grid { grid-template-columns: 1fr; }
  .hero-copy { max-width: 720px; }
  .hero-brand { width: min(720px,100%); min-height: 500px; }
}

@media (max-width: 650px) {
  .site-header .brand img { width: 150px; }
  .hero { min-height: auto; padding-top: 110px; }
  .hero h1 { font-size: 42px; }
  .hero-brand { min-height: 390px; margin-top: 12px; }
  .hero-logo-mark { top: 3px; right: 5px; width: 72px; height: 72px; padding: 10px; border-radius: 18px; }
  .dashboard-frame { width: 94%; border-width: 4px; transform: none; animation: dashboardFloatMobile 5s ease-in-out infinite; }
  .dashboard-frame > img { height: 320px; }
  .floating-product { width: 118px; padding: 7px 8px; }
  .floating-product img { height: 29px; }
  .float-neocontrol { left: 0; top: 22px; }
  .float-neotemp { right: 0; top: 82px; }
  .float-farmatemp { right: 18px; bottom: 0; }
}

@keyframes dashboardFloatMobile { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-6px); } }
@media (prefers-reduced-motion: reduce) { .dashboard-frame { animation: none; } }

/* NeoCodex 2026: lenguaje visual corporativo, limpio y orientado a producto */
:root {
  --ink: #081b3a;
  --muted: #64748b;
  --purple: #147dff;
  --purple-dark: #0751d8;
  --blue: #147dff;
  --paper: #f4f8fd;
  --line: #dbe5f1;
  --shadow: 0 24px 70px rgba(8, 34, 75, .12);
}

body { color: var(--ink); background: #f8fbff; }
.site-header { color: var(--ink); border-bottom: 1px solid rgba(219,229,241,.88); background: rgba(255,255,255,.88); box-shadow: 0 8px 28px rgba(8,31,67,.05); }
.site-header .brand { padding: 0; background: transparent; }
.site-header .brand img { width: 188px; }
.site-header.scrolled { color: var(--ink); background: rgba(255,255,255,.96); box-shadow: 0 14px 35px rgba(8,31,67,.1); }
.main-nav { gap: 30px; color: #31435f; }
.main-nav > a:hover { color: var(--blue); }
.main-nav .nav-call { padding: 11px 18px; border-radius: 10px; background: linear-gradient(135deg,#147dff,#0751d8); box-shadow: 0 9px 22px rgba(20,125,255,.24); }
.menu-toggle { background: var(--ink); }

.hero { order: 1; min-height: 735px; padding: 155px 0 95px; background: radial-gradient(circle at 86% 20%, rgba(36,143,255,.68), transparent 27%), linear-gradient(118deg,#03142e 0%,#062b5e 55%,#073f91 100%); }
.hero::before { opacity: .55; background-image: linear-gradient(rgba(116,190,255,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(116,190,255,.1) 1px,transparent 1px); background-size: 58px 58px; }
.hero::after { width: 820px; height: 820px; right: -290px; top: -110px; background: radial-gradient(circle,rgba(35,150,255,.3),transparent 65%); }
.hero-grid { grid-template-columns: .86fr 1.14fr; gap: 82px; }
.hero-copy { max-width: 650px; }
.hero .eyebrow { margin-bottom: 24px; padding: 8px 12px; border-color: rgba(116,190,255,.3); border-radius: 999px; color: #d7eaff; background: rgba(19,101,205,.18); font-size: 10px; font-weight: 800; letter-spacing: .08em; }
.hero .eyebrow::before { width: 7px; height: 7px; margin-right: 8px; background: #36d39a; box-shadow: 0 0 14px #36d39a; }
.hero h1 { max-width: 680px; font-size: clamp(50px,5.8vw,78px); letter-spacing: -.065em; line-height: .99; }
.hero h1 em { color: #4aa0ff; }
.hero-lead { max-width: 590px; margin-top: 28px; color: #c4d2e6; font-size: 17px; line-height: 1.75; }
.hero-actions { gap: 13px; margin-top: 36px; }
.button { min-height: 52px; border-radius: 10px; }
.button.primary, .hero .button.primary { background: linear-gradient(135deg,#218cff,#0759e1); box-shadow: 0 15px 30px rgba(4,81,209,.3); }
.button.secondary, .hero .button.secondary { border-color: rgba(194,216,244,.38); color: #eef6ff; background: rgba(255,255,255,.04); }
.button.secondary:hover { border-color: #66b0ff; background: rgba(255,255,255,.1); }
.hero-points { gap: 15px 26px; margin-top: 40px; color: #aebed3; font-size: 11px; }
.hero-points span::before { content: "✓"; display: inline-grid; place-items: center; width: 17px; height: 17px; margin-right: 7px; border: 1px solid rgba(76,161,255,.5); border-radius: 50%; color: #65b2ff; font-size: 9px; }
.hero-points b { color: #f7fbff; }

.hero-brand { min-height: 525px; }
.dashboard-frame { width: min(610px,94%); border-width: 6px; border-radius: 26px; box-shadow: 0 35px 90px rgba(0,0,0,.35),0 0 90px rgba(25,130,255,.2); }
.dashboard-bar { height: 40px; padding: 0 15px; background: #f1f6fc; }
.dashboard-bar span { color: #536782; font-size: 9px; letter-spacing: .02em; }
.dashboard-frame > img { height: 450px; }
.hero-logo-mark { top: 5px; right: -8px; width: 105px; height: 105px; border-color: rgba(125,198,255,.55); border-radius: 28px; box-shadow: 0 20px 45px rgba(0,0,0,.3),0 0 30px rgba(52,157,255,.22); }
.floating-product { width: 164px; padding: 12px 14px; border-color: rgba(186,218,250,.8); border-radius: 15px; box-shadow: 0 18px 42px rgba(1,19,50,.28); }
.floating-product img { height: 40px; }
.floating-product span { color: #59708e; font-size: 9px; letter-spacing: .02em; }
.float-neocontrol { left: -22px; top: 62px; }
.float-neotemp { right: -20px; top: 145px; }
.float-farmatemp { right: 20px; bottom: -4px; }

.trust-strip { order: 2; padding: 24px 0; border-bottom: 1px solid var(--line); background: #fff; }
.trust-grid { display: grid; grid-template-columns: 1.7fr repeat(3,1fr); gap: 25px; align-items: center; }
.trust-intro { display: flex; align-items: center; gap: 11px; color: #17345e; font-size: 13px; }
.trust-dot { width: 9px; height: 9px; flex: 0 0 auto; border-radius: 50%; background: #21c88a; box-shadow: 0 0 0 6px rgba(33,200,138,.12); }
.trust-stat { display: flex; align-items: center; gap: 11px; padding-left: 20px; border-left: 1px solid var(--line); }
.trust-stat b { color: var(--blue); font-size: 10px; letter-spacing: .1em; }
.trust-stat span { color: #63758e; font-size: 10px; font-weight: 700; }

.section { padding: 118px 0; }
.software { order: 3; color: var(--ink); background: #fff; }
.software::before { width: 700px; height: 700px; opacity: .8; background: radial-gradient(circle,rgba(30,137,255,.09),transparent 68%); }
.software-heading { max-width: 780px; margin: 0 0 50px; text-align: left; }
.software-heading .eyebrow { color: var(--blue); }
.software-heading h2 { max-width: 700px; font-size: clamp(40px,4.3vw,60px); }
.software-heading > p { max-width: 640px; color: var(--muted); font-size: 15px; }
.software-card-grid { gap: 22px; }
.software-card { border: 1px solid #dce6f2; border-radius: 18px; box-shadow: 0 12px 30px rgba(15,53,101,.07); }
.software-card { cursor: pointer; }
.software-card:focus-visible { outline: 3px solid rgba(20,125,255,.35); outline-offset: 4px; }
.software-card:hover { transform: translateY(-8px); border-color: #a9cdf5; box-shadow: 0 28px 60px rgba(15,70,135,.16); }
.software-card-logo { height: 98px; padding: 14px 26px; }
.software-card-photo { height: 218px; }
.software-card-content { padding: 27px; }
.software-card-content > span { color: var(--blue); letter-spacing: .12em; }
.software-card-content h3 { font-size: 24px; }
.software-card-content p { color: #697d96; line-height: 1.7; }
.software-card-content li { color: #42668e; background: #edf5ff; }
.software-card-content a { color: #126df0; }

.services { order: 4; background: #f4f8fd; }
.section-heading { grid-template-columns: 1.15fr .85fr; gap: 90px; align-items: start; margin-bottom: 48px; }
.section-heading h2 { max-width: 640px; font-size: clamp(40px,4.5vw,58px); }
.section-heading > p { padding-top: 34px; color: #657a95; font-size: 15px; line-height: 1.8; }
.service-grid { gap: 20px; }
.service-card { min-height: 390px; padding: 72px 32px 32px; border-color: #dce6f2; border-radius: 18px; box-shadow: 0 10px 28px rgba(24,66,117,.04); }
.service-card:hover { border-color: #aacdf4; box-shadow: 0 22px 48px rgba(24,66,117,.12); }
.service-card.featured { background: linear-gradient(150deg,#061d45,#0b4b9d); box-shadow: 0 20px 48px rgba(4,35,83,.2); }
.service-card .number { left: 32px; top: 27px; color: var(--blue); }
.service-card.featured .number { color: #75bbff; }
.service-card h3 { font-size: 25px; }
.service-card p { line-height: 1.7; }
.service-card > a { left: 32px; bottom: 29px; color: var(--blue); }

.about { order: 5; background: #fff; }
.about-grid { gap: 94px; }
.about-media > img { border-radius: 22px; box-shadow: 0 25px 60px rgba(14,51,97,.13); }
.about-media > .about-award-card { top: 22px; left: -18px; width: 220px; max-width: 220px; padding: 7px 9px 7px 7px; border-color: rgba(232,215,239,.8); border-radius: 12px; background: rgba(79,30,92,.78); box-shadow: 0 12px 24px rgba(44,17,57,.2); }
.about-media > .about-award-card { transition: transform .7s cubic-bezier(.2,.8,.2,1); transform-origin: left top; }
.about-media:hover > .about-award-card { transform: scale(1.025); }
.about-copy .lead { max-width: 520px; color: #617692; line-height: 1.8; }
.values { margin-top: 34px; }
.values > div { padding: 17px 0; border-color: #e1e9f2; }
.values b { color: var(--blue); }
.values span { color: #6a7e96; line-height: 1.5; }
.values strong { color: var(--ink); }

.contact { order: 6; padding-top: 30px; background: #fff; }
.contact-card { position: relative; overflow: hidden; gap: 75px; padding: 70px; border-radius: 30px; background: radial-gradient(circle at 90% 10%,rgba(39,147,255,.44),transparent 28%),linear-gradient(135deg,#03142e,#073b83); box-shadow: 0 30px 70px rgba(5,42,95,.2); }
.contact-card::after { content: ""; position: absolute; width: 300px; height: 300px; right: -150px; bottom: -160px; border: 1px solid rgba(140,204,255,.2); border-radius: 50%; box-shadow: 0 0 0 35px rgba(140,204,255,.06),0 0 0 70px rgba(140,204,255,.04); }
.contact-copy, .contact-form { position: relative; z-index: 1; }
.contact-copy h2 { font-size: clamp(42px,4.4vw,60px); }
.contact-copy > p:not(.eyebrow) { max-width: 460px; color: #c4d5eb; line-height: 1.75; }
.contact-links { gap: 0; margin-top: 38px; }
.contact-links a { border-color: rgba(191,221,255,.18); }
.contact-links small { color: #82b9ee; }
.contact-form { border: 1px solid #d9e6f5; box-shadow: 0 25px 50px rgba(0,0,0,.18); }
.contact-form input:focus, .contact-form textarea:focus, .contact-form select:focus { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(20,125,255,.1); }

.site-footer { color: #b8cbe4; border-top: 0; background: #03142e; }
.footer-main img { width: 205px; padding: 8px 11px; border-radius: 8px; background: #fff; }
.footer-main p { color: #89a4c4; }
.footer-main nav { color: #d6e5f7; }
.footer-bottom { border-color: rgba(185,213,242,.16); color: #7893b4; }
.footer-bottom a { color: #b2c9e4; }

@media (max-width: 980px) {
  .hero-grid { gap: 45px; }
  .trust-grid { grid-template-columns: 1fr 1fr; }
  .trust-intro { grid-column: 1/-1; }
  .trust-stat:nth-child(3) { border-left: 0; }
  .section-heading { gap: 35px; }
  .section-heading > p { padding-top: 20px; }
}

@media (max-width: 650px) {
  .site-header .brand img { width: 158px; }
  .hero { padding: 112px 0 70px; }
  .hero h1 { font-size: 44px; }
  .hero-lead { font-size: 15px; }
  .hero-brand { min-height: 395px; }
  .hero-logo-mark { top: 0; right: 2px; width: 76px; height: 76px; }
  .float-neocontrol { left: -2px; top: 22px; }
  .float-neotemp { right: -2px; top: 90px; }
  .float-farmatemp { right: 12px; bottom: -2px; }
  .trust-strip { padding: 20px 0; }
  .trust-grid { grid-template-columns: 1fr 1fr; gap: 17px 12px; }
  .trust-stat { padding-left: 12px; }
  .trust-stat span { font-size: 9px; }
  .trust-stat:nth-child(3) { border-left: 1px solid var(--line); }
  .section { padding: 78px 0; }
  .software-heading { margin-bottom: 32px; }
  .software-heading h2, .section-heading h2 { font-size: 39px; }
  .section-heading { gap: 8px; }
  .section-heading > p { padding-top: 0; }
  .contact { padding-top: 0; }
  .contact-card { padding: 32px 20px; }
}

/* Carrusel principal de productos */
.product-carousel { overflow: hidden; }
.product-carousel .dashboard-bar small { margin-left: auto; color: #6d83a0; font-size: 9px; font-weight: 800; letter-spacing: .08em; }
.carousel-track { position: relative; height: 450px; }
.carousel-slide { position: relative; display: none; height: 450px; overflow: hidden; background: #eaf2fb; }
.carousel-slide.active { display: block; animation: carouselIn .55s ease both; }
.carousel-slide-head { position: absolute; z-index: 2; inset: 15px 16px auto; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 11px; border: 1px solid rgba(213,226,241,.88); border-radius: 9px; background: rgba(255,255,255,.9); box-shadow: 0 8px 20px rgba(20,54,95,.08); }
.carousel-slide-head img { width: 105px; height: 29px; object-fit: contain; }
.carousel-slide-head span { color: #6b7f99; font-size: 9px; font-weight: 800; }
.carousel-image { width: 100%; height: 100%; object-fit: cover; object-position: top center; }
.carousel-image.contain { padding: 48px 22px 70px; object-fit: contain; background: #f2f7fc; }
.carousel-caption { position: absolute; z-index: 2; inset: auto 0 0; display: grid; gap: 3px; padding: 48px 18px 17px; color: #fff; background: linear-gradient(transparent,rgba(4,22,50,.9)); }
.carousel-caption strong { font-size: 16px; letter-spacing: -.02em; }
.carousel-caption span { color: #d1e0f1; font-size: 10px; }
.carousel-controls { height: 52px; display: flex; align-items: center; justify-content: space-between; padding: 0 13px; border-top: 1px solid #dce7f3; background: #f8fbff; }
.carousel-controls > button { display: grid; place-items: center; width: 28px; height: 28px; padding: 0; border: 1px solid #cbdced; border-radius: 8px; color: #1d5faa; background: #fff; font-size: 14px; cursor: pointer; transition: .2s; }
.carousel-controls > button:hover { color: #fff; border-color: #147dff; background: #147dff; }
.carousel-dots { display: flex; align-items: center; gap: 7px; }
.carousel-dots button { width: 7px; height: 7px; padding: 0; border: 0; border-radius: 50%; background: #c4d5e8; cursor: pointer; transition: .2s; }
.carousel-dots button.active { width: 20px; border-radius: 999px; background: #147dff; }
@keyframes carouselIn { from { opacity: 0; transform: translateX(16px); } to { opacity: 1; transform: none; } }

@media (max-width: 650px) {
  .carousel-track, .carousel-slide { height: 320px; }
  .carousel-slide-head { inset: 10px 10px auto; padding: 6px 8px; }
  .carousel-slide-head img { width: 88px; height: 25px; }
  .carousel-slide-head span { font-size: 8px; }
  .carousel-image.contain { padding: 40px 12px 55px; }
  .carousel-caption { padding: 40px 12px 12px; }
  .carousel-caption strong { font-size: 13px; }
  .carousel-caption span { font-size: 8px; }
  .carousel-controls { height: 48px; padding: 0 9px; }
}

@media (prefers-reduced-motion: reduce) {
  .carousel-slide.active { animation: none; }
}

/* Logotipo oficial de NeoCodex: se usa la imagen entregada, sin redibujarla. */
.site-header .brand img { width: 150px; height: 68px; object-fit: contain; }
.footer-main img { width: 170px; height: 92px; padding: 8px 11px; object-fit: contain; background: #fff; border-radius: 8px; }
.demo-time-picker{display:grid;grid-template-columns:minmax(145px,.9fr) auto minmax(130px,1fr);align-items:center;gap:8px}.demo-time-picker select,.demo-time-picker input{width:100%!important;min-width:0}.demo-time-picker select{padding-right:27px!important}.demo-time-or{color:#8298aa;font-size:9px;font-weight:750;text-align:center;white-space:nowrap}.demo-dialog .demo-time-picker input{padding-inline:10px!important}.demo-dialog .demo-time-picker+ .demo-field-note{margin-top:1px}@media(max-width:700px){.demo-time-picker{grid-template-columns:1fr auto 1fr;gap:6px}.demo-time-or{font-size:8px}.demo-dialog .demo-time-picker input,.demo-dialog .demo-time-picker select{font-size:10px;padding-inline:8px!important}}
.site-footer{position:relative;overflow:hidden;padding:72px 0 24px!important;border-top:1px solid rgba(142,198,255,.18)!important;color:#c7d9ee!important;background:linear-gradient(145deg,#03142e 0%,#062d59 58%,#064a76 100%)!important}.site-footer::before{content:"";position:absolute;width:470px;height:470px;right:-180px;top:-300px;border:1px solid rgba(112,213,255,.2);border-radius:50%;box-shadow:0 0 0 35px rgba(112,213,255,.035),0 0 0 75px rgba(112,213,255,.025)}.site-footer::after{content:"";position:absolute;bottom:-190px;left:-150px;width:360px;height:360px;border-radius:50%;background:radial-gradient(circle,rgba(20,125,255,.2),transparent 68%)}.site-footer .footer-main{position:relative;z-index:1;display:grid!important;grid-template-columns:minmax(260px,1.35fr) minmax(150px,.7fr) minmax(230px,.9fr);gap:48px;align-items:start}.footer-brand-block{display:grid;gap:14px}.footer-logo-frame{display:inline-flex;align-items:center;justify-content:center;width:220px;height:96px;padding:9px 15px;border:1px solid rgba(160,215,255,.32);border-radius:17px;background:linear-gradient(135deg,#dff7ff,#9bd1f3);box-shadow:0 18px 42px rgba(0,0,0,.2)}.site-footer .footer-logo-frame img{width:100%;height:100%;padding:0;object-fit:contain;background:transparent;border-radius:0}.footer-brand-block>p{max-width:300px;margin:0;color:#a9c2dc!important;font-size:12px!important;line-height:1.65}.footer-status{display:flex;align-items:center;gap:8px;color:#80d9ed;font-size:10px;font-weight:750}.footer-status i{width:7px;height:7px;border-radius:50%;background:#35d29c;box-shadow:0 0 0 4px rgba(53,210,156,.14)}.footer-heading{display:block;margin:5px 0 16px;color:#fff;font-size:10px;font-weight:900;letter-spacing:.14em;text-transform:uppercase}.site-footer .footer-links-group nav{display:grid;gap:10px;color:#b7cde4;font-size:11px;font-weight:650}.site-footer .footer-links-group nav a,.site-footer .footer-contact a{transition:color .2s ease,transform .2s ease}.site-footer .footer-links-group nav a:hover,.site-footer .footer-contact a:hover{color:#70ddf5;transform:translateX(3px)}.footer-contact{display:grid;align-content:start;gap:10px}.site-footer .footer-contact>a:not(.footer-demo-link){color:#d9eafa;font-size:12px;font-weight:750}.site-footer .footer-contact>a:not(.footer-demo-link)+a:not(.footer-demo-link){color:#9ebbd7;font-size:10px;font-weight:550}.footer-demo-link{display:inline-flex!important;align-items:center;justify-content:space-between;gap:12px;width:max-content;min-width:185px;margin-top:8px;padding:10px 13px;border:1px solid rgba(112,221,245,.5);border-radius:10px;color:#04234b!important;background:linear-gradient(135deg,#79e0f2,#a4eaff);font-size:10px;font-weight:900!important;box-shadow:0 10px 24px rgba(0,0,0,.15)}.footer-demo-link:hover{color:#04234b!important;transform:translateY(-2px)!important;box-shadow:0 14px 28px rgba(0,0,0,.22)}.site-footer .footer-bottom{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;margin-top:55px;padding-top:18px;border-top:1px solid rgba(185,213,242,.18)!important;color:#86a4c4!important;font-size:9px}.site-footer .footer-bottom div{display:flex;gap:18px}.site-footer .footer-bottom a{color:#b9d1e8}.site-footer .footer-bottom a:hover{color:#70ddf5}@media(max-width:800px){.site-footer{padding-top:55px!important}.site-footer .footer-main{grid-template-columns:1fr 1fr;gap:35px 25px}.footer-brand-block{grid-column:1/-1}.site-footer .footer-bottom{align-items:flex-start;flex-direction:column;gap:16px}}@media(max-width:520px){.site-footer .footer-main{grid-template-columns:1fr}.footer-brand-block{grid-column:auto}.footer-logo-frame{width:205px;height:88px}.site-footer .footer-bottom div{flex-wrap:wrap;gap:10px 16px}.footer-demo-link{width:100%}}

/* Capa de movimiento moderna: sutil, fluida y sin interferir con la lectura. */
.reveal { transition-delay: var(--delay, 0ms); }
.hero::before { animation: neoGridDrift 18s linear infinite; }
.hero::after { animation: neoOrbPulse 8s ease-in-out infinite; }
.hero-brand { transform: translate3d(calc(var(--mouse-x, 0px) * .35), calc(var(--mouse-y, 0px) * .35), 0); transition: transform .45s cubic-bezier(.2,.8,.2,1); }
.hero-copy .eyebrow { animation: neoFadeUp .8s .08s both; }
.hero-copy h1 { animation: neoFadeUp .8s .16s both; }
.hero-copy .hero-lead { animation: neoFadeUp .8s .24s both; }
.hero-copy .hero-actions { animation: neoFadeUp .8s .32s both; }
.hero-copy .hero-points { animation: neoFadeUp .8s .4s both; }
.dashboard-frame { animation: dashboardFloat 6s ease-in-out infinite, neoFrameGlow 4s ease-in-out infinite alternate; }
.button.primary { position: relative; overflow: hidden; isolation: isolate; }
.button.primary::after { content: ""; position: absolute; z-index: -1; inset: 0 auto 0 -80%; width: 55%; background: linear-gradient(100deg, transparent, rgba(255,255,255,.42), transparent); transform: skewX(-18deg); transition: left .6s ease; }
.button.primary:hover::after { left: 125%; }
.software-card, .service-card, .values > div { transition: transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .35s ease, border-color .35s ease; }
.software-card { position: relative; }
.software-card:hover { transform: translateY(-10px) rotateX(1deg); }
.software-card::before { content: ""; position: absolute; z-index: 2; inset: 0 auto 0 -120%; width: 70%; pointer-events: none; background: linear-gradient(100deg, transparent, rgba(255,255,255,.5), transparent); transform: skewX(-16deg); transition: left .7s ease; }
.software-card:hover::before { left: 135%; }
.software-card-photo { transition: transform .55s cubic-bezier(.2,.8,.2,1), filter .55s ease; }
.software-card:hover .software-card-photo { transform: scale(1.045); filter: saturate(1.08); }
.service-card:hover { transform: translateY(-8px) scale(1.01); }
.service-card::after { content: ""; position: absolute; left: 30px; right: 30px; bottom: 0; height: 3px; border-radius: 999px; background: linear-gradient(90deg,#1472ff,#52d6ff); transform: scaleX(0); transform-origin: left; transition: transform .4s ease; }
.service-card:hover::after { transform: scaleX(1); }
.trust-stat { transition: transform .3s ease, background .3s ease; }
.trust-stat:hover { transform: translateY(-4px); }
.values > div:hover { padding-left: 10px; border-color: #a9cdf5; transform: translateX(5px); }
.contact-card::before { content: ""; position: absolute; width: 420px; height: 420px; right: 10%; top: -280px; border: 1px solid rgba(151,214,255,.22); border-radius: 50%; box-shadow: 0 0 0 30px rgba(151,214,255,.05), 0 0 0 60px rgba(151,214,255,.035); animation: neoRingFloat 9s ease-in-out infinite; }
.carousel-slide.active .carousel-image { animation: carouselKenBurns 5.2s ease-out both; }
.carousel-slide-head { animation: neoFadeUp .55s .08s both; }
.carousel-caption { animation: neoFadeUp .65s .18s both; }
@keyframes neoFadeUp { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@keyframes neoGridDrift { from { background-position: 0 0, 0 0; } to { background-position: 48px 48px, 48px 48px; } }
@keyframes neoOrbPulse { 0%,100% { transform: scale(1); opacity: .7; } 50% { transform: scale(1.08); opacity: 1; } }
@keyframes neoFrameGlow { from { box-shadow: 0 35px 80px rgba(0,0,0,.38), 0 0 70px rgba(24,112,255,.18); } to { box-shadow: 0 38px 90px rgba(0,0,0,.42), 0 0 105px rgba(24,138,255,.28); } }
@keyframes neoRingFloat { 50% { transform: translate(-25px, 22px) scale(1.06); } }
@keyframes carouselKenBurns { from { transform: scale(1); } to { transform: scale(1.045); } }

@media (prefers-reduced-motion: reduce) {
  .hero::before, .hero::after, .hero-copy .eyebrow, .hero-copy h1, .hero-copy .hero-lead, .hero-copy .hero-actions, .hero-copy .hero-points, .dashboard-frame, .contact-card::before, .carousel-slide.active .carousel-image { animation: none; }
  .hero-brand { transform: none; transition: none; }
  .software-card, .service-card, .values > div, .software-card-photo { transition: none; }
  .button.primary::after, .software-card::before { display: none; }
}

/* Galería de imágenes dentro de cada tarjeta de producto. */
.software-photo-carousel { position: relative; height: 218px; overflow: hidden; background: #edf4fb; }
.software-photo-carousel .software-card-photo-slide { display: none; position: absolute; inset: 0; width: 100%; height: 100%; }
.software-photo-carousel .software-card-photo-slide.active { display: block; animation: carouselIn .55s ease both; }
.software-photo-carousel .software-card-photo-slide.contain { padding: 10px; object-fit: contain; }
.software-photo-arrow { position: absolute; z-index: 3; top: 50%; display: grid; place-items: center; width: 30px; height: 30px; padding: 0; border: 1px solid rgba(255,255,255,.8); border-radius: 50%; color: #0b4b9d; background: rgba(255,255,255,.92); box-shadow: 0 6px 16px rgba(4,35,83,.18); opacity: 0; transform: translateY(-50%); transition: opacity .25s, transform .25s, background .25s; }
.software-photo-arrow.previous { left: 10px; }
.software-photo-arrow.next { right: 10px; }
.software-photo-carousel:hover .software-photo-arrow, .software-photo-arrow:focus-visible { opacity: 1; }
.software-photo-arrow:hover { color: #fff; background: #1472ff; transform: translateY(-50%) scale(1.08); }
.software-photo-dots { position: absolute; z-index: 3; left: 50%; bottom: 10px; display: flex; gap: 5px; transform: translateX(-50%); }
.software-photo-dots button { width: 6px; height: 6px; padding: 0; border: 0; border-radius: 50%; background: rgba(255,255,255,.7); box-shadow: 0 1px 4px rgba(0,0,0,.25); transition: width .25s, background .25s; }
.software-photo-dots button.active { width: 18px; border-radius: 999px; background: #1472ff; }
@media (max-width: 650px) { .software-photo-carousel { height: 225px; } .software-photo-arrow { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .software-photo-carousel .software-card-photo-slide.active { animation: none; } .software-photo-arrow, .software-photo-dots button { transition: none; } }

/* Interacción avanzada: profundidad, foco y ritmo visual sin perder claridad. */
.scroll-progress { position: fixed; z-index: 220; inset: 0 auto auto 0; width: 100%; height: 3px; pointer-events: none; background: linear-gradient(90deg,#28c9ff,#147dff 58%,#7a5cff); transform: scaleX(var(--scroll-progress,0)); transform-origin: left center; box-shadow: 0 0 14px rgba(40,174,255,.62); }
.cursor-glow { position: fixed; z-index: 0; inset: 0; pointer-events: none; opacity: 0; background: radial-gradient(420px circle at var(--cursor-x,50%) var(--cursor-y,20%),rgba(65,163,255,.09),transparent 68%); transition: opacity .4s ease; }
.has-cursor-glow .cursor-glow { opacity: 1; }
.site-header,.hero,.trust-strip,.section,.site-footer { position: relative; z-index: 1; }
.main-nav > a { position: relative; transition: color .25s ease, background .25s ease, transform .25s ease; }
.main-nav > a:not(.nav-call)::after { content: ""; position: absolute; left: 10px; right: 10px; bottom: 1px; height: 2px; border-radius: 999px; background: var(--blue); transform: scaleX(0); transform-origin: center; transition: transform .25s ease; }
.main-nav > a:not(.nav-call):hover { transform: translateY(-1px); }
.main-nav > a.active { color: var(--blue); }
.main-nav > a.active::after { transform: scaleX(1); }
.nav-call { position: relative; overflow: hidden; display: inline-flex; align-items: center; gap: 9px; }
.main-nav > .nav-whatsapp,.main-nav > .nav-call{position:relative;display:inline-flex;align-items:center;gap:9px;padding:10px 15px;border-radius:12px;color:#fff!important;box-shadow:0 9px 22px rgba(20,125,255,.2)}.main-nav > .nav-whatsapp{background:linear-gradient(135deg,#20c979,#079b62)}.main-nav > .nav-call{background:linear-gradient(135deg,#147dff,#0751d8)}.main-nav > .nav-whatsapp small,.main-nav > .nav-whatsapp strong,.main-nav > .nav-call small,.main-nav > .nav-call strong{display:block;line-height:1.1}.main-nav > .nav-whatsapp small,.main-nav > .nav-call small{margin-bottom:3px;font-size:8px;font-weight:750;letter-spacing:.08em;text-transform:uppercase;opacity:.82}.main-nav > .nav-whatsapp strong,.main-nav > .nav-call strong{font-size:12px;white-space:nowrap}.nav-whatsapp-icon{display:grid;place-items:center;width:27px;height:27px;border:1px solid rgba(255,255,255,.38);border-radius:9px;background:rgba(255,255,255,.14)}.whatsapp-mark{display:block;width:21px;height:21px}.whatsapp-contact-icon{color:#fff;background:#20c979}.contact-whatsapp-action .whatsapp-mark{width:22px;height:22px}.main-nav > .nav-whatsapp::after{display:none!important}.main-nav > .nav-whatsapp:hover,.main-nav > .nav-call:hover{transform:translateY(-2px);filter:brightness(1.06)}
.nav-call-icon { position: relative; z-index: 1; display: grid; place-items: center; width: 27px; height: 27px; border: 1px solid rgba(255,255,255,.35); border-radius: 9px; color: currentColor; background: rgba(255,255,255,.12); font-size: 16px; line-height: 1; }
.nav-call > span:last-child { position: relative; z-index: 1; }
.nav-call::before { content: ""; position: absolute; inset: 0; background: linear-gradient(105deg,transparent 20%,rgba(255,255,255,.28),transparent 70%); transform: translateX(-120%); transition: transform .65s ease; }
.nav-call:hover::before { transform: translateX(120%); }
.hero-copy > * { position: relative; z-index: 1; }
.hero-points span { transition: color .25s ease, transform .25s ease; }
.hero-points span:hover { color: #e7f3ff; transform: translateX(4px); }
.dashboard-frame { transform: perspective(1100px) rotateY(calc(-5deg + var(--mouse-x,0px) * .08)) rotateX(calc(2deg - var(--mouse-y,0px) * .06)); transform-style: preserve-3d; }
.dashboard-frame::after { content: ""; position: absolute; z-index: 4; inset: 0; pointer-events: none; background: linear-gradient(115deg,transparent 25%,rgba(255,255,255,.1) 45%,transparent 62%); transform: translateX(-110%); animation: frameShine 7s ease-in-out infinite; }
.trust-strip { box-shadow: 0 12px 34px rgba(9,48,97,.05); }
.trust-stat { position: relative; min-height: 34px; }
.trust-stat::after { content: ""; position: absolute; left: 20px; right: 0; bottom: -11px; height: 2px; border-radius: 99px; background: linear-gradient(90deg,var(--blue),transparent); transform: scaleX(0); transform-origin: left; transition: transform .4s ease; }
.trust-stat:hover::after { transform: scaleX(1); }
.software-card,.service-card { transform-style: preserve-3d; will-change: transform; }
.software-card:hover { transform: perspective(900px) rotateX(var(--tilt-y,0deg)) rotateY(var(--tilt-x,0deg)) translateY(-10px); }
.service-card:hover { transform: perspective(900px) rotateX(var(--tilt-y,0deg)) rotateY(var(--tilt-x,0deg)) translateY(-8px) scale(1.01); }
.software-card::after { content: ""; position: absolute; z-index: 3; left: 0; right: 0; top: 0; height: 3px; border-radius: 18px 18px 0 0; background: linear-gradient(90deg,#147dff,#32c8ff,#7a5cff); transform: scaleX(0); transform-origin: left; transition: transform .45s ease; }
.software-card:hover::after { transform: scaleX(1); }
.software-card-content a { display: inline-flex; align-items: center; gap: 7px; transition: gap .25s ease, color .25s ease; }
.software-card-content a:hover { gap: 12px; }
.software-photo-carousel { isolation: isolate; }
.software-photo-carousel::after { content: ""; position: absolute; z-index: 1; inset: auto 0 0; height: 32%; pointer-events: none; background: linear-gradient(transparent,rgba(3,25,61,.18)); }
.software-photo-arrow,.software-photo-dots { z-index: 4; }
.service-card .number { display: inline-grid; place-items: center; width: 32px; height: 32px; border: 1px solid currentColor; border-radius: 50%; }
.service-card { overflow: hidden; }
.service-card::before { content: ""; position: absolute; width: 180px; height: 180px; right: -95px; top: -95px; border: 1px solid rgba(20,125,255,.14); border-radius: 50%; box-shadow: 0 0 0 18px rgba(20,125,255,.035),0 0 0 38px rgba(20,125,255,.025); transition: transform .5s ease; }
.service-card:hover::before { transform: scale(1.14) rotate(20deg); }
.about-media > img { transition: transform .7s cubic-bezier(.2,.8,.2,1), filter .7s ease; }
.about-media:hover > img { transform: scale(1.025); filter: saturate(1.08) contrast(1.03); }
.contact-form { transition: transform .4s ease, box-shadow .4s ease; }
.contact-form:focus-within { transform: translateY(-5px); box-shadow: 0 30px 65px rgba(0,0,0,.22); }
.contact-form .button { transition: transform .25s ease, box-shadow .25s ease, filter .25s ease; }
.contact-form .button:hover { filter: brightness(1.08); }
@keyframes frameShine { 0%,55% { transform: translateX(-110%); } 72%,100% { transform: translateX(115%); } }

@media (max-width: 980px) {
  .main-nav > a:not(.nav-call)::after { left: 9px; right: auto; bottom: 3px; width: 34px; }
  .dashboard-frame { transform: none; }
}

@media (max-width: 650px) {
  .scroll-progress { height: 2px; }
  .main-nav > a.active { background: #edf5ff; border-radius: 9px; }
  .main-nav > a:not(.nav-call)::after { display: none; }
  .trust-stat::after { left: 12px; }
  .software-card:hover,.service-card:hover { transform: translateY(-5px); }
}

@media (prefers-reduced-motion: reduce) {
  .scroll-progress { box-shadow: none; }
  .dashboard-frame,.dashboard-frame::after,.software-card,.service-card,.about-media > img,.contact-form { transform: none!important; animation: none!important; transition: none!important; }
  .software-card::after,.service-card::before,.trust-stat::after { transition: none; }
}
@media (prefers-reduced-motion: reduce) {
  .about-media > .about-award-card { transition: none!important; transform: none!important; }
}

.software-fit-note{position:relative;display:flex;align-items:center;justify-content:space-between;gap:30px;margin-top:28px;padding:24px 26px;overflow:hidden;border:1px solid #cfe2f7;border-radius:18px;background:linear-gradient(110deg,#f3f8ff,#fff 58%,#eef8ff);box-shadow:0 15px 35px rgba(12,74,145,.07)}.software-fit-note::after{content:"";position:absolute;width:220px;height:220px;right:-105px;top:-145px;border:1px solid rgba(20,125,255,.18);border-radius:50%;box-shadow:0 0 0 20px rgba(20,125,255,.04),0 0 0 42px rgba(20,125,255,.025);animation:fitRing 8s ease-in-out infinite}.software-fit-note>div{position:relative;z-index:1;display:flex;align-items:flex-start;gap:15px}.software-fit-icon{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;border-radius:12px;color:#fff;background:linear-gradient(135deg,#147dff,#0751d8);box-shadow:0 8px 18px rgba(20,125,255,.23)}.software-fit-note strong{display:block;color:#0a2d5d;font-size:15px;letter-spacing:-.02em}.software-fit-note p{max-width:680px;margin:5px 0 0;color:#607793;font-size:11px;line-height:1.65}.software-fit-note>a{position:relative;z-index:1;flex:0 0 auto;color:#075bd8;border-color:#b9d5f4;background:#fff;white-space:nowrap}.software-fit-note>a:hover{color:#fff;background:#147dff;border-color:#147dff}@keyframes fitRing{50%{transform:translate(-20px,18px) scale(1.08)}}
@media(max-width:700px){.software-fit-note{align-items:flex-start;flex-direction:column;padding:20px}.software-fit-note>a{width:100%}}
@media(prefers-reduced-motion:reduce){.software-fit-note::after{animation:none}}

/* El menú permanece visible durante todo el desplazamiento. */
.site-header{position:fixed!important;z-index:100;inset:0 0 auto;isolation:isolate;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.site-header.scrolled{box-shadow:0 14px 35px rgba(8,31,67,.12)}
.news-board-section{position:relative;overflow:hidden;background:linear-gradient(145deg,#f5f9ff,#fff 62%,#eef7ff)}.news-board-section::before{content:"";position:absolute;width:360px;height:360px;right:-150px;top:-170px;border:1px solid rgba(20,125,255,.14);border-radius:50%;box-shadow:0 0 0 34px rgba(20,125,255,.035),0 0 0 70px rgba(20,125,255,.025);animation:newsRingFloat 10s ease-in-out infinite}.news-board-heading{position:relative;z-index:1}.news-board-heading h2{max-width:620px}.news-board{position:relative;z-index:1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.news-card{overflow:hidden;border:1px solid #d8e5f1;border-radius:20px;background:rgba(255,255,255,.9);box-shadow:0 14px 35px rgba(11,63,124,.07);transition:transform .35s ease,box-shadow .35s ease,border-color .35s ease}.news-card:hover{transform:translateY(-8px);border-color:#9fc9ee;box-shadow:0 24px 50px rgba(11,63,124,.14)}.news-card-media{position:relative;height:190px;overflow:hidden;background:linear-gradient(135deg,#dceeff,#f8fbff)}.news-card-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 54%,rgba(3,28,67,.3))}.news-card-media img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}.news-card:hover .news-card-media img{transform:scale(1.06)}.news-pin{position:absolute;z-index:1;top:14px;right:14px;display:grid;place-items:center;width:32px;height:32px;border:1px solid rgba(255,255,255,.5);border-radius:10px;color:#fff;background:rgba(7,55,119,.72);box-shadow:0 8px 18px rgba(3,28,67,.2)}.news-card-body{padding:21px 22px 24px}.news-card-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px;color:#67809c;font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.08em}.news-card-meta span{color:#116ede}.news-card-meta time{white-space:nowrap}.news-card h3{margin:0 0 10px;color:#09224a;font-size:20px;line-height:1.15;letter-spacing:-.035em}.news-card p{margin:0;color:#647b95;font-size:12px;line-height:1.7}.news-board-empty{grid-column:1/-1;padding:35px;border:1px dashed #bfd5e8;border-radius:17px;color:#66809a;background:#fff;text-align:center}@keyframes newsRingFloat{50%{transform:translate(-18px,14px) scale(1.06)}}
@media(max-width:900px){.news-board{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.news-board{grid-template-columns:1fr}.news-card-media{height:210px}.news-card-body{padding:19px}.news-board-section::before{right:-230px}}
@media(prefers-reduced-motion:reduce){.news-board-section::before{animation:none}.news-card,.news-card-media img{transition:none}.news-card:hover{transform:none}.news-card:hover .news-card-media img{transform:none}}
/* El tablón se muestra después de servicios. */
.news-board-section{order:6;padding:68px 0 76px}.news-board-section .section-heading{margin-bottom:28px}.news-board-section .section-heading h2{font-size:clamp(32px,3.7vw,48px)}.news-board{gap:14px}.news-card{border-radius:15px}.news-card-media{height:132px}.news-card-body{padding:16px 17px 18px}.news-card-meta{margin-bottom:9px;font-size:8px}.news-card h3{margin-bottom:7px;font-size:17px}.news-card p{font-size:11px;line-height:1.55}
@media(max-width:700px){.news-board-section{padding:58px 0 64px}.news-board-section .section-heading{margin-bottom:22px}.news-card-media{height:155px}}
.reviews-section{order:7;background:#fff}.reviews-heading{margin-bottom:28px}.reviews-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.review-card{position:relative;display:flex;flex-direction:column;min-height:230px;padding:25px;border:1px solid #dbe7f2;border-radius:18px;background:linear-gradient(145deg,#fff,#f5f9fd);box-shadow:0 12px 30px rgba(8,51,102,.06);transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease}.review-card::before{content:"“";position:absolute;top:11px;right:20px;color:#d8eaff;font-family:Georgia,serif;font-size:58px;line-height:1}.review-card:hover{transform:translateY(-5px);border-color:#a9cdee;box-shadow:0 20px 42px rgba(8,51,102,.11)}.review-stars{margin-bottom:16px;color:#147dff;font-size:16px;letter-spacing:2px}.review-card p{position:relative;z-index:1;margin:0;color:#526b83;font-size:13px;line-height:1.75}.review-card footer{display:grid;gap:4px;margin-top:auto;padding-top:20px}.review-card footer strong{color:#102d4e;font-size:12px}.review-card footer span{color:#8294a5;font-size:10px}.reviews-board-empty{grid-column:1/-1;padding:32px;border:1px dashed #bfd5e8;border-radius:17px;color:#66809a;background:#f8fbfe;text-align:center}@media(max-width:900px){.reviews-board{grid-template-columns:1fr 1fr}}@media(max-width:700px){.reviews-section{padding-top:68px}.reviews-board{grid-template-columns:1fr}.review-card{min-height:0;padding:21px}.review-card:hover{transform:none}}@media(prefers-reduced-motion:reduce){.review-card{transition:none}.review-card:hover{transform:none}}
.review-submit-card{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);gap:34px;align-items:start;margin-top:24px;padding:28px;border:1px solid #d6e5f2;border-radius:20px;background:linear-gradient(135deg,#f5f9ff,#fff 62%,#eef7ff);box-shadow:0 15px 35px rgba(8,51,102,.07)}.review-submit-copy h3{margin:6px 0 10px;color:#0a2d5d;font-size:clamp(24px,2.8vw,34px);letter-spacing:-.04em}.review-submit-copy>p:last-child{max-width:430px;margin:0;color:#647b95;font-size:12px;line-height:1.7}.review-form{padding:20px;border:1px solid #dbe7f2;border-radius:16px;background:rgba(255,255,255,.86)}.review-form label{display:grid;gap:6px;margin-bottom:12px;color:#526475;font-size:10px;font-weight:850}.review-form input,.review-form textarea,.review-form select{width:100%;padding:11px 12px;border:1px solid #cfdee9;border-radius:9px;color:#102d4e;background:#fff;outline:0;font:inherit;font-weight:500}.review-form textarea{resize:vertical;min-height:105px}.review-form input:focus,.review-form textarea:focus,.review-form select:focus{border-color:#147dff;box-shadow:0 0 0 3px rgba(20,125,255,.1)}.review-form .field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.review-form-safe{align-self:end;margin:0 0 18px;color:#147dff;font-size:10px;font-weight:800}.review-form .button{margin-top:2px}.review-form .button:disabled{opacity:.62;cursor:wait}.review-form p{margin:11px 0 0;color:#7890a4;font-size:10px;line-height:1.5}.review-form p.success{color:#158657}.review-form p.error{color:#bd3e3e}.review-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}.review-submit-card .eyebrow{margin:0;color:#147dff}@media(max-width:800px){.review-submit-card{grid-template-columns:1fr;gap:20px;padding:21px}.review-form .field-row{grid-template-columns:1fr}.review-form-safe{align-self:auto;margin:0 0 12px}}@media(prefers-reduced-motion:reduce){.review-submit-card{transition:none}}
.review-submit-cta{display:flex;align-items:center;justify-content:space-between;gap:30px;margin-top:24px;padding:26px 30px;border:1px solid #d6e5f2;border-radius:20px;background:linear-gradient(135deg,#f5f9ff,#fff 62%,#eef7ff);box-shadow:0 15px 35px rgba(8,51,102,.07)}.review-submit-cta h3{margin:6px 0 8px;color:#0a2d5d;font-size:clamp(24px,2.8vw,34px);letter-spacing:-.04em}.review-submit-cta p:last-child{max-width:600px;margin:0;color:#647b95;font-size:12px;line-height:1.7}.review-submit-cta .eyebrow{margin:0;color:#147dff}.public-review-modal{position:fixed;inset:0;z-index:120;display:grid;place-items:center;padding:22px}.public-review-modal.hidden{display:none}.public-review-backdrop{position:absolute;inset:0;background:rgba(4,24,50,.66);backdrop-filter:blur(7px)}.public-review-dialog{position:relative;width:min(680px,100%);max-height:calc(100vh - 44px);overflow:auto;padding:28px;border:1px solid #d6e5f2;border-radius:22px;background:#fff;box-shadow:0 30px 80px rgba(4,24,50,.3);animation:publicReviewIn .2s ease both}.public-review-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:18px}.public-review-heading h3{margin:6px 0 5px;color:#0a2d5d;font-size:28px;letter-spacing:-.04em}.public-review-heading p:last-child{margin:0;color:#647b95;font-size:11px;line-height:1.55}.public-review-close{display:grid;place-items:center;width:36px;height:36px;border:0;border-radius:10px;color:#526b83;background:#eef5fa;font-size:23px;line-height:1}.public-review-close:hover{color:#fff;background:#147dff}.public-review-dialog .review-form{padding:0;border:0;background:transparent}.public-review-dialog .review-form .button{display:inline-flex}.public-review-dialog .review-form p{margin-bottom:0}@keyframes publicReviewIn{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}@media(max-width:700px){.review-submit-cta{align-items:flex-start;flex-direction:column;padding:22px}.review-submit-cta .button{width:100%}.public-review-modal{padding:12px}.public-review-dialog{padding:21px}.public-review-dialog .review-form .field-row{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){.public-review-dialog{animation:none}}
.review-success-dialog{position:relative;width:min(430px,100%);padding:34px 30px;text-align:center;border:1px solid #d6e5f2;border-radius:22px;background:#fff;box-shadow:0 30px 80px rgba(4,24,50,.3);animation:publicReviewIn .2s ease both}.review-success-dialog .public-review-close{position:absolute;top:15px;right:15px}.review-success-icon{display:grid;place-items:center;width:64px;height:64px;margin:0 auto 17px;border-radius:50%;color:#fff;background:linear-gradient(135deg,#18b978,#087b9d);box-shadow:0 12px 25px rgba(18,159,126,.22);font-size:32px;font-weight:900}.review-success-dialog .eyebrow{margin:0;color:#147dff}.review-success-dialog h3{margin:7px 0 10px;color:#0a2d5d;font-size:25px;letter-spacing:-.04em}.review-success-dialog>p:not(.eyebrow){margin:0 auto 22px;color:#647b95;font-size:12px;line-height:1.65}.review-success-dialog .button{display:inline-flex}@media(prefers-reduced-motion:reduce){.review-success-dialog{animation:none}}
.demo-dialog{width:min(760px,100%)}.demo-availability{margin:0 0 18px;padding:11px 13px;border:1px solid #d6e5f2;border-radius:10px;color:#526b83;background:#f5f9fd;font-size:11px;line-height:1.55}.demo-availability strong{color:#0a2d5d}.demo-form .demo-duration{align-self:end;display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:42px;margin-bottom:12px;padding:0 12px;border:1px solid #cfdee9;border-radius:9px;color:#647b95;background:#f8fbfe;font-size:10px}.demo-form .demo-duration strong{color:#147dff;font-size:12px;white-space:nowrap}.demo-form .demo-field-note{display:block;color:#7890a4;font-size:9px;font-weight:500}.demo-form .demo-field-note.error{color:#bd3e3e}.demo-training-warning{margin:-3px 0 15px;padding:11px 13px;border:1px solid #f0b7b7;border-radius:10px;color:#a33c3c;background:#fff3f3;font-size:10px;line-height:1.5}.demo-form .privacy{display:flex;align-items:center;gap:8px}.demo-form .privacy input{width:auto}.demo-form .button{margin-top:2px}.demo-form .button:disabled{opacity:.62;cursor:not-allowed}
.brand-transition-notice{display:inline-flex;align-items:center;gap:7px;margin-bottom:21px;padding:8px 12px;border:1px solid rgba(20,125,255,.22);border-radius:999px;color:#0e65c7;background:rgba(255,255,255,.82);box-shadow:0 8px 20px rgba(20,125,255,.1);font-size:10px;letter-spacing:.1em}.brand-transition-notice::before{content:"";width:7px;height:7px;border-radius:50%;background:#18b978;box-shadow:0 0 0 4px rgba(24,185,120,.13)}.brand-transition-notice span{color:#5e7690}.brand-transition-notice strong{color:#075bd8;font-size:12px;letter-spacing:.06em}
.service-card{padding-top:154px}.service-card-media{position:absolute;inset:0 0 auto;height:128px;overflow:hidden;border-radius:var(--radius) var(--radius) 0 0;background:#dce9f5}.service-card-media::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(4,27,62,.04),rgba(4,27,62,.32))}.service-card-media img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease,filter .5s ease}.service-card:hover .service-card-media img{transform:scale(1.05);filter:saturate(1.08)}.service-card .number{z-index:2;top:17px;left:20px;padding:6px 9px;border-radius:99px;color:#fff;background:rgba(7,40,83,.76);backdrop-filter:blur(8px)}.service-card.featured .number{color:#fff}.service-card h3,.service-card p,.service-card ul{position:relative;z-index:1}@media(max-width:700px){.service-card{padding-top:148px}.service-card-media{height:122px}.service-card .number{left:16px;top:14px}}
.news-card-interactive{cursor:pointer}.news-card-interactive:focus-visible{outline:3px solid rgba(20,125,255,.45);outline-offset:4px}.news-detail-modal{position:fixed;inset:0;z-index:130;display:grid;place-items:center;padding:24px}.news-detail-modal.hidden{display:none}.news-detail-backdrop{position:absolute;inset:0;background:rgba(3,20,45,.72);backdrop-filter:blur(9px)}.news-detail-dialog{position:relative;width:min(980px,100%);max-height:calc(100vh - 48px);overflow:auto;border:1px solid rgba(174,211,236,.75);border-radius:26px;background:#fff;box-shadow:0 36px 110px rgba(2,17,39,.38);animation:newsDetailIn .24s ease both}.news-detail-close{position:absolute;z-index:2;top:17px;right:17px;display:grid;place-items:center;width:38px;height:38px;border:1px solid rgba(255,255,255,.55);border-radius:11px;color:#fff;background:rgba(7,31,64,.72);font-size:24px;line-height:1;cursor:pointer;backdrop-filter:blur(8px)}.news-detail-close:hover{background:#147dff}.news-detail-layout{display:grid;grid-template-columns:minmax(330px,.95fr) minmax(0,1.05fr);min-height:510px}.news-detail-media{position:relative;min-height:510px;overflow:hidden;background:linear-gradient(135deg,#dceeff,#f8fbff)}.news-detail-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 56%,rgba(3,28,67,.3))}.news-detail-media img{width:100%;height:100%;object-fit:cover}.news-detail-media>span{position:absolute;z-index:1;top:20px;left:20px;display:grid;place-items:center;width:38px;height:38px;border:1px solid rgba(255,255,255,.6);border-radius:12px;color:#fff;background:rgba(7,55,119,.76);font-size:18px}.news-detail-copy{display:flex;flex-direction:column;justify-content:center;padding:55px 52px 48px}.news-detail-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:25px;color:#6b829a;font-size:10px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.news-detail-meta span{color:#116ede}.news-detail-meta time{white-space:nowrap}.news-detail-copy .eyebrow{margin:0 0 12px;color:#147dff}.news-detail-copy h3{max-width:500px;margin:0 0 19px;color:#09224a;font-size:clamp(30px,4vw,50px);line-height:1.03;letter-spacing:-.05em}.news-detail-copy>p:not(.eyebrow){margin:0;color:#526d87;font-size:15px;line-height:1.85;white-space:pre-line}.news-detail-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:32px;padding-top:22px;border-top:1px solid #dce8f1;color:#8094a6;font-size:10px}.news-detail-footer .button{min-height:43px;white-space:nowrap}.news-detail-open{overflow:hidden}@keyframes newsDetailIn{from{opacity:0;transform:translateY(13px) scale(.98)}to{opacity:1;transform:none}}@media(max-width:800px){.news-detail-modal{padding:12px}.news-detail-dialog{max-height:calc(100vh - 24px);border-radius:21px}.news-detail-layout{grid-template-columns:1fr;min-height:0}.news-detail-media{min-height:250px;height:38vh;max-height:340px}.news-detail-copy{padding:28px 23px 24px}.news-detail-meta{margin-bottom:18px}.news-detail-copy h3{font-size:32px}.news-detail-copy>p:not(.eyebrow){font-size:13px;line-height:1.7}.news-detail-footer{align-items:flex-start;flex-direction:column;margin-top:25px;padding-top:18px}.news-detail-footer .button{width:100%}.news-detail-close{top:12px;right:12px}}@media(prefers-reduced-motion:reduce){.news-detail-dialog{animation:none}}
.demo-dialog{width:min(820px,100%);padding:0;border:1px solid rgba(151,190,224,.7);border-radius:26px;background:#f7fbff;box-shadow:0 35px 100px rgba(4,24,50,.36)}.demo-modal-heading{align-items:center;margin:0;padding:28px 30px 23px;background:linear-gradient(135deg,#071d42,#0a3d72 58%,#087e9f);border-radius:26px 26px 0 0}.demo-modal-title-wrap{display:flex;align-items:flex-start;gap:14px;min-width:0}.demo-modal-icon{display:grid;place-items:center;flex:0 0 42px;width:42px;height:42px;border:1px solid rgba(255,255,255,.28);border-radius:14px;color:#8aeaff;background:rgba(255,255,255,.12);font-size:21px;box-shadow:0 8px 22px rgba(0,0,0,.14)}.demo-modal-heading .eyebrow{margin:0 0 5px;color:#8eeaff}.demo-modal-heading h3{margin:0 0 6px;color:#fff;font-size:30px;letter-spacing:-.045em}.demo-modal-heading p:last-of-type{max-width:520px;color:#d6ebfa}.demo-modal-badge{display:inline-flex;margin-top:10px;padding:5px 9px;border:1px solid rgba(255,255,255,.2);border-radius:99px;color:#d9f6ff;background:rgba(255,255,255,.1);font-size:9px;font-weight:800}.demo-modal-heading .public-review-close{color:#d6ebfa;background:rgba(255,255,255,.12)}.demo-modal-heading .public-review-close:hover{color:#0a2d5d;background:#fff}.demo-guide{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:22px 30px 12px}.demo-step{display:flex;align-items:center;gap:9px;min-width:0;padding:11px 12px;border:1px solid #dceaf4;border-radius:13px;background:#fff;box-shadow:0 6px 16px rgba(15,70,110,.045)}.demo-step b{display:grid;place-items:center;flex:0 0 26px;width:26px;height:26px;border-radius:50%;color:#fff;background:linear-gradient(135deg,#147dff,#11a9bb);font-size:11px}.demo-step span{display:grid;gap:2px;min-width:0}.demo-step strong{color:#123a5c;font-size:10px}.demo-step small{overflow:hidden;color:#7890a4;font-size:8px;text-overflow:ellipsis;white-space:nowrap}.demo-availability{display:flex;align-items:center;gap:10px;margin:0 30px 15px;padding:12px 14px;border:1px solid #bfe5ee;border-radius:13px;color:#41657d;background:linear-gradient(135deg,#effcff,#f7fbff);font-size:10px}.demo-availability-icon{display:grid;place-items:center;flex:0 0 28px;width:28px;height:28px;border-radius:9px;color:#087d99;background:#d8f5f8;font-size:17px}.demo-availability span:last-child{display:grid;gap:2px}.demo-availability strong{color:#0b4264;font-size:10px}.demo-availability small{font-size:9px}.demo-form-intro{margin:0 0 14px!important;color:#54718a!important;font-size:10px!important}.demo-dialog .demo-form{margin:0;padding:0 30px 28px;border:0;border-radius:0;background:transparent}.demo-dialog .demo-form .field-row{gap:14px}.demo-dialog .demo-form label{font-size:10px}.demo-dialog .demo-form input,.demo-dialog .demo-form select{min-height:45px;border-color:#cbdfea;background:#fff}.demo-dialog .demo-form input:focus,.demo-dialog .demo-form select:focus{border-color:#147dff;box-shadow:0 0 0 4px rgba(20,125,255,.1)}.demo-dialog .demo-duration{min-height:45px;margin-bottom:12px;border-color:#cbe2ea;color:#58748a;background:#edf9fb}.demo-dialog .demo-duration strong{color:#087d99}.demo-dialog .demo-form .button{min-height:48px;padding-inline:22px;box-shadow:0 10px 22px rgba(20,125,255,.2)}.demo-dialog #demo-form-note{margin-top:12px}.demo-dialog .demo-field-note{line-height:1.35}@media(max-width:700px){.demo-dialog{border-radius:20px}.demo-modal-heading{padding:22px 20px 20px;border-radius:20px 20px 0 0}.demo-modal-heading h3{font-size:25px}.demo-modal-icon{flex-basis:36px;width:36px;height:36px}.demo-guide{grid-template-columns:1fr;margin:16px 20px 11px}.demo-step{padding:9px 11px}.demo-availability{margin-inline:20px}.demo-dialog .demo-form{padding:0 20px 22px}.demo-dialog .demo-form .field-row{grid-template-columns:1fr}}
