:root{
  --gns-blue:#24357f;
  --gns-blue-2:#17245e;
  --gns-teal:#008e9a;
  --gns-teal-2:#12a4ad;
  --csbp-blue:#0b6498;
  --csbp-purple:#963782;
  --csbp-green:#6ba646;
  --csbp-gold:#d6c337;
  --paper:#f6fbfd;
  --ink:#14213d;
  --muted:#5e7187;
  --glass:rgba(255,255,255,.74);
  --glass-strong:rgba(255,255,255,.88);
  --line:rgba(36,53,127,.16);
  --shadow:0 22px 70px rgba(20,33,61,.15);
  --soft-shadow:0 14px 38px rgba(20,33,61,.10);
  --radius-xl:34px;
  --radius-lg:24px;
  --mx:50%;
  --my:24%;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  min-height:100vh;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
  color:var(--ink);
  background:
    radial-gradient(circle at var(--mx) var(--my),rgba(0,142,154,.22),transparent 28rem),
    radial-gradient(circle at 10% 12%,rgba(36,53,127,.14),transparent 28rem),
    radial-gradient(circle at 88% 12%,rgba(150,55,130,.13),transparent 30rem),
    linear-gradient(135deg,#f9fcff,#eef7fb 48%,#f9fbff);
  overflow-x:hidden;
}
body:before{
  content:"";
  position:fixed;
  inset:-28%;
  z-index:-4;
  pointer-events:none;
  background-image:linear-gradient(rgba(36,53,127,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(36,53,127,.045) 1px,transparent 1px);
  background-size:62px 62px;
  transform:translate3d(calc((var(--mx) - 50%) / 30),calc((var(--my) - 50%) / 30),0) rotate(-2deg);
  opacity:.55;
  animation:gridMove 18s linear infinite;
}
body:after{
  content:"";
  position:fixed;
  width:560px;
  height:560px;
  border-radius:999px;
  left:-240px;
  bottom:-260px;
  z-index:-3;
  pointer-events:none;
  background:radial-gradient(circle,rgba(0,142,154,.17),transparent 68%);
  animation:orbFloat 12s ease-in-out infinite alternate;
}
#orbLayer{position:fixed;inset:0;z-index:-2;width:100%;height:100%;pointer-events:none;opacity:.82}
a{color:inherit}img{display:block;max-width:100%}
.loader-screen{position:fixed;inset:0;z-index:50;display:grid;place-items:center;background:linear-gradient(135deg,#f8fcff,#eef7fb);transition:opacity .45s ease,visibility .45s ease}
.loader-screen.is-hidden{opacity:0;visibility:hidden}
.loader-card{width:min(330px,88vw);padding:26px 22px;border-radius:28px;background:rgba(255,255,255,.82);border:1px solid rgba(36,53,127,.13);box-shadow:var(--shadow);display:grid;place-items:center;gap:14px;text-align:center;color:var(--gns-blue);font-weight:850;backdrop-filter:blur(18px)}
.loader-logo{width:min(240px,70vw);height:auto;object-fit:contain;border-radius:0;box-shadow:none;animation:pulseLogo 1.55s ease-in-out infinite}
.loader-bar{width:170px;height:7px;border-radius:999px;background:rgba(36,53,127,.12);overflow:hidden}.loader-bar span{display:block;width:45%;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--gns-blue),var(--gns-teal));animation:loadBar 1.1s ease-in-out infinite}
.page-shell{width:min(1160px,calc(100% - 40px));margin:0 auto;padding:22px 0 36px}
.site-header{display:grid;grid-template-columns:auto minmax(260px,1fr);gap:26px;align-items:center;padding:16px 22px;border:1px solid var(--line);border-radius:28px;background:linear-gradient(135deg,rgba(255,255,255,.74),rgba(255,255,255,.52));box-shadow:var(--soft-shadow);backdrop-filter:blur(18px);position:relative;overflow:hidden}
.site-header:after{content:"";position:absolute;width:250px;height:250px;border-radius:999px;right:-130px;top:-155px;background:radial-gradient(circle,rgba(0,142,154,.13),transparent 70%);pointer-events:none;transition:transform .24s ease}
.logo-cluster{display:flex;align-items:center;gap:22px;min-width:0;position:relative;z-index:1}.logo-link{display:flex;align-items:center;justify-content:center;border-radius:22px;text-decoration:none;background:transparent;transition:transform .2s ease,filter .2s ease;will-change:transform}.logo-link:hover{transform:translateY(-2px) scale(1.012);filter:drop-shadow(0 12px 18px rgba(36,53,127,.16))}.logo-gns{width:185px;height:auto}.logo-csbp{width:124px;height:auto;max-height:124px;object-fit:contain}.header-copy{text-align:right;position:relative;z-index:1}.header-eyebrow{margin:0 0 5px;font-size:.76rem;font-weight:900;color:var(--gns-teal);text-transform:uppercase;letter-spacing:.12em}.header-copy strong{display:block;color:var(--gns-blue);font-size:1rem;line-height:1.3}.header-copy span{display:block;margin-top:4px;color:var(--muted);font-size:.86rem}.hero{position:relative;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(300px,.82fr);gap:26px;align-items:stretch;margin-top:28px}.hero-card,.info-panel,.action-card,.diagnostic-card,.diagnostic-aside{border:1px solid var(--line);background:var(--glass);box-shadow:var(--shadow);backdrop-filter:blur(18px);transform-style:preserve-3d;will-change:transform}.hero-card{position:relative;overflow:hidden;min-height:492px;padding:clamp(28px,4vw,52px);border-radius:var(--radius-xl)}.hero-card:before,.diagnostic-card:before{content:"";position:absolute;inset:-2px;background:radial-gradient(circle at var(--mx) var(--my),rgba(255,255,255,.82),transparent 22rem),linear-gradient(115deg,rgba(36,53,127,.10),transparent 34%,rgba(0,142,154,.12) 64%,rgba(150,55,130,.08));z-index:-1}.hero-card:after{content:"";position:absolute;width:360px;height:360px;right:-150px;top:-150px;border-radius:999px;background:radial-gradient(circle,rgba(0,142,154,.16),transparent 68%);pointer-events:none}.badge-line{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:20px}.badge{display:inline-flex;align-items:center;gap:8px;padding:9px 12px;border-radius:999px;background:rgba(255,255,255,.72);color:var(--gns-blue);border:1px solid rgba(36,53,127,.12);font-size:.84rem;font-weight:850}.badge:before{content:"";width:8px;height:8px;border-radius:999px;background:var(--gns-teal);box-shadow:0 0 0 6px rgba(0,142,154,.12)}h1{max-width:820px;margin:0;font-size:clamp(2.25rem,5.5vw,5.65rem);line-height:.96;letter-spacing:-.07em;color:var(--gns-blue)}.hero-subtitle{max-width:700px;margin:22px 0 0;font-size:clamp(1rem,2vw,1.18rem);line-height:1.65;color:#43546c}.hero-subtitle strong{color:var(--gns-blue)}.side-stack{display:grid;gap:18px}.info-panel,.action-card{border-radius:var(--radius-lg);padding:24px}.info-title{margin:0 0 12px;color:var(--gns-blue);font-size:1.1rem}.info-list{display:grid;gap:13px;margin:0;padding:0;list-style:none}.info-list li{display:grid;grid-template-columns:32px 1fr;gap:12px;align-items:start;color:#445870;line-height:1.45;font-size:.94rem}.info-list b{color:var(--ink)}.icon-dot{width:32px;height:32px;display:grid;place-items:center;border-radius:12px;color:white;font-weight:900;background:linear-gradient(135deg,var(--gns-blue),var(--gns-teal));transition:transform .22s ease}.info-list li:hover .icon-dot{transform:rotate(-5deg) scale(1.07)}.action-card{background:linear-gradient(135deg,rgba(36,53,127,.96),rgba(0,142,154,.90));color:white;position:relative;overflow:hidden}.action-card:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at var(--mx) var(--my),rgba(255,255,255,.18),transparent 18rem);pointer-events:none}.action-card h2,.action-card p,.action-card a,.module-note{position:relative;z-index:1}.action-card h2{margin:0 0 9px;font-size:1.2rem}.action-card p{margin:0;line-height:1.55;color:rgba(255,255,255,.86)}.module-note{margin-top:12px;color:rgba(255,255,255,.80);font-size:.86rem;text-align:center}.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:15px 22px;border-radius:999px;border:1px solid transparent;text-decoration:none;font-weight:900;transition:transform .18s ease,box-shadow .18s ease,background .18s ease;cursor:pointer;overflow:hidden}.btn:before{content:"";position:absolute;inset:-80% -50%;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.35),transparent 62%);transform:translateX(-70%) rotate(7deg);animation:shine 3.8s ease-in-out infinite}.btn span,.btn{isolation:isolate}.btn-primary{color:white;background:linear-gradient(135deg,var(--gns-blue),var(--gns-teal));box-shadow:0 18px 36px rgba(36,53,127,.22)}.btn-primary:hover{transform:translateY(-3px);box-shadow:0 22px 46px rgba(36,53,127,.26)}.btn-secondary,.action-card .btn{background:rgba(255,255,255,.90);color:var(--gns-blue);border-color:rgba(36,53,127,.14)}.btn-secondary:hover,.action-card .btn:hover{transform:translateY(-2px);background:white}.action-card .btn{margin-top:18px;width:100%}.sections{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:22px}.section-card{position:relative;overflow:hidden;min-height:180px;padding:22px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--glass-strong);box-shadow:var(--soft-shadow);transition:transform .22s ease,box-shadow .22s ease}.section-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}.section-card:after{content:"";position:absolute;width:140px;height:140px;border-radius:999px;right:-80px;bottom:-80px;background:rgba(0,142,154,.14);transition:transform .22s ease}.section-card:hover:after{transform:scale(1.25)}.section-card h3{margin:12px 0 8px;color:var(--gns-blue);font-size:1.02rem}.section-card p{margin:0;color:var(--muted);font-size:.91rem;line-height:1.48}.card-number{width:38px;height:38px;display:grid;place-items:center;border-radius:14px;color:white;background:linear-gradient(135deg,var(--gns-blue),var(--gns-teal));font-weight:900}.footer{margin-top:28px;padding:18px 6px;color:var(--muted);font-size:.86rem;text-align:center}.diagnostic-layout{display:grid;grid-template-columns:minmax(0,1.02fr) minmax(320px,.85fr);gap:24px;margin-top:28px}.diagnostic-card,.diagnostic-aside{border-radius:var(--radius-xl);padding:clamp(26px,4vw,44px);position:relative;overflow:hidden}.diagnostic-card h1{font-size:clamp(2.15rem,5vw,4.6rem)}.diagnostic-aside{border-radius:var(--radius-lg)}.diagnostic-actions{display:flex;flex-wrap:wrap;gap:13px;margin-top:28px}.check-list{display:grid;gap:14px;margin:20px 0 0;padding:0;list-style:none}.check-list li{display:grid;grid-template-columns:30px 1fr;gap:12px;color:#43546c;line-height:1.45}.check-list li:before{content:"✓";display:grid;place-items:center;width:30px;height:30px;border-radius:10px;color:white;background:var(--gns-teal);font-weight:900}.warn-box{margin-top:20px;padding:16px;border-radius:18px;background:rgba(255,255,255,.74);border:1px solid rgba(36,53,127,.14);color:var(--muted);line-height:1.48;font-size:.93rem}.floating-icons{position:fixed;inset:0;pointer-events:none;z-index:-1;overflow:hidden}.floating-icons span{position:absolute;width:42px;height:42px;border-radius:16px;border:1px solid rgba(36,53,127,.13);background:rgba(255,255,255,.38);backdrop-filter:blur(8px);display:grid;place-items:center;color:rgba(36,53,127,.35);font-weight:900;animation:floatIcon 9s ease-in-out infinite alternate}.floating-icons span:nth-child(1){left:8%;top:32%;animation-delay:-1s}.floating-icons span:nth-child(2){right:12%;top:30%;animation-delay:-3s}.floating-icons span:nth-child(3){left:20%;bottom:14%;animation-delay:-5s}.floating-icons span:nth-child(4){right:24%;bottom:18%;animation-delay:-7s}.site-message{position:fixed;left:50%;bottom:24px;transform:translateX(-50%) translateY(20px);z-index:30;width:min(520px,calc(100% - 28px));padding:15px 18px;border-radius:18px;background:#fff8e6;color:#6c4a00;border:1px solid rgba(214,195,55,.5);box-shadow:var(--soft-shadow);opacity:0;visibility:hidden;transition:.25s ease;font-weight:700}.site-message.is-visible{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
@keyframes gridMove{from{background-position:0 0,0 0}to{background-position:124px 124px,124px 124px}}@keyframes orbFloat{from{transform:translate3d(0,0,0) scale(1)}to{transform:translate3d(28px,-20px,0) scale(1.06)}}@keyframes pulseLogo{0%,100%{transform:scale(1)}50%{transform:scale(1.045)}}@keyframes loadBar{0%{transform:translateX(-105%)}100%{transform:translateX(235%)}}@keyframes shine{0%,45%{transform:translateX(-70%) rotate(7deg)}75%,100%{transform:translateX(82%) rotate(7deg)}}@keyframes floatIcon{from{transform:translate3d(0,0,0) rotate(0deg)}to{transform:translate3d(24px,-18px,0) rotate(9deg)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}#orbLayer{display:none}.loader-screen{display:none}}
@media(max-width:980px){.site-header{grid-template-columns:1fr;text-align:center}.logo-cluster{justify-content:center}.header-copy{text-align:center}.hero,.diagnostic-layout{grid-template-columns:1fr}.hero-card{min-height:auto}.sections{grid-template-columns:repeat(2,1fr)}.diagnostic-actions{flex-direction:column}.diagnostic-actions .btn{width:100%}}
@media(max-width:620px){.page-shell{width:min(100% - 24px,1160px);padding-top:12px}.site-header{padding:14px;border-radius:22px;gap:13px}.logo-cluster{gap:14px}.logo-gns{width:145px}.logo-csbp{width:94px;max-height:94px}.header-copy strong{font-size:.9rem}.header-copy span{font-size:.79rem}.hero{margin-top:16px;gap:16px}.hero-card,.diagnostic-card,.diagnostic-aside{border-radius:24px;padding:24px 20px}h1{letter-spacing:-.05em}.sections{grid-template-columns:1fr}.info-panel,.action-card,.section-card{padding:20px;border-radius:22px}.btn{width:100%;min-height:54px}.floating-icons span{opacity:.50;transform:scale(.85)}}

/* Ajustes finales de adaptabilidad móvil/tablet: no modifica contenido, solo reacomoda */
html, body { width: 100%; max-width: 100%; }
.site-header, .hero, .diagnostic-layout, .sections, .hero-card, .diagnostic-card, .diagnostic-aside, .info-panel, .action-card, .section-card { min-width: 0; }
h1, h2, h3, p, span, a, li, strong { overflow-wrap: break-word; }
.logo-cluster { flex-wrap: wrap; }
.site-header { overflow: visible; }
.loader-card { max-width: calc(100vw - 28px); }
.loader-logo { max-width: min(240px, 76vw); }

@media (max-width: 820px) {
  .page-shell { width: min(100% - 28px, 1160px); padding: 14px 0 26px; }
  .site-header { gap: 14px; padding: 14px 16px; }
  .logo-cluster { width: 100%; justify-content: center; gap: 16px; }
  .logo-gns { width: clamp(150px, 39vw, 210px); }
  .logo-csbp { width: clamp(82px, 18vw, 120px); max-height: 120px; }
  .header-copy { max-width: 620px; margin: 0 auto; }
  .hero, .diagnostic-layout { gap: 18px; margin-top: 18px; }
  .hero-card, .diagnostic-card, .diagnostic-aside { padding: clamp(22px, 4.5vw, 32px); }
  h1 { font-size: clamp(2.05rem, 8vw, 4.1rem); line-height: 1.02; }
  .hero-subtitle { font-size: clamp(.96rem, 2.8vw, 1.08rem); line-height: 1.58; }
  .side-stack { gap: 16px; }
}

@media (max-width: 560px) {
  .page-shell { width: min(100% - 20px, 1160px); padding-top: 10px; }
  .site-header { border-radius: 20px; padding: 12px; }
  .logo-cluster { display: grid; grid-template-columns: 1fr auto; align-items: center; column-gap: 10px; row-gap: 8px; }
  .logo-link:first-child { justify-self: start; }
  .logo-link:last-child { justify-self: end; }
  .logo-gns { width: min(172px, 55vw); }
  .logo-csbp { width: min(86px, 26vw); max-height: 86px; }
  .header-copy strong { font-size: .86rem; line-height: 1.25; }
  .header-copy span { font-size: .76rem; }
  .header-eyebrow { font-size: .67rem; letter-spacing: .08em; }
  .badge-line { gap: 7px; }
  .badge { font-size: .72rem; padding: 7px 9px; }
  .hero-card, .diagnostic-card, .diagnostic-aside { padding: 21px 16px; border-radius: 22px; }
  h1 { font-size: clamp(1.86rem, 10vw, 2.8rem); line-height: 1.03; letter-spacing: -.045em; }
  .hero-subtitle { margin-top: 16px; }
  .info-list li, .check-list li { grid-template-columns: 28px 1fr; gap: 10px; font-size: .90rem; }
  .icon-dot, .check-list li:before { width: 28px; height: 28px; border-radius: 10px; }
  .sections { gap: 12px; }
  .section-card { min-height: auto; }
  .diagnostic-actions { gap: 10px; }
  .warn-box { font-size: .88rem; }
  .loader-card { padding: 22px 16px; border-radius: 24px; }
  .loader-logo { max-width: min(205px, 72vw); }
  .loader-card div:not(.loader-bar) { font-size: .92rem; line-height: 1.35; }
  .floating-icons span { width: 32px; height: 32px; border-radius: 12px; }
}

@media (max-width: 380px) {
  .page-shell { width: min(100% - 16px, 1160px); }
  .logo-gns { width: min(150px, 54vw); }
  .logo-csbp { width: min(72px, 25vw); max-height: 72px; }
  h1 { font-size: 1.68rem; }
  .hero-card, .diagnostic-card, .diagnostic-aside, .info-panel, .action-card, .section-card { padding: 18px 14px; }
  .btn { padding-left: 14px; padding-right: 14px; font-size: .93rem; }
}
