:root{
  --navy:#082c4b;
  --navy-2:#0b3c68;
  --blue:#1768e5;
  --blue-2:#3894ff;
  --green:#21c58b;
  --green-2:#7de2bc;
  --purple:#765df1;
  --orange:#ff9b45;
  --ink:#102940;
  --muted:#62788c;
  --soft:#f4f8fb;
  --soft-blue:#edf5ff;
  --line:#dfe8f0;
  --white:#fff;
  --shadow:0 24px 70px rgba(8,44,75,.13);
  --shadow-soft:0 12px 36px rgba(8,44,75,.08);
  --radius:24px;
  --max:1200px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--ink);
  background:#fff;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
button{font:inherit}
.container{width:min(var(--max),calc(100% - 44px));margin:0 auto}

/* NAV */
.nav{
  position:sticky;top:0;z-index:60;
  background:rgba(255,255,255,.88);
  backdrop-filter:blur(18px);
  border-bottom:1px solid rgba(223,232,240,.78)
}
.nav-row{height:76px;display:flex;align-items:center;gap:22px}
.brand{display:flex;align-items:center;gap:10px;margin-right:auto;font-weight:900;letter-spacing:.045em;color:var(--navy)}
.brand img{width:40px;height:40px;object-fit:contain}
.nav-links{display:flex;align-items:center;gap:22px;color:#405a72;font-size:13px;font-weight:700}
.nav-links>a{position:relative}
.nav-links>a:not(.access-btn):after{
  content:"";position:absolute;left:0;right:100%;bottom:-7px;height:2px;
  border-radius:2px;background:var(--green);transition:.22s ease
}
.nav-links>a:hover{color:var(--navy)}
.nav-links>a:hover:after{right:0}
.language-switch{
  display:flex;align-items:center;padding:3px;background:#eef3f7;border:1px solid var(--line);
  border-radius:11px;gap:2px
}
.lang-btn{
  border:0;background:transparent;color:#708499;cursor:pointer;
  border-radius:8px;padding:6px 8px;font-size:11px;font-weight:900
}
.lang-btn.active{background:#fff;color:var(--blue);box-shadow:0 3px 10px rgba(8,44,75,.09)}
.access-wrap{position:relative}
.access-btn{
  display:inline-flex;align-items:center;gap:7px;padding:10px 14px;
  border-radius:11px;background:var(--navy);color:#fff!important;
  transition:.2s ease
}
.access-btn:hover{transform:translateY(-1px);background:#104d7f}
.access-menu{
  display:none;position:absolute;right:0;top:48px;min-width:225px;
  background:#fff;border:1px solid var(--line);border-radius:15px;
  padding:8px;box-shadow:var(--shadow)
}
.access-wrap.open .access-menu{display:block;animation:drop .18s ease}
.access-menu a{display:block;padding:10px 12px;border-radius:9px;color:#415a71}
.access-menu a:hover{background:var(--soft);color:var(--blue)}
.mobile-btn{display:none;border:0;background:transparent;font-size:21px;color:var(--navy);cursor:pointer}

/* HERO */
.hero{
  position:relative;overflow:hidden;
  background:
    radial-gradient(circle at 82% 10%,rgba(33,197,139,.25),transparent 28%),
    radial-gradient(circle at 64% 88%,rgba(118,93,241,.18),transparent 27%),
    linear-gradient(135deg,#071f36 0%,#0a3a66 54%,#115e8b 100%);
  color:#fff
}
.hero:before,.hero:after{content:"";position:absolute;border-radius:50%;filter:blur(1px);pointer-events:none}
.hero:before{width:340px;height:340px;background:rgba(51,143,255,.12);left:-130px;top:-120px}
.hero:after{width:500px;height:500px;border:1px solid rgba(255,255,255,.08);right:-210px;bottom:-320px}
.hero-grid{
  min-height:690px;padding:82px 0 92px;display:grid;
  grid-template-columns:.91fr 1.09fr;align-items:center;gap:52px;position:relative;z-index:2
}
.eyebrow{
  display:inline-flex;align-items:center;gap:8px;padding:7px 11px;
  border:1px solid rgba(255,255,255,.15);background:rgba(255,255,255,.08);
  border-radius:999px;color:#dff8ef;font-size:11px;font-weight:900;
  letter-spacing:.08em;text-transform:uppercase
}
.hero h1{font-size:clamp(43px,5vw,73px);line-height:1.01;letter-spacing:-.052em;margin:21px 0 22px;max-width:760px}
.hero-copy>p{font-size:18px;color:#cfdeeb;max-width:665px;margin:0 0 29px}
.actions{display:flex;flex-wrap:wrap;gap:11px}
.btn{
  min-height:49px;padding:0 18px;border-radius:12px;
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  border:1px solid transparent;font-size:13px;font-weight:900;transition:.2s ease
}
.btn-primary{background:var(--green);color:#062d28;box-shadow:0 13px 29px rgba(33,197,139,.22)}
.btn-primary:hover{background:#42d6a3;transform:translateY(-2px)}
.btn-secondary{background:#fff;color:var(--navy);border-color:#d8e4ec}
.btn-secondary:hover{border-color:#b9cddd;transform:translateY(-2px)}
.btn-glass{background:rgba(255,255,255,.09);color:#fff;border-color:rgba(255,255,255,.2)}
.btn-glass:hover{background:rgba(255,255,255,.15);transform:translateY(-2px)}
.hero-trust{display:flex;align-items:center;gap:9px;margin-top:25px;color:#bed1e0;font-size:12px}
.hero-trust i{color:var(--green)}
.hero-stage{position:relative;perspective:1200px}
.browser{
  position:relative;background:#fff;border-radius:20px;overflow:hidden;
  border:1px solid rgba(255,255,255,.22);box-shadow:0 36px 90px rgba(0,0,0,.28);
  transform:rotateY(-3deg) rotateX(1deg)
}
.browser-bar{height:42px;background:#f7f9fb;border-bottom:1px solid #e8eef3;display:flex;align-items:center;padding:0 14px;gap:7px}
.dot{width:8px;height:8px;border-radius:50%;background:#d1dbe4}.dot:nth-child(1){background:#ff786c}.dot:nth-child(2){background:#ffc75f}.dot:nth-child(3){background:#61d48e}
.browser-url{margin-left:8px;height:23px;flex:1;max-width:250px;border-radius:7px;background:#eaf0f5;color:#718498;font-size:9px;display:flex;align-items:center;padding:0 9px}
.browser-status{margin-left:auto;font-size:9px;font-weight:800;color:#4f7a69;background:#eaf8f2;border-radius:999px;padding:5px 8px}
.dashboard-shot{width:100%;aspect-ratio:1.875/1;object-fit:cover;object-position:top left;background:#eef4f8}
.float-card{
  position:absolute;display:flex;align-items:center;gap:10px;
  background:rgba(255,255,255,.96);color:#29465f;border:1px solid #e3ebf1;
  border-radius:15px;padding:12px 14px;box-shadow:0 18px 46px rgba(0,0,0,.18);
  font-size:11px;font-weight:800
}
.float-card i{width:31px;height:31px;border-radius:9px;display:grid;place-items:center;background:#e9f9f3;color:#17a978;font-size:14px}
.float-card.one{left:-32px;bottom:52px}
.float-card.two{right:-22px;top:72px}
.hero-mini-stat{
  position:absolute;right:19px;bottom:-24px;background:linear-gradient(135deg,#7962f3,#5e49d8);color:#fff;
  border-radius:16px;padding:13px 16px;box-shadow:0 16px 38px rgba(45,37,105,.28)
}
.hero-mini-stat strong{font-size:20px;display:block;line-height:1}.hero-mini-stat span{font-size:9px;opacity:.88}

/* INSTITUTIONS */
.institution-band{
  padding:0;position:relative;z-index:4;margin-top:-29px
}
.institution-shell{
  border:1px solid var(--line);background:#fff;border-radius:20px;
  box-shadow:var(--shadow-soft);padding:21px 24px;display:grid;
  grid-template-columns:240px 1fr;align-items:center;gap:26px
}
.institution-copy strong{display:block;font-size:18px;color:var(--navy);line-height:1.15}
.institution-copy span{display:block;font-size:10px;color:var(--muted);margin-top:4px}
.institution-track-wrap{overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
.institution-track{display:flex;gap:8px;width:max-content;animation:marquee 42s linear infinite}
.institution-track-wrap:hover .institution-track{animation-play-state:paused}
.logo-pill{
  white-space:nowrap;padding:8px 11px;border:1px solid var(--line);border-radius:999px;
  background:#fbfdff;color:#5a7186;font-size:10px;font-weight:800
}

/* SECTION BASICS */
section{padding:94px 0}
.section-head{max-width:790px;margin:0 auto 46px;text-align:center}
.section-kicker{font-size:11px;text-transform:uppercase;letter-spacing:.12em;font-weight:900;color:#11996e;margin-bottom:10px}
.section-head h2{font-size:clamp(31px,3.8vw,49px);line-height:1.09;letter-spacing:-.04em;margin:0 0 14px;color:#123755}
.section-head p{font-size:16px;color:var(--muted);margin:0}
.soft{background:linear-gradient(180deg,#f6f9fc,#f1f7fb)}
.dark-section{background:linear-gradient(135deg,#071f36,#0b3559);color:#fff}

/* PRODUCTS */
.product-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.product{
  position:relative;overflow:hidden;background:#fff;border:1px solid var(--line);
  border-radius:22px;padding:28px;min-height:385px;display:flex;flex-direction:column;
  box-shadow:0 7px 22px rgba(8,44,75,.025);transition:.25s ease
}
.product:before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:var(--accent,var(--blue))}
.product:after{content:"";position:absolute;width:190px;height:190px;border-radius:50%;right:-110px;top:-100px;background:color-mix(in srgb,var(--accent,var(--blue)) 9%,transparent)}
.product:hover{transform:translateY(-6px);box-shadow:var(--shadow-soft);border-color:#cedce7}
.product:nth-child(2){--accent:var(--green)}.product:nth-child(3){--accent:var(--purple)}
.product-top{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:23px}
.product-icon{width:48px;height:48px;border-radius:14px;background:color-mix(in srgb,var(--accent,var(--blue)) 11%,#fff);color:var(--accent,var(--blue));display:grid;place-items:center;font-size:19px}
.product-level{font-size:9px;text-transform:uppercase;letter-spacing:.1em;font-weight:900;color:var(--accent,var(--blue));border:1px solid color-mix(in srgb,var(--accent,var(--blue)) 23%,#fff);background:color-mix(in srgb,var(--accent,var(--blue)) 6%,#fff);border-radius:999px;padding:6px 9px}
.product h3{font-size:23px;margin:0 0 8px;color:#163b5a}.product p{font-size:13px;color:var(--muted);margin:0 0 18px}
.product-tags{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 20px}
.product-tags span{font-size:10px;padding:5px 8px;border:1px solid var(--line);border-radius:999px;color:#617589;background:#f8fafc;font-weight:700}
.product-link{margin-top:auto;display:inline-flex;align-items:center;gap:7px;color:var(--accent,var(--blue));font-size:12px;font-weight:900}

/* FLOW */
.flow-shell{
  background:#fff;border:1px solid var(--line);border-radius:28px;padding:36px;
  box-shadow:var(--shadow-soft)
}
.flow-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}
.flow-step{text-align:center;position:relative;padding:17px 7px}
.flow-step:not(:last-child):after{content:"";position:absolute;right:-4px;top:35px;width:20px;height:1px;background:#bdd0df}
.flow-num{
  width:43px;height:43px;margin:0 auto 12px;border-radius:13px;background:#edf5ff;
  border:1px solid #d5e5f5;color:var(--blue);display:grid;place-items:center;font-size:11px;font-weight:900
}
.flow-step strong{display:block;color:#284a65;font-size:12px}
.flow-caption{max-width:790px;margin:25px auto 0;text-align:center;font-size:13px;color:var(--muted)}

/* VIDEO */
.video-layout{display:grid;grid-template-columns:.78fr 1.22fr;gap:54px;align-items:center}
.video-copy .section-kicker{color:#65ddbd}
.video-copy h2{font-size:clamp(34px,4vw,53px);line-height:1.06;letter-spacing:-.043em;margin:9px 0 16px}
.video-copy p{color:#bdd0df;font-size:16px;margin:0 0 24px}
.video-meta{font-size:10px;color:#8fb0c8;margin-top:14px}
.video-box{
  padding:9px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);
  border-radius:22px;box-shadow:0 30px 80px rgba(0,0,0,.22)
}
.video-box video{display:block;width:100%;aspect-ratio:16/9;border-radius:15px;background:#041421}

/* CAPABILITIES */
.cap-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}
.cap{position:relative;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:19px;padding:24px;transition:.23s ease}
.cap:hover{transform:translateY(-4px);box-shadow:var(--shadow-soft)}
.cap-icon{width:42px;height:42px;border-radius:12px;background:#eaf8f3;display:grid;place-items:center;color:#13a878;margin-bottom:17px}
.cap h3{font-size:16px;color:#22445f;margin:0 0 7px}.cap p{font-size:12px;color:var(--muted);margin:0}

/* TEACHERS */
.teacher-grid{display:grid;grid-template-columns:1.02fr .98fr;gap:42px;align-items:stretch}
.teacher-copy{padding:26px 0}
.teacher-copy h2{font-size:clamp(34px,4vw,50px);line-height:1.08;letter-spacing:-.04em;margin:9px 0 15px;color:#153957}
.teacher-copy>p{font-size:15px;color:var(--muted);max-width:610px}
.teacher-features{display:grid;gap:11px;margin:24px 0 27px}
.teacher-feature{display:grid;grid-template-columns:37px 1fr;gap:11px;align-items:start}
.teacher-feature i{width:37px;height:37px;border-radius:11px;background:#eaf8f3;color:#14a877;display:grid;place-items:center;font-size:13px}
.teacher-feature strong{display:block;font-size:13px;color:#294963}.teacher-feature span{display:block;font-size:11px;color:var(--muted);margin-top:2px}
.teacher-panel{
  position:relative;overflow:hidden;background:linear-gradient(145deg,#0a365e,#1769a2);
  border-radius:28px;padding:34px;color:#fff;min-height:460px;display:flex;flex-direction:column;justify-content:center;
  box-shadow:var(--shadow)
}
.teacher-panel:before{content:"";position:absolute;width:310px;height:310px;border-radius:50%;right:-140px;top:-140px;background:rgba(33,197,139,.18)}
.teacher-panel-label{position:relative;font-size:10px;text-transform:uppercase;letter-spacing:.11em;font-weight:900;color:#7ce5c4}
.teacher-panel h3{position:relative;font-size:27px;line-height:1.2;letter-spacing:-.025em;margin:10px 0 25px;max-width:470px}
.teacher-panel-list{position:relative;display:grid;gap:10px}
.teacher-panel-item{display:flex;align-items:center;gap:12px;padding:13px 14px;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.11);border-radius:13px;font-size:12px;font-weight:700}
.teacher-panel-item i{color:#7de2bc}

/* PUBLICATIONS */
.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.news-card{background:#fff;border:1px solid var(--line);border-radius:21px;overflow:hidden;display:flex;flex-direction:column;min-height:370px;transition:.23s ease}
.news-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-soft)}
.news-cover{height:165px;position:relative;overflow:hidden;padding:20px;display:flex;align-items:flex-end}
.news-theme-blue .news-cover{background:linear-gradient(135deg,#0b3b65,#237fbc)}
.news-theme-green .news-cover{background:linear-gradient(135deg,#0f7d69,#3bc39a)}
.news-theme-purple .news-cover{background:linear-gradient(135deg,#5544b4,#927bf2)}
.news-theme-orange .news-cover{background:linear-gradient(135deg,#d87322,#ff9b45)}
.news-cover:after{content:"";position:absolute;width:180px;height:180px;border-radius:50%;right:-55px;top:-70px;background:rgba(255,255,255,.12)}
.news-cover i{position:relative;z-index:2;font-size:32px;color:#fff}
.news-body{padding:21px;display:flex;flex-direction:column;flex:1}
.news-meta{font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:#0e9d70;font-weight:900;margin-bottom:8px}
.news-card h3{font-size:18px;line-height:1.28;color:#183c59;margin:0 0 9px}.news-card p{font-size:12px;color:var(--muted);margin:0 0 18px}
.news-link{margin-top:auto;color:var(--blue);font-size:11px;font-weight:900;display:inline-flex;align-items:center;gap:6px}
.news-more{text-align:center;margin-top:26px}

/* TESTIMONIALS */
.quote-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}
.quote{position:relative;background:#fff;border:1px solid var(--line);border-radius:22px;padding:27px;display:flex;flex-direction:column;min-height:330px}
.quote:before{content:"“";position:absolute;right:20px;top:2px;font-size:80px;font-family:Georgia,serif;color:#eef4f8;line-height:1}
.quote blockquote{position:relative;font-size:15px;line-height:1.62;color:#36536b;margin:15px 0 23px;flex:1}
.quote cite{font-style:normal}.quote cite strong{display:block;font-size:11px;color:#1d405c}.quote cite span{display:block;font-size:10px;color:var(--muted);margin-top:2px}

/* ABOUT */
.about-grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:48px;align-items:center}
.about-copy h2{font-size:clamp(34px,4vw,51px);line-height:1.07;letter-spacing:-.043em;color:#143856;margin:9px 0 15px}
.about-copy p{font-size:15px;color:var(--muted);margin-bottom:24px}
.stat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.stat{background:#fff;border:1px solid var(--line);border-radius:18px;padding:23px;min-height:130px}
.stat:nth-child(1){background:linear-gradient(135deg,#0c416e,#1769a2);color:#fff;border:0}
.stat strong{font-size:29px;line-height:1;display:block;color:var(--blue);margin-bottom:8px}.stat:nth-child(1) strong{color:#72e2bf}
.stat span{font-size:10px;color:var(--muted)}.stat:nth-child(1) span{color:#d0e3ef}

/* CTA / FOOTER */
.cta{padding:0 0 92px}
.cta-box{
  position:relative;overflow:hidden;border-radius:28px;padding:51px;
  background:linear-gradient(120deg,#0a3359 0%,#125c8d 58%,#147d79 100%);
  color:#fff;display:flex;align-items:center;justify-content:space-between;gap:30px
}
.cta-box:after{content:"";position:absolute;width:280px;height:280px;border-radius:50%;background:rgba(68,226,174,.17);right:-80px;top:-120px}
.cta-copy{position:relative;z-index:2;max-width:700px}.cta-copy h2{font-size:34px;line-height:1.13;letter-spacing:-.03em;margin:0 0 9px}.cta-copy p{margin:0;color:#d4e5ef;font-size:14px}
.cta-actions{position:relative;z-index:2;display:flex;gap:9px;flex-wrap:wrap;justify-content:flex-end}

footer{background:#0c1e2e;color:#9fb2c2;padding:43px 0 27px}
.footer-top{display:grid;grid-template-columns:1.5fr .75fr .75fr;gap:43px;padding-bottom:31px;border-bottom:1px solid rgba(255,255,255,.09)}
.footer-brand{color:#fff;font-size:17px;font-weight:900;letter-spacing:.04em;margin-bottom:7px}.footer-copy{font-size:11px;max-width:430px}
.footer-col strong{display:block;color:#fff;font-size:11px;margin-bottom:9px}.footer-col a{display:block;font-size:10px;margin:6px 0}.footer-col a:hover{color:#fff}
.footer-bottom{padding-top:19px;display:flex;justify-content:space-between;gap:20px;align-items:center;font-size:9px}
.socials{display:flex;gap:8px}.socials a{width:32px;height:32px;background:rgba(255,255,255,.07);border-radius:9px;display:grid;place-items:center;color:#fff}

/* PUBLICATION PAGES */
.pub-hero{padding:84px 0 60px;background:linear-gradient(135deg,#071f36,#0e527f);color:#fff;position:relative;overflow:hidden}
.pub-hero:after{content:"";position:absolute;width:360px;height:360px;border-radius:50%;right:-100px;top:-180px;background:rgba(33,197,139,.15)}
.pub-hero .section-kicker{color:#72e2bf}.pub-hero h1{font-size:clamp(38px,5vw,59px);line-height:1.07;letter-spacing:-.045em;margin:10px 0 14px;max-width:850px}.pub-hero p{max-width:760px;color:#ccdeea;font-size:16px}
.pub-list{padding:60px 0 92px}
.article{max-width:820px;margin:0 auto;padding:66px 0 94px}.article .section-kicker{text-align:left}.article h1{font-size:clamp(37px,5vw,58px);line-height:1.08;letter-spacing:-.045em;color:#143956;margin:10px 0 18px}.article .lead{font-size:18px;color:#526d82}.article h2{margin:34px 0 9px;font-size:24px;color:#183e5c}.article p{color:#445f74;font-size:14px}.article-note{margin:32px 0;padding:17px 19px;border:1px solid #f1dfa0;background:#fff8df;color:#6c5a21;border-radius:14px;font-size:12px}.article-note strong{display:block;margin-bottom:3px}.back{display:inline-flex;margin-top:27px;color:var(--blue);font-size:12px;font-weight:900}

/* REVEAL */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}
.reveal.visible{opacity:1;transform:none}

@keyframes marquee{to{transform:translateX(-50%)}}
@keyframes drop{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}

@media(max-width:1030px){
  .nav-links{display:none;position:absolute;left:0;right:0;top:76px;background:#fff;padding:20px 22px;border-bottom:1px solid var(--line);flex-direction:column;align-items:flex-start;gap:14px;box-shadow:var(--shadow-soft)}
  .nav-links.show{display:flex}.mobile-btn{display:block}.language-switch{margin-left:auto}.access-menu{position:static;box-shadow:none;margin-top:7px}
  .hero-grid,.video-layout,.teacher-grid,.about-grid{grid-template-columns:1fr}.hero-stage{max-width:820px}.institution-shell{grid-template-columns:1fr}.product-grid,.cap-grid,.quote-grid,.news-grid{grid-template-columns:1fr 1fr}
  .flow-grid{grid-template-columns:repeat(3,1fr)}.flow-step:nth-child(3):after{display:none}.footer-top{grid-template-columns:1fr 1fr}
}
@media(max-width:690px){
  .container{width:min(var(--max),calc(100% - 28px))}.nav-row{height:68px}.nav-links{top:68px}.brand span{display:none}
  .hero-grid{min-height:auto;padding:62px 0 74px}.hero h1{font-size:43px}.hero-copy>p{font-size:15px}.float-card{display:none}.hero-mini-stat{right:9px;bottom:-18px}
  .institution-band{margin-top:-20px}.institution-shell{padding:17px}.institution-track-wrap{mask-image:none}.institution-track{animation:none;flex-wrap:wrap;width:auto}.institution-track .duplicate{display:none}
  section{padding:72px 0}.product-grid,.cap-grid,.quote-grid,.news-grid,.stat-grid{grid-template-columns:1fr}.flow-shell{padding:24px 14px}.flow-grid{grid-template-columns:1fr 1fr}.flow-step:after{display:none}
  .teacher-panel{min-height:390px;padding:27px}.quote{min-height:auto}.cta{padding-bottom:70px}.cta-box{padding:34px 23px;align-items:flex-start;flex-direction:column}.cta-actions{justify-content:flex-start}
  .footer-top{grid-template-columns:1fr}.footer-bottom{flex-direction:column;align-items:flex-start}.actions{flex-direction:column;align-items:stretch}.actions .btn{width:100%}
}
@media(prefers-reduced-motion:reduce){
  *{scroll-behavior:auto!important;animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}
}


/* =========================================================
   GLOBALSYM BRAND + HERO PRODUCT IMAGE
   Final overrides
   ========================================================= */

/* Real horizontal Globalsym logo */
.nav .brand{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  flex:0 0 158px;
  min-width:158px;
  max-width:158px;
  margin-right:auto;
}
.nav .brand img{
  display:block !important;
  width:148px !important;
  height:auto !important;
  max-width:148px !important;
  max-height:48px !important;
  object-fit:contain !important;
}

/* Preserve the balanced hero proportions */
.hero-grid{
  grid-template-columns:.91fr 1.09fr;
  gap:52px;
}
.hero-copy,
.hero-stage{
  min-width:0;
}
.hero-stage{
  position:relative;
  width:100%;
  max-width:640px;
  justify-self:end;
  perspective:none;
}

/* Product screenshot: frontal, full image, no interpolation caused by 3D transforms */
.browser{
  width:100%;
  max-width:640px;
  margin:0;
  transform:none !important;
  border-radius:20px;
  overflow:hidden;
}
.dashboard-shot{
  display:block !important;
  width:100% !important;
  max-width:100% !important;
  height:auto !important;
  aspect-ratio:auto !important;
  object-fit:contain !important;
  object-position:top left !important;
  transform:none !important;
}

/* Keep floating labels subtle and outside the key dashboard information */
.float-card.one{
  left:-26px;
  bottom:42px;
}
.float-card.two{
  right:-18px;
  top:64px;
}
.hero-mini-stat{
  right:18px;
  bottom:-22px;
}

@media(max-width:1030px){
  .nav .brand{
    flex-basis:150px;
    min-width:150px;
    max-width:150px;
  }
  .nav .brand img{
    width:140px !important;
    max-width:140px !important;
  }
  .hero-stage{
    max-width:760px;
    justify-self:center;
    margin:0 auto;
  }
  .browser{
    max-width:760px;
  }
}

@media(max-width:690px){
  .nav .brand{
    flex-basis:122px;
    min-width:122px;
    max-width:122px;
  }
  .nav .brand img{
    width:114px !important;
    max-width:114px !important;
  }
}


/* =========================================================
   EXPERIENCE / CONTENT / INTERACTION REFINEMENTS
   ========================================================= */

/* Process */
.flow-shell{
  padding:32px 28px 27px;
  background:
    radial-gradient(circle at 50% 0%,rgba(23,104,229,.045),transparent 38%),
    #fff;
}
.flow-grid{
  position:relative;
  gap:12px;
}
.flow-grid:before{
  content:"";
  position:absolute;
  left:8%;
  right:8%;
  top:35px;
  height:1px;
  background:linear-gradient(90deg,rgba(23,104,229,.12),rgba(33,197,139,.45),rgba(118,93,241,.18));
  z-index:0;
}
.flow-step{
  z-index:1;
  padding:4px 5px 15px;
  cursor:default;
}
.flow-step:not(:last-child):after{display:none}
.flow-node{
  position:relative;
  width:70px;
  height:70px;
  margin:0 auto 12px;
  border-radius:20px;
  display:grid;
  place-items:center;
  background:#f4f8fc;
  border:1px solid #dbe7f2;
  box-shadow:0 8px 20px rgba(8,44,75,.055);
  transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease,background .22s ease;
}
.flow-node i{
  font-size:19px;
  color:var(--blue);
  transition:transform .22s ease,color .22s ease;
}
.flow-num{
  position:absolute;
  top:-7px;
  right:-7px;
  width:25px;
  height:25px;
  border-radius:9px;
  margin:0;
  background:var(--navy);
  border:3px solid #fff;
  color:#fff;
  font-size:8px;
  box-shadow:0 5px 14px rgba(8,44,75,.15);
}
.flow-step strong{
  font-size:12px;
  transition:color .22s ease;
}
.flow-step:hover .flow-node{
  transform:translateY(-6px);
  background:#eefaf6;
  border-color:#bdebdc;
  box-shadow:0 15px 30px rgba(8,44,75,.10);
}
.flow-step:hover .flow-node i{
  color:#0eae7b;
  transform:scale(1.08);
}
.flow-step:hover strong{color:#087c5b}
.flow-caption{margin-top:21px}

/* Video */
.video-box{
  transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease;
}
.video-box:hover{
  transform:translateY(-4px);
  border-color:rgba(125,226,188,.28);
  box-shadow:0 34px 90px rgba(0,0,0,.28);
}
.video-meta{
  display:inline-flex;
  align-items:center;
  margin-top:16px;
  padding:6px 9px;
  border-radius:999px;
  background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.09);
}

/* Capabilities */
.cap{
  min-height:190px;
  border-top:3px solid transparent;
}
.cap:nth-child(1),.cap:nth-child(4){--cap-accent:#21c58b}
.cap:nth-child(2),.cap:nth-child(5){--cap-accent:#1768e5}
.cap:nth-child(3),.cap:nth-child(6){--cap-accent:#765df1}
.cap:hover{
  border-top-color:var(--cap-accent);
  transform:translateY(-6px);
  box-shadow:0 18px 42px rgba(8,44,75,.10);
}
.cap-icon{
  transition:transform .22s ease,background .22s ease,color .22s ease;
}
.cap:hover .cap-icon{
  transform:translateY(-2px) scale(1.07);
  color:#fff;
  background:var(--cap-accent);
}

/* Faculty section */
.teacher-feature{
  padding:10px 11px;
  margin-left:-11px;
  border-radius:13px;
  transition:background .2s ease,transform .2s ease;
}
.teacher-feature:hover{
  background:#f4f9fc;
  transform:translateX(4px);
}
.teacher-panel{
  min-height:500px;
}
.teacher-panel-item{
  transition:transform .2s ease,background .2s ease,border-color .2s ease;
}
.teacher-panel-item:hover{
  transform:translateX(5px);
  background:rgba(255,255,255,.14);
  border-color:rgba(125,226,188,.30);
}

/* Publications - explicitly authored by Globalsym */
.news-author{
  display:flex;
  align-items:center;
  gap:6px;
  color:#7a8fa1;
  font-size:9px;
  font-weight:700;
  margin:-1px 0 9px;
}
.news-author i{color:#0e9d70}
.news-card .news-cover i{
  transition:transform .25s ease;
}
.news-card:hover .news-cover i{
  transform:translateY(-4px) scale(1.08);
}
.news-card:hover .news-link{
  gap:10px;
}

/* About stats: interactive without pretending to be links */
.stat{
  position:relative;
  overflow:hidden;
  min-height:150px;
  transition:transform .23s ease,box-shadow .23s ease,border-color .23s ease,background .23s ease;
}
.stat:after{
  content:"";
  position:absolute;
  width:110px;
  height:110px;
  border-radius:50%;
  right:-65px;
  bottom:-70px;
  background:rgba(23,104,229,.06);
  transition:transform .3s ease,background .3s ease;
}
.stat-icon{
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border-radius:10px;
  margin-bottom:18px;
  background:#edf5ff;
  color:var(--blue);
  font-size:13px;
  transition:transform .23s ease,background .23s ease,color .23s ease;
}
.stat:nth-child(1) .stat-icon{
  background:rgba(255,255,255,.12);
  color:#72e2bf;
}
.stat:hover{
  transform:translateY(-6px);
  box-shadow:0 18px 42px rgba(8,44,75,.11);
  border-color:#c8dae8;
}
.stat:hover:after{
  transform:scale(1.35);
  background:rgba(33,197,139,.10);
}
.stat:hover .stat-icon{
  transform:rotate(-5deg) scale(1.08);
  background:var(--green);
  color:#07372d;
}
.stat:nth-child(1):hover .stat-icon{
  background:#72e2bf;
  color:#0c416e;
}
.stat strong,.stat span{position:relative;z-index:1}

/* Footer: stronger brand close */
.footer-top{
  grid-template-columns:1.45fr .75fr .75fr;
}
.footer-identity{
  max-width:470px;
}
.footer-logo-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:#fff;
  border-radius:12px;
  padding:7px 11px;
  margin-bottom:14px;
}
.footer-logo-badge img{
  display:block;
  width:145px;
  height:auto;
  max-height:44px;
  object-fit:contain;
}
.footer-copy{
  font-size:11px;
  line-height:1.65;
}
.footer-email{
  display:inline-flex;
  align-items:center;
  gap:7px;
  margin-top:12px;
  font-size:10px;
  color:#dce8f1;
  font-weight:700;
}
.footer-email:hover{color:#72e2bf}
.footer-col a{
  transition:color .18s ease,transform .18s ease;
}
.footer-col a:hover{
  color:#72e2bf;
  transform:translateX(3px);
}
.socials a{
  transition:transform .2s ease,background .2s ease,color .2s ease;
}
.socials a:hover{
  transform:translateY(-3px);
  background:#72e2bf;
  color:#09263e;
}

@media(max-width:1030px){
  .flow-grid:before{display:none}
}
@media(max-width:690px){
  .flow-node{width:62px;height:62px;border-radius:17px}
  .teacher-panel{min-height:auto}
  .footer-logo-badge img{width:132px}
}


/* =========================================================
   FINAL VISUAL TUNING
   ========================================================= */

/* 1) Same visual height across ES / EN on desktop.
   The content is the same structure, but translations wrap differently.
   These minimum heights normalize the hero block without freezing the layout. */
@media (min-width: 1040px){
  .hero h1{
    min-height:4.05em;
    max-width:650px;
  }
  .hero-copy>p{
    min-height:3.7em;
    max-width:610px;
  }
  .actions{
    min-height:54px;
    align-items:center;
  }
  .hero-trust{
    min-height:40px;
    max-width:610px;
  }
}

/* 2) Primary green buttons with white text */
.btn-primary{
  color:#fff !important;
}
.btn-primary i{
  color:#fff !important;
}
.btn-primary:hover{
  color:#fff !important;
}

/* 3) Footer logo badge: softer and less stark than pure white */
.footer-logo-badge{
  background:linear-gradient(180deg,#f6f9fc 0%, #edf3f8 100%);
  border:1px solid rgba(255,255,255,.14);
  box-shadow:0 8px 20px rgba(0,0,0,.10);
  padding:6px 10px;
}
.footer-logo-badge img{
  width:136px;
  max-height:40px;
}

/* 4) Larger social icons */
.socials{
  gap:10px;
}
.socials a{
  width:42px !important;
  height:42px !important;
  border-radius:11px !important;
  font-size:16px;
}
.socials a i{
  font-size:15px;
}

/* 5) Slightly stronger footer close */
.footer-copy{
  max-width:430px;
}

/* 6) Better CTA consistency in internal sections */
.actions .btn,
.cta-box .btn,
.teacher-copy .btn{
  white-space:nowrap;
}

/* 7) Small tablet safety */
@media (max-width: 1039px){
  .hero h1,
  .hero-copy>p,
  .hero-trust{
    min-height:auto;
    max-width:none;
  }
}

/* 8) Mobile CTA wrapping */
@media (max-width: 560px){
  .actions .btn,
  .cta-box .btn,
  .teacher-copy .btn{
    white-space:normal;
    text-align:center;
  }
}


/* =========================================================
   FOOTER — FINAL BRAND TUNING
   ========================================================= */

/* Use the existing transparent logo as a pure-white footer mark. */
.footer-logo-badge{
  display:inline-flex;
  align-items:center;
  justify-content:flex-start;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  padding:0 !important;
  margin-bottom:18px;
  border-radius:0 !important;
}
.footer-logo-badge img{
  display:block;
  width:150px !important;
  max-width:150px !important;
  height:auto !important;
  max-height:none !important;
  object-fit:contain;
  filter:brightness(0) invert(1);
  opacity:.96;
}

/* Larger, outlined social buttons: visible without competing with content. */
.socials{
  display:flex;
  align-items:center;
  gap:12px;
}
.socials a{
  width:44px !important;
  height:44px !important;
  border-radius:50% !important;
  display:grid !important;
  place-items:center !important;
  background:transparent !important;
  border:1.5px solid rgba(255,255,255,.68) !important;
  color:#fff !important;
  box-shadow:none !important;
  transition:
    transform .2s ease,
    background .2s ease,
    border-color .2s ease,
    color .2s ease !important;
}
.socials a i{
  font-size:17px !important;
}
.socials a:hover{
  transform:translateY(-3px) !important;
  background:#fff !important;
  border-color:#fff !important;
  color:var(--navy) !important;
}

/* Give the bottom line a little more breathing room. */
.footer-bottom{
  padding-top:23px;
}

/* More deliberate footer spacing on desktop. */
@media(min-width:1040px){
  footer{
    padding-top:50px;
    padding-bottom:30px;
  }
  .footer-top{
    padding-bottom:35px;
  }
}

/* Keep the logo proportionate on small screens. */
@media(max-width:690px){
  .footer-logo-badge img{
    width:138px !important;
    max-width:138px !important;
  }
  .socials a{
    width:42px !important;
    height:42px !important;
  }
}


/* =========================================================
   PUBLICACIONES — ARTÍCULOS DEFINITIVOS
   ========================================================= */

.publications-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
  max-width:980px;
  margin:0 auto;
}

.article-by{
  display:flex;
  align-items:center;
  gap:7px;
  margin:-2px 0 24px;
  color:#74899b;
  font-size:11px;
  font-weight:700;
}
.article-by i{color:#0e9d70}

.article-callout{
  margin:34px 0;
  padding:24px 26px;
  border-left:4px solid var(--green);
  background:linear-gradient(135deg,#f1faf7,#f6f9fc);
  border-radius:0 16px 16px 0;
  color:#173b58;
  display:grid;
  grid-template-columns:30px 1fr;
  gap:12px;
  align-items:start;
}
.article-callout i{
  color:var(--green);
  font-size:20px;
  margin-top:2px;
}
.article-callout strong{
  font-size:17px;
  line-height:1.5;
}

.article-close{
  margin-top:42px;
  padding:26px;
  border:1px solid var(--line);
  border-radius:18px;
  background:#f8fbfd;
}
.article-close p{
  margin:0 0 16px;
}
.article-close .btn{
  width:auto;
}

@media(max-width:760px){
  .publications-grid{grid-template-columns:1fr}
  .article-callout{padding:20px}
}
