
:root {
  --navy: #0c2c4f;
  --navy-2: #123d67;
  --navy-3: #0a223d;
  --teal: #1790aa;
  --teal-2: #8ed5e4;
  --green: #83b23e;
  --blue: #4c9ede;
  --cream: #f6f2ec;
  --paper: #fffdf9;
  --paper-2: #fbf8f2;
  --white: #ffffff;
  --ink: #25313b;
  --muted: #6d7a85;
  --line: rgba(12, 44, 79, .12);
  --line-light: rgba(255,255,255,.14);
  --shadow: 0 24px 70px rgba(12,44,79,.12);
  --shadow-deep: 0 40px 90px rgba(8,32,56,.18);
  --radius: 24px;
  --shell: min(1220px, calc(100% - 48px));
  --header-h: 86px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--ink);
  background: var(--cream);
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button, a { -webkit-tap-highlight-color: transparent; }
svg { width: 100%; height: 100%; stroke: currentColor; stroke-width: 2.1; stroke-linecap: round; stroke-linejoin: round; }

.skip-link {
  position: fixed; left: 12px; top: -60px; z-index: 9999;
  background: var(--white); color: var(--navy); padding: 10px 14px; border-radius: 10px;
}
.skip-link:focus { top: 12px; }
.shell { width: var(--shell); margin: 0 auto; }
.narrow { max-width: 1020px; }
.section { position: relative; padding: 106px 0; overflow: clip; }
.section-bg { position: absolute; inset: 0; pointer-events: none; }
.section-heading { max-width: 760px; margin-bottom: 58px; position: relative; z-index: 2; }
.section-heading h2, .section-intro h2, .technology-copy h2, .dashboard-copy h2, .problem-copy h2, .alliances-copy h2, .final-cta h2 {
  margin: 8px 0 20px;
  color: var(--navy);
  font-size: clamp(2.3rem, 4.35vw, 4.75rem);
  line-height: .97;
  letter-spacing: -.05em;
}
.section-heading p, .section-lead, .technology-copy p, .dashboard-copy p, .problem-copy p, .alliances-copy p, .final-cta p {
  margin: 0;
  max-width: 760px;
  font-size: clamp(1.03rem, 1.4vw, 1.26rem);
  color: #576774;
}
.eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  color: var(--teal); font-size: .78rem; text-transform: uppercase; letter-spacing: .18em; font-weight: 800;
}
.eyebrow::before { content: ""; width: 28px; height: 2px; background: currentColor; }
.eyebrow-light { color: #8ed5e4; }

.button {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 52px; padding: 0 22px; border-radius: 999px;
  border: 1px solid transparent; font-size: .92rem; font-weight: 760; transition: .25s ease;
}
.button:hover { transform: translateY(-2px); }
.button-small { min-height: 44px; padding: 0 17px; font-size: .84rem; }
.button-primary { background: var(--teal); color: var(--white); box-shadow: 0 12px 30px rgba(23,144,170,.25); }
.button-primary:hover { background: #117f97; }
.button-outline { border-color: rgba(12,44,79,.18); color: var(--navy); background: rgba(255,255,255,.65); }
.button-outline:hover { border-color: var(--teal); color: var(--teal); }
.button-ghost { border-color: rgba(255,255,255,.42); color: var(--white); background: rgba(255,255,255,.08); backdrop-filter: blur(12px); }
.button-ghost:hover { background: rgba(255,255,255,.15); }
.button-light { background: var(--white); color: var(--navy); }
.text-link { color: var(--white); font-weight: 700; border-bottom: 1px solid rgba(255,255,255,.34); padding-bottom: 4px; }

.site-header {
  position: fixed; z-index: 1000; inset: 0 0 auto 0; height: var(--header-h);
  display: flex; align-items: center; transition: .3s ease;
  background: rgba(246,242,236,.92); backdrop-filter: blur(18px); border-bottom: 1px solid rgba(12,44,79,.08);
}
.site-header.is-scrolled { height: 74px; box-shadow: 0 12px 40px rgba(12,44,79,.08); }
.header-inner { display: grid; grid-template-columns: auto 1fr auto; gap: 30px; align-items: center; }
.brand img { width: 255px; height: 52px; object-fit: contain; object-position: left center; }
.main-nav { display: flex; align-items: center; justify-content: center; gap: clamp(14px, 1.6vw, 26px); }
.main-nav a { font-size: .84rem; color: #3b4f61; font-weight: 700; position: relative; }
.main-nav a::after { content:''; position:absolute; left:0; right:0; bottom:-8px; height:2px; background:var(--teal); transform:scaleX(0); transform-origin:center; transition:.25s ease; }
.main-nav a:hover { color: var(--teal); }
.main-nav a:hover::after { transform: scaleX(1); }
.header-actions { display: flex; align-items: center; gap: 12px; }
.menu-toggle { display: none; width: 44px; height: 44px; border-radius: 50%; background: var(--navy); border: 0; padding: 12px; }
.menu-toggle span { display: block; height: 2px; background: white; margin: 4px 0; border-radius: 2px; }

.hero {
  min-height: 840px; height: 100svh; max-height: 980px; display: flex; align-items: center; position: relative; color: var(--white);
}
.hero-media { position: absolute; inset: 0; background: url('../images/hero-totem.png') center 48%/cover no-repeat; transform: scale(1.04); }
.hero-overlay {
  position: absolute; inset: 0;
  background:
  radial-gradient(circle at 74% 28%, rgba(142,213,228,.18), transparent 22%),
  radial-gradient(circle at 83% 74%, rgba(131,178,62,.12), transparent 22%),
  linear-gradient(90deg, rgba(8,35,63,.95) 0%, rgba(8,35,63,.86) 34%, rgba(8,35,63,.35) 70%, rgba(8,35,63,.16) 100%),
  linear-gradient(0deg, rgba(8,35,63,.34), rgba(8,35,63,.08));
}
.hero-grid-lines {
  position:absolute; inset:0; opacity:.18;
  background:
    linear-gradient(to right, transparent 0 8%, rgba(255,255,255,.09) 8% 8.2%, transparent 8.2% 100%),
    linear-gradient(to bottom, transparent 0 84%, rgba(255,255,255,.08) 84% 84.3%, transparent 84.3% 100%);
}
.hero-tech {
  position:absolute; border-radius:999px; border:1px solid rgba(142,213,228,.22); background:rgba(255,255,255,.03); backdrop-filter: blur(4px); box-shadow:0 0 0 1px rgba(255,255,255,.02) inset;
}
.hero-tech::before,.hero-tech::after { content:''; position:absolute; inset:18%; border-radius:inherit; border:1px solid rgba(142,213,228,.15); }
.hero-tech-1 { width: 140px; height: 140px; right: 18%; top: 18%; }
.hero-tech-2 { width: 200px; height: 200px; right: 8%; bottom: 18%; }
.hero-tech-3 { width: 74px; height: 74px; left: 56%; bottom: 22%; }
.hero-grid { position: relative; z-index: 2; display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(280px, .55fr); gap: 80px; align-items: end; padding-top: var(--header-h); }
.hero-copy { max-width: 760px; }
.hero h1 { margin: 16px 0 26px; max-width: 740px; font-size: clamp(3.7rem, 7vw, 7.6rem); line-height: .88; letter-spacing: -.06em; }
.hero-lead { max-width: 700px; margin: 0 0 32px; font-size: clamp(1.1rem, 1.65vw, 1.42rem); color: rgba(255,255,255,.84); }
.hero-cta { display: flex; gap: 12px; flex-wrap: wrap; }
.brand-signature { margin-top: 36px; display: flex; gap: 28px; flex-wrap: wrap; font-size: .82rem; color: rgba(255,255,255,.7); font-weight: 700; }
.brand-signature span { display: inline-flex; align-items: center; gap: 8px; }
.dot { width: 8px; height: 8px; border-radius: 50%; display: inline-block; }
.dot-teal { background: var(--teal); }.dot-green { background: var(--green); }.dot-blue { background: var(--blue); }
.hero-card {
  align-self: end; margin-bottom: 16px; padding: 26px; border-radius: 24px;
  background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.22); backdrop-filter: blur(18px); box-shadow: 0 24px 70px rgba(0,0,0,.16);
}
.hero-card .micro-label { display: block; margin-bottom: 14px; font-size: .72rem; text-transform: uppercase; letter-spacing: .16em; color: #95dce7; font-weight: 800; }
.hero-card strong { display: block; font-size: 1.28rem; line-height: 1.18; }
.hero-card p { margin: 14px 0 0; color: rgba(255,255,255,.74); font-size: .9rem; }
.mini-flow { margin-top: 20px; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: .78rem; }
.mini-flow span { padding: 7px 9px; border-radius: 8px; background: rgba(255,255,255,.1); }
.mini-flow b { color:#82d6e3; }
.hero-metrics { margin-top: 18px; display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.hero-metrics article { padding:12px 12px; border-radius:14px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.12); }
.hero-metrics small { display:block; color:#8ed5e4; font-size:.7rem; font-weight:800; letter-spacing:.12em; margin-bottom:4px; }
.hero-metrics strong { font-size:.9rem; }
.scroll-cue { position: absolute; z-index: 3; bottom: 24px; left: 50%; transform: translateX(-50%); font-size: .72rem; color: rgba(255,255,255,.62); display: flex; gap: 8px; align-items: center; text-transform: uppercase; letter-spacing: .14em; }

.section-intro { background: var(--paper); }
.triptych { margin-top: 64px; display: grid; grid-template-columns: repeat(3,1fr); border-top: 1px solid var(--line); }
.triptych article { padding: 30px 28px 0 0; min-height: 270px; position:relative; }
.triptych article + article { border-left: 1px solid var(--line); padding-left: 30px; }
.triptych-icon { width: 58px; height: 58px; display:grid; place-items:center; color:var(--teal); background:#e9f6f8; border-radius:16px; margin-bottom:20px; box-shadow:0 14px 28px rgba(12,44,79,.06); }
.triptych-index { color: var(--teal); font-size: .72rem; font-weight: 800; letter-spacing: .13em; }
.triptych h3 { margin: 12px 0 10px; color: var(--navy); font-size: 1.45rem; }
.triptych p { margin: 0; color: #60707c; font-size: .98rem; }
.triptych article:hover .triptych-icon { transform: translateY(-2px); background:#ddf2f6; }

.ecosystem { background: var(--cream); }
.ecosystem-bg {
  background: radial-gradient(circle at 18% 26%, rgba(131,178,62,.10), transparent 18%), radial-gradient(circle at 82% 68%, rgba(23,144,170,.12), transparent 18%), linear-gradient(rgba(246,242,236,.92), rgba(246,242,236,.96)), url('../images/campus-bg.png') center/cover no-repeat;
  opacity: .35;
}
.ecosystem-layout { position:relative; z-index:2; display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }
.ecosystem-visual { height: 540px; position: relative; display: grid; place-items: center; }
.core-mark { z-index: 3; width: 220px; height: 220px; border-radius: 50%; background: linear-gradient(160deg, #0c2c4f, #163f68); color: var(--white); display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; box-shadow: var(--shadow); }
.core-small { font-size: .72rem; letter-spacing: .18em; text-transform: uppercase; color: #9ddce7; }.core-mark strong{font-size:1.4rem}.core-mark em{font-style:normal;font-size:.68rem;color:rgba(255,255,255,.6);margin-top:8px}
.orbit { position: absolute; border: 1px solid rgba(12,44,79,.12); border-radius: 50%; }
.orbit-a{width:360px;height:360px}.orbit-b{width:500px;height:500px;border-style:dashed}.orbit-c{width:420px;height:420px;border-color:rgba(23,144,170,.18)}
.node { position: absolute; z-index: 4; padding: 11px 16px; background: var(--white); border: 1px solid var(--line); border-radius: 999px; color: var(--navy); font-size: .84rem; font-weight: 800; box-shadow: 0 12px 35px rgba(12,44,79,.08); }
.node-a{top:30px;left:50%;transform:translateX(-50%)}.node-b{right:10px;top:47%}.node-c{bottom:30px;left:50%;transform:translateX(-50%)}.node-d{left:10px;top:47%}
.feature-list { border-top: 1px solid var(--line); }
.feature-row { display: grid; grid-template-columns: 48px 58px 1fr; gap: 16px; padding: 22px 0; border-bottom: 1px solid var(--line); align-items:start; }
.feature-number { color: var(--teal); font-size: .75rem; font-weight: 800; margin-top: 10px; }
.feature-icon { width:48px; height:48px; border-radius:14px; color:var(--teal); background:#ebf6f8; padding:12px; }
.feature-row h3 { margin: 0 0 5px; color: var(--navy); font-size: 1.15rem; }
.feature-row p { margin: 0; color: #64727d; }
.feature-row:hover .feature-icon { background:#ddf1f5; transform:translateY(-2px); }

.problem-section { background: var(--navy); color: var(--white); }
.problem-bg { background: linear-gradient(rgba(12,44,79,.88), rgba(12,44,79,.92)), url('../images/campus-bg.png') center/cover no-repeat; opacity:.28; }
.problem-bg::before { content:''; position:absolute; inset:0; background: radial-gradient(circle at 70% 24%, rgba(142,213,228,.18), transparent 22%), radial-gradient(circle at 80% 70%, rgba(76,158,222,.14), transparent 22%); }
.problem-grid { position:relative; z-index:2; display: grid; grid-template-columns: 1.1fr .9fr; gap: 90px; align-items: start; }
.problem-copy h2 { color: var(--white); }
.problem-copy p { color: rgba(255,255,255,.72); }
.problem-points { display: grid; gap: 16px; }
.problem-points article { display: grid; grid-template-columns: 46px 48px 1fr; gap: 14px; padding: 22px; border: 1px solid rgba(255,255,255,.14); border-radius: 20px; background: rgba(255,255,255,.07); backdrop-filter: blur(8px); }
.problem-points article span { width: 38px; height: 38px; border-radius: 50%; background: rgba(142,213,228,.14); color: #8ed5e4; display: grid; place-items: center; font-size: .72rem; font-weight: 800; }
.problem-icon { width:46px; height:46px; color:#8ed5e4; padding:10px; border-radius:14px; background:rgba(255,255,255,.07); }
.problem-points strong { font-size: 1rem; }.problem-points p{margin:2px 0 0;color:rgba(255,255,255,.64);font-size:.88rem}

.how-it-works { background: var(--paper); }
.journey-bg { background: radial-gradient(circle at 22% 25%, rgba(23,144,170,.08), transparent 18%), radial-gradient(circle at 78% 72%, rgba(131,178,62,.08), transparent 20%); opacity:1; }
.journey-stage { position:relative; z-index:2; min-height: 360px; margin-bottom: 34px; border-radius: 28px; overflow: hidden; background: linear-gradient(135deg, rgba(12,44,79,.03), rgba(23,144,170,.04)); border:1px solid var(--line); box-shadow:var(--shadow); }
.journey-stage-image { position:absolute; inset:0; }
.journey-stage-image img { width:100%; height:100%; object-fit: cover; opacity:.24; }
.journey-stage::after { content:''; position:absolute; inset:0; background: linear-gradient(180deg, rgba(255,255,255,.34), rgba(255,255,255,.82)); }
.journey-chip { position:absolute; z-index:2; padding:10px 16px; border-radius:999px; background:rgba(255,255,255,.9); border:1px solid rgba(12,44,79,.08); color:var(--navy); font-weight:800; box-shadow:0 10px 30px rgba(12,44,79,.08); }
.journey-chip-a { top:32px; left:32px; }
.journey-chip-b { bottom:34px; left:50%; transform:translateX(-50%); }
.journey-chip-c { top:32px; right:32px; }
.journey-track-line { position:relative; height:40px; }
.journey-track-line::before { content:''; position:absolute; left:4%; right:4%; top:20px; height:4px; border-radius:99px; background:linear-gradient(90deg, rgba(23,144,170,.16), rgba(23,144,170,.44), rgba(76,158,222,.18)); }
.journey-track-line::after { content:''; position:absolute; left:4%; top:12px; width:120px; height:20px; border-radius:99px; background: radial-gradient(circle, rgba(23,144,170,.36) 0, rgba(23,144,170,.14) 35%, transparent 60%); animation: pulseLine 6s ease-in-out infinite; }
@keyframes pulseLine { 0%{transform:translateX(0)} 50%{transform:translateX(calc(100vw - 360px))} 100%{transform:translateX(0)} }
.timeline { display: grid; grid-template-columns: repeat(5,1fr); position:relative; z-index:2; }
.timeline article { min-height: 210px; padding: 28px 22px 0 0; position: relative; transition:.25s ease; }
.timeline article::before { content:''; position:absolute; top:-21px; left:0; width:16px; height:16px; border-radius:50%; background:var(--white); border:4px solid var(--teal); box-shadow:0 0 0 10px rgba(23,144,170,.08); }
.timeline article + article { padding-left: 22px; border-left: 1px solid var(--line); }
.timeline span { color: var(--teal); font-size: .75rem; font-weight: 800; }
.timeline h3 { margin:12px 0 8px; color:var(--navy); font-size:1.15rem }
.timeline p { margin:0; color:#657681; font-size:.9rem }
.timeline article:hover, .timeline article.is-active { transform:translateY(-5px); }
.timeline article:hover::before, .timeline article.is-active::before { background:var(--teal); }

.technology-section { background: #0c3156; color: var(--white); }
.tech-bg { background: radial-gradient(circle at 76% 22%, rgba(142,213,228,.18), transparent 18%), radial-gradient(circle at 86% 76%, rgba(131,178,62,.12), transparent 18%); }
.technology-grid { position:relative; z-index:2; display: grid; grid-template-columns: .9fr 1.1fr; gap: 70px; align-items: center; }
.technology-copy h2 { color: var(--white); }.technology-copy p{color:rgba(255,255,255,.72)}
.tech-tags { display: flex; flex-wrap: wrap; gap: 9px; margin: 28px 0; }.tech-tags span{padding:8px 11px;border-radius:999px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);font-size:.78rem}
.totem-panel { position: relative; min-height: 520px; border-radius: 28px; overflow: hidden; background: #0a2846; box-shadow: 0 30px 90px rgba(0,0,0,.25); }
.totem-panel img { width: 100%; height: 520px; object-fit: cover; opacity: .9; }
.totem-panel::after { content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(12,49,86,.56),transparent 55%);pointer-events:none }
.hotspot { position: absolute; z-index: 3; display: flex; align-items: center; gap: 8px; padding: 9px 12px; border-radius: 10px; background: rgba(255,255,255,.88); color: var(--navy); font-size: .75rem; box-shadow: 0 10px 30px rgba(0,0,0,.16); }.hotspot b{color:var(--teal)}
.hotspot-1{top:80px;right:32px}.hotspot-2{top:190px;left:34px}.hotspot-3{bottom:55px;right:55px}

.dashboard-section { background: var(--cream); }
.dashboard-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 70px; align-items: center; }
.dashboard-screen { padding: 18px; background: var(--white); border: 1px solid var(--line); border-radius: 26px; box-shadow: var(--shadow); }
.dashboard-screen img { width: 100%; aspect-ratio: 16/9; object-fit: cover; border-radius: 16px; }
.data-metrics { margin-top: 30px; border-top: 1px solid var(--line); }
.data-metrics article { padding: 16px 0; display: grid; grid-template-columns: 62px 1fr; gap: 14px; border-bottom: 1px solid var(--line); align-items:center; }
.metric-icon { width:50px; height:50px; border-radius:14px; background:#eef7f8; color:var(--teal); padding:12px; }
.data-metrics strong{display:block; color:var(--navy)}.data-metrics span{display:block; color:#667784;font-size:.9rem}

.research-section { background: var(--paper); }
.research-bg { background: linear-gradient(rgba(255,253,249,.82), rgba(255,253,249,.95)), url('../images/campus-bg.png') center/cover no-repeat; opacity:.35; }
.research-grid { position:relative; z-index:2; display: grid; grid-template-columns: repeat(4,1fr); border-top: 1px solid var(--line); }
.research-grid article { padding: 28px 22px 30px 0; }
.research-grid article + article { border-left: 1px solid var(--line); padding-left: 22px; }
.research-letter { width: 36px; height: 36px; border-radius: 10px; display: grid; place-items: center; background: #eaf4f6; color: var(--teal); font-weight: 900; margin-bottom:12px; }
.research-icon { width:52px; height:52px; border-radius:14px; display:grid; place-items:center; background:#ffffff; color:var(--teal); padding:12px; box-shadow:0 14px 26px rgba(12,44,79,.06); }
.research-grid h3 { color: var(--navy); font-size: 1rem; margin: 16px 0 8px; }.research-grid p{margin:0;color:#667783;font-size:.9rem}
.research-cta { margin-top: 46px; padding: 28px; display: grid; grid-template-columns: repeat(3,1fr) auto; gap: 28px; align-items: center; border-radius: 22px; background: #eff3ec; position:relative; z-index:2; }
.research-cta div { display: grid; gap: 3px; }.research-cta strong{color:var(--navy)}.research-cta span{color:#60717e;font-size:.83rem}

.applications-section { background: var(--cream); }
.applications-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; }
.application { position: relative; min-height: 310px; padding: 22px; border-radius: 24px; overflow: hidden; display: flex; flex-direction: column; justify-content: flex-end; color: var(--white); background: var(--navy); box-shadow: var(--shadow); }
.application::before { content:""; position:absolute;inset:0; background: linear-gradient(180deg,rgba(8,32,56,.1) 15%,rgba(7,29,52,.94) 100%); z-index:0; }
.application::after { content:"";position:absolute;inset:0;opacity:.42;background:radial-gradient(circle at 76% 25%,var(--teal),transparent 34%); }
.application-icon { position:absolute; left:22px; top:22px; width:56px; height:56px; border-radius:16px; display:grid; place-items:center; z-index:2; color:#fff; background:rgba(255,255,255,.08); backdrop-filter: blur(10px); padding:12px; border:1px solid rgba(255,255,255,.12); }
.application span,.application small,.application p { position:relative;z-index:2; }
.application span{font-size:1.45rem;font-weight:800}.application small{color:rgba(255,255,255,.72);margin-top:3px}.application p{margin:12px 0 0;color:rgba(255,255,255,.7);font-size:.92rem;max-width:86%}
.application:hover{transform:translateY(-4px)}
.application-city::after{background:radial-gradient(circle at 76% 25%,var(--blue),transparent 34%)}.application-health::after{background:radial-gradient(circle at 76% 25%,var(--green),transparent 34%)}.application-company::after{background:radial-gradient(circle at 76% 25%,#8a79c4,transparent 34%)}.application-park::after{background:radial-gradient(circle at 76% 25%,#66a95a,transparent 34%)}.application-neighborhood::after{background:radial-gradient(circle at 76% 25%,#bf8a63,transparent 34%)}

.alliances-section { background: var(--navy); color: var(--white); }
.alliances-bg { background: linear-gradient(rgba(12,44,79,.92), rgba(12,44,79,.92)), url('../images/alliance-cover.png') center/cover no-repeat; opacity:.17; }
.alliances-grid { position:relative; z-index:2; display: grid; grid-template-columns: .85fr 1.15fr; gap: 80px; align-items: center; }
.alliances-copy h2{color:var(--white)}.alliances-copy p{color:rgba(255,255,255,.72)}
.alliance-model { position:relative; display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; }
.alliance-roadline { position:absolute; left:6%; right:6%; top:50%; height:2px; background:linear-gradient(90deg, rgba(142,213,228,.05), rgba(142,213,228,.26), rgba(142,213,228,.05)); transform:translateY(-50%); }
.alliance-model article { position:relative; min-height: 138px; padding: 18px; border: 1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.05); border-radius: 16px; backdrop-filter: blur(6px); }
.alliance-model span{display:block;color:#8fd8e4;font-size:.72rem;font-weight:800;margin-bottom:10px}
.alliance-icon { width:48px; height:48px; border-radius:14px; display:grid; place-items:center; background:rgba(255,255,255,.08); color:#8fd8e4; padding:12px; margin-bottom:16px; }
.alliance-model strong{font-size:.95rem}

.resources-section { background: var(--paper); }
.resources-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 14px; }
.resource-card { min-height: 328px; padding: 16px 18px 22px; border: 1px solid var(--line); border-radius: 20px; display: flex; flex-direction: column; justify-content: flex-end; background: var(--white); transition:.25s ease; box-shadow:0 12px 24px rgba(12,44,79,.03); }
.resource-thumb { width:100%; aspect-ratio: 4/3; border-radius: 14px; overflow:hidden; border:1px solid rgba(12,44,79,.08); margin-bottom:16px; background:#eef3f5; }
.resource-thumb img { width:100%; height:100%; object-fit: cover; }
.resource-card:hover { transform: translateY(-4px); border-color: rgba(23,144,170,.35); box-shadow: 0 18px 50px rgba(12,44,79,.08); }
.resource-card span{color:var(--teal);font-size:.68rem;font-weight:900;letter-spacing:.12em}.resource-card strong{margin-top:18px;color:var(--navy);font-size:1.05rem}.resource-card small{margin-top:4px;color:#6b7985}

.final-cta { background: linear-gradient(135deg,#0b2d50 0%,#0f3f69 70%,#116b7f 100%); color:var(--white); }
.final-bg { background: radial-gradient(circle at 72% 30%, rgba(142,213,228,.18), transparent 20%), radial-gradient(circle at 18% 72%, rgba(131,178,62,.12), transparent 22%); opacity:1; }
.final-cta-grid { position:relative; z-index:2; display:grid;grid-template-columns:1.15fr .85fr;gap:70px;align-items:end; }.final-cta h2{color:var(--white)}.final-cta p{color:rgba(255,255,255,.7)}
.final-actions { display:flex;flex-direction:column;align-items:flex-start;gap:18px }

.site-footer { background:#081f37;color:rgba(255,255,255,.7);padding:70px 0 24px; }
.footer-grid { display:grid;grid-template-columns:1fr 1.4fr;gap:80px;align-items:start; }
.footer-brand-lockup { display:flex; align-items:flex-start; gap:22px; }
.footer-brand img{width:230px; filter: brightness(1.12); opacity:.96; flex:0 0 auto; }
.footer-brand p{margin:0 0 10px;line-height:1.55; font-size:1rem;}.footer-brand strong{color:#fff}
.footer-brand span{font-size:.78rem;color:rgba(255,255,255,.45)}
.footer-links { display:grid;grid-template-columns:repeat(3,1fr);gap:30px }
.footer-links div{display:flex;flex-direction:column;gap:9px}.footer-links strong{color:var(--white);margin-bottom:5px}.footer-links a{font-size:.9rem}.footer-links a:hover{color:#8ed5e4}
.footer-bottom { border-top:1px solid rgba(255,255,255,.08);margin-top:55px;padding-top:22px;display:flex;justify-content:space-between;font-size:.75rem;color:rgba(255,255,255,.38) }

.reveal { opacity: 0; transform: translateY(18px); transition: opacity .8s ease, transform .8s ease; }
.reveal.is-visible{opacity:1;transform:none}.reveal-delay-1{transition-delay:.12s}
.parallax-layer { will-change: transform; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}

/* === V3 refined visual layer === */
body {
  background-image: radial-gradient(circle at 0% 0%, rgba(23,144,170,.03), transparent 18%), radial-gradient(circle at 100% 100%, rgba(131,178,62,.03), transparent 20%);
}
.section { scroll-margin-top: 88px; }
.heading-accent {
  width: 120px; height: 6px; border-radius: 999px; margin: 18px 0 6px;
  background: linear-gradient(90deg, rgba(23,144,170,.95), rgba(23,144,170,.18) 70%, transparent 100%);
}
.heading-accent-light {
  background: linear-gradient(90deg, rgba(142,213,228,.95), rgba(142,213,228,.18) 70%, transparent 100%);
}
.main-nav a.is-active { color: var(--teal); }
.main-nav a.is-active::after { transform: scaleX(1); }
.button { box-shadow: 0 8px 20px rgba(12,44,79,.05); }
.button-primary { box-shadow: 0 14px 34px rgba(23,144,170,.28); }
.button-outline { box-shadow: inset 0 1px 0 rgba(255,255,255,.5); }

.hero::before {
  content: ''; position: absolute; inset: auto 0 0 0; height: 140px;
  background: linear-gradient(180deg, rgba(246,242,236,0), rgba(246,242,236,.65) 54%, rgba(246,242,236,1));
  z-index: 1;
}
.hero-grid { align-items: center; }
.hero-copy h1 {
  text-shadow: 0 10px 28px rgba(0,0,0,.16);
}
.hero-copy .eyebrow { padding: 9px 14px; border-radius: 999px; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.14); backdrop-filter: blur(10px); }
.hero-card { position: relative; overflow: hidden; }
.hero-card::before {
  content: ''; position: absolute; inset: 0; background: linear-gradient(135deg, rgba(255,255,255,.16), transparent 56%); pointer-events: none;
}
.hero-card::after {
  content: ''; position: absolute; right: -46px; bottom: -46px; width: 130px; height: 130px; border-radius: 50%;
  background: radial-gradient(circle, rgba(142,213,228,.22), transparent 70%);
}
.hero-floating {
  position: absolute; z-index: 2; padding: 14px 16px; border-radius: 18px;
  background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.18); backdrop-filter: blur(16px);
  color: white; box-shadow: 0 18px 40px rgba(0,0,0,.18);
}
.hero-floating span { display:block; color:#95dce7; text-transform: uppercase; letter-spacing: .14em; font-size: .65rem; font-weight: 800; margin-bottom: 4px; }
.hero-floating strong { font-size: .86rem; font-weight: 700; }
.hero-floating-a { top: 23%; right: 24%; }
.hero-floating-b { right: 10%; bottom: 14%; }
.brand-signature span {
  padding: 9px 12px; border-radius: 999px; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.1);
}

.section-heading { position: relative; }
.section-heading::after {
  content:''; position:absolute; right:-40px; top:-26px; width: 120px; height: 120px; border-radius:50%;
  background: radial-gradient(circle, rgba(23,144,170,.06), transparent 68%);
  pointer-events:none;
}
.problem-copy::after, .alliances-copy::after, .technology-copy::after, .final-cta-grid > div:first-child::after {
  content:''; position:absolute; width: 180px; height: 180px; border-radius:50%; background: radial-gradient(circle, rgba(142,213,228,.08), transparent 70%);
  right: 0; top: -20px; pointer-events:none;
}
.problem-copy, .alliances-copy, .technology-copy, .final-cta-grid > div:first-child { position: relative; }

.triptych article {
  transition: transform .28s ease, box-shadow .28s ease, background .28s ease;
  border-radius: 20px;
}
.triptych article::after {
  content:''; position:absolute; left:0; right:32px; top:0; height:1px; background: linear-gradient(90deg, rgba(23,144,170,.5), transparent 80%);
}
.triptych article:hover { transform: translateY(-5px); background: rgba(255,255,255,.72); box-shadow: 0 18px 40px rgba(12,44,79,.06); }
.triptych p { max-width: 320px; }

.ecosystem-visual::before {
  content:''; position:absolute; width: 320px; height: 320px; border-radius: 50%; background: radial-gradient(circle, rgba(23,144,170,.12), transparent 60%); z-index:0;
}
.ecosystem-visual::after {
  content:''; position:absolute; width: 500px; height: 500px; border-radius: 50%; border:1px dashed rgba(23,144,170,.18); animation: slowSpin 24s linear infinite;
}
@keyframes slowSpin { from { transform: rotate(0deg);} to { transform: rotate(360deg);} }
.node { transition: transform .3s ease, box-shadow .3s ease, background .3s ease; }
.node:hover { transform: translateY(-3px) scale(1.03); background: #fff; box-shadow: 0 14px 36px rgba(12,44,79,.14); }
.feature-row { transition: .24s ease; border-radius: 18px; }
.feature-row:hover { background: rgba(255,255,255,.45); padding-left: 10px; padding-right: 10px; }

.problem-points article { transition: transform .25s ease, background .25s ease, border-color .25s ease; }
.problem-points article:hover { transform: translateY(-4px); background: rgba(255,255,255,.1); border-color: rgba(142,213,228,.26); }

.journey-stage {
  box-shadow: 0 22px 70px rgba(12,44,79,.12), inset 0 1px 0 rgba(255,255,255,.55);
}
.journey-stage::before {
  content:''; position:absolute; inset:0; z-index:1; background: radial-gradient(circle at 22% 20%, rgba(23,144,170,.14), transparent 22%), radial-gradient(circle at 78% 76%, rgba(131,178,62,.12), transparent 20%);
}
.timeline article {
  border-radius: 18px; transition: transform .25s ease, box-shadow .25s ease, background .25s ease;
}
.timeline article:hover, .timeline article.is-active {
  background: rgba(255,255,255,.88); box-shadow: 0 16px 38px rgba(12,44,79,.08); padding-left: 16px;
}
.timeline article:hover::before, .timeline article.is-active::before {
  box-shadow: 0 0 0 10px rgba(23,144,170,.12), 0 0 0 18px rgba(23,144,170,.05);
}

.tech-tags span { box-shadow: inset 0 1px 0 rgba(255,255,255,.08); }
.totem-panel {
  border: 1px solid rgba(255,255,255,.1);
}
.totem-panel::before {
  content:''; position:absolute; inset:0; z-index:2; pointer-events:none;
  background: linear-gradient(180deg, rgba(255,255,255,.06), transparent 40%, rgba(255,255,255,.02));
}
.hotspot { transition: transform .24s ease, box-shadow .24s ease; }
.hotspot:hover { transform: translateY(-3px); box-shadow: 0 16px 30px rgba(0,0,0,.18); }

.dashboard-screen { position: relative; overflow: hidden; }
.screen-glow {
  position:absolute; width: 240px; height: 240px; right: -70px; top: -90px; border-radius:50%;
  background: radial-gradient(circle, rgba(23,144,170,.16), transparent 70%); pointer-events:none; z-index:0;
}
.dashboard-screen img { position: relative; z-index: 1; box-shadow: 0 18px 30px rgba(12,44,79,.12); }
.data-metrics article { transition: .24s ease; border-radius: 16px; }
.data-metrics article:hover { background: rgba(255,255,255,.72); padding-left: 10px; padding-right: 10px; box-shadow: 0 12px 26px rgba(12,44,79,.06); }

.research-grid article {
  transition: transform .25s ease, background .25s ease; border-radius: 18px;
}
.research-grid article:hover { transform: translateY(-4px); background: rgba(255,255,255,.72); box-shadow: 0 18px 40px rgba(12,44,79,.06); }
.research-cta {
  box-shadow: 0 18px 40px rgba(12,44,79,.07);
  background: linear-gradient(135deg, rgba(239,243,236,.94), rgba(233,244,246,.94));
}

.application {
  border: 1px solid rgba(255,255,255,.05);
  transition: transform .25s ease, box-shadow .25s ease;
}
.application::before { background: linear-gradient(180deg, rgba(8,32,56,.04) 6%, rgba(7,29,52,.95) 100%); }
.application:hover { box-shadow: 0 24px 50px rgba(12,44,79,.18); }
.application small {
  display: inline-flex; width: fit-content; padding: 6px 10px; border-radius: 999px; background: rgba(255,255,255,.08); margin-top: 12px;
}
.application p { opacity: .92; }

.alliance-model article {
  transition: transform .25s ease, box-shadow .25s ease, background .25s ease;
}
.alliance-model article:hover { transform: translateY(-4px); background: rgba(255,255,255,.09); box-shadow: 0 18px 40px rgba(0,0,0,.12); }
.alliance-roadline-2 { top: calc(50% + 92px); opacity: .55; }

.resource-card {
  position: relative; overflow: hidden; background: linear-gradient(180deg, #fff, #fbfdff);
}
.resource-card::after {
  content:''; position:absolute; right:-40px; top:-40px; width:120px; height:120px; border-radius:50%; background: radial-gradient(circle, rgba(23,144,170,.08), transparent 70%);
}
.resource-thumb img { transition: transform .45s ease; }
.resource-card:hover .resource-thumb img { transform: scale(1.04); }
.resource-card span { display:inline-flex; width: fit-content; padding: 6px 10px; background: #eef8fa; border-radius: 999px; }

.final-cta {
  position: relative;
}
.final-cta::after {
  content:''; position:absolute; inset:0; background-image: linear-gradient(rgba(255,255,255,.05) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px); background-size: 40px 40px; opacity: .12; pointer-events:none;
}
.final-actions .button-light { box-shadow: 0 18px 34px rgba(255,255,255,.12); }

.site-footer {
  position: relative; overflow: hidden;
}
.site-footer::before {
  content:''; position:absolute; left:-80px; top:-40px; width:220px; height:220px; border-radius:50%; background: radial-gradient(circle, rgba(23,144,170,.10), transparent 70%);
}
.footer-brand-lockup { align-items: center; }
.footer-brand p { max-width: 300px; }
.footer-links div { position: relative; }
.footer-links div::before { content:''; width: 28px; height: 1px; background: rgba(142,213,228,.35); margin-bottom: 10px; display:block; }
.footer-links strong { margin-bottom: 0; }

/* === V3.1 targeted refinements === */
/* 1) Footer alignment + monochrome logo */
.footer-grid {
  grid-template-columns: minmax(340px, .95fr) minmax(0, 1.45fr);
  align-items: start;
}
.footer-brand {
  display: flex;
  align-items: flex-start;
}
.footer-brand-lockup {
  align-items: flex-start;
  gap: 24px;
}
.footer-logo {
  width: 190px;
  height: auto;
  display: block;
  flex: 0 0 auto;
  filter: brightness(0) invert(1) grayscale(1) contrast(1.18);
  opacity: .96;
}
.footer-brand-copy {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding-top: 4px;
}
.footer-brand-copy p {
  margin: 0;
  max-width: 270px;
}
.footer-brand-copy span {
  display: inline-flex;
  width: fit-content;
  padding-top: 2px;
  color: rgba(255,255,255,.48);
}
.footer-links {
  align-items: start;
}

/* 2) Final CTA with visual tension */
.final-cta {
  overflow: hidden;
}
.final-bg {
  background:
    radial-gradient(circle at 72% 30%, rgba(142,213,228,.16), transparent 20%),
    radial-gradient(circle at 18% 72%, rgba(131,178,62,.12), transparent 22%),
    linear-gradient(rgba(11,45,80,.26), rgba(11,45,80,.18)),
    url('../images/campus-bg.png') center/cover no-repeat;
  opacity: .22;
}
.final-cta-grid {
  align-items: center;
}
.final-actions {
  position: relative;
  gap: 20px;
}
.cta-visual {
  position: relative;
  width: 100%;
  min-height: 240px;
  margin-bottom: 10px;
  border-radius: 28px;
  background: linear-gradient(160deg, rgba(255,255,255,.08), rgba(255,255,255,.03));
  border: 1px solid rgba(255,255,255,.12);
  box-shadow: 0 24px 56px rgba(0,0,0,.14), inset 0 1px 0 rgba(255,255,255,.12);
  overflow: hidden;
  backdrop-filter: blur(10px);
}
.cta-visual::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(255,255,255,.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px);
  background-size: 28px 28px;
  opacity: .26;
}
.cta-orbit {
  position: absolute;
  border-radius: 999px;
  border: 1px solid rgba(142,213,228,.18);
}
.cta-orbit-a { inset: 20px 24px 20px 24px; }
.cta-orbit-b { inset: 52px 84px 52px 84px; border-style: dashed; opacity: .65; }
.cta-node {
  position: absolute;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: #8ed5e4;
  box-shadow: 0 0 0 10px rgba(142,213,228,.10), 0 0 18px rgba(142,213,228,.32);
}
.cta-node-1 { left: 40px; top: 36px; }
.cta-node-2 { right: 48px; top: 96px; }
.cta-node-3 { left: 50%; bottom: 28px; transform: translateX(-50%); }
.cta-mini-card {
  position: absolute;
  z-index: 2;
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 16px 18px;
  border-radius: 20px;
  min-width: 180px;
  color: #fff;
  background: linear-gradient(160deg, rgba(255,255,255,.12), rgba(255,255,255,.05));
  border: 1px solid rgba(255,255,255,.14);
  box-shadow: 0 18px 32px rgba(0,0,0,.12);
  backdrop-filter: blur(10px);
}
.cta-mini-card span {
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .13em;
  text-transform: uppercase;
  color: #8ed5e4;
}
.cta-mini-card strong {
  font-size: 1rem;
  line-height: 1.2;
}
.cta-mini-card small {
  color: rgba(255,255,255,.66);
  font-size: .8rem;
}
.cta-mini-card-a { top: 26px; left: 24px; max-width: 210px; }
.cta-mini-card-b { top: 56px; right: 20px; max-width: 200px; }
.cta-mini-card-c { left: 50%; bottom: 20px; transform: translateX(-50%); max-width: 220px; }
.final-actions .button,
.final-actions .text-link {
  position: relative;
  z-index: 3;
}

/* 3) Journey ecosystem labels with tech + wellbeing */
.journey-stage {
  min-height: 410px;
}
.journey-stage::after {
  background: linear-gradient(180deg, rgba(255,255,255,.22), rgba(255,255,255,.68));
}
.journey-stage-image img {
  opacity: .42;
  filter: saturate(1.03) contrast(1.02);
}
.journey-chip {
  display: flex;
  align-items: center;
  gap: 14px;
  min-width: 220px;
  max-width: 240px;
  padding: 12px 16px;
  border-radius: 22px;
  background: rgba(255,255,255,.84);
  border: 1px solid rgba(12,44,79,.10);
  box-shadow: 0 18px 34px rgba(12,44,79,.10);
}
.journey-chip::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(160deg, rgba(255,255,255,.36), transparent 55%);
  pointer-events: none;
}
.journey-chip-icon {
  position: relative;
  z-index: 1;
  width: 46px;
  height: 46px;
  border-radius: 15px;
  padding: 10px;
  display: grid;
  place-items: center;
  background: linear-gradient(160deg, #e6f7f9, #eef8ed);
  color: var(--teal);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.9), 0 10px 20px rgba(12,44,79,.08);
}
.journey-chip-copy {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.journey-chip-copy strong {
  color: var(--navy);
  font-size: 1.05rem;
  line-height: 1.1;
}
.journey-chip-copy small {
  color: #60707c;
  font-size: .8rem;
  line-height: 1.25;
}
.journey-chip-a { top: 30px; left: 30px; }
.journey-chip-b { bottom: 26px; left: 50%; transform: translateX(-50%); }
.journey-chip-c { top: 30px; right: 30px; }
.journey-chip-b .journey-chip-icon {
  background: linear-gradient(160deg, #e4f5fa, #edf6ff);
}
.journey-chip-c .journey-chip-icon {
  background: linear-gradient(160deg, #eaf5ff, #ebf7f2);
}

/* === V3.2 fixes: footer + CTA distinction === */
.site-footer .footer-grid {
  grid-template-columns: minmax(360px, .95fr) minmax(0, 1.35fr) !important;
  gap: 72px !important;
  align-items: start !important;
}
.site-footer .footer-brand {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  justify-content: flex-start !important;
  gap: 20px !important;
  padding-top: 4px;
}
.site-footer .footer-logo-mono {
  width: 230px !important;
  height: auto !important;
  display: block !important;
  opacity: 1 !important;
  filter: none !important;
}
.site-footer .footer-brand-copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
}
.site-footer .footer-brand-title {
  color: #fff;
  font-size: 1.05rem;
  font-weight: 800;
  line-height: 1.2;
}
.site-footer .footer-brand-copy p {
  margin: 0 !important;
  color: rgba(255,255,255,.80);
  max-width: 290px;
  line-height: 1.45;
}
.site-footer .footer-brand-copy span {
  color: rgba(255,255,255,.50) !important;
  font-size: .8rem;
}

.final-actions {
  align-items: stretch;
}
.final-actions .button-light,
.final-actions .text-link {
  margin-left: 4px;
}
.cta-visual {
  min-height: 320px !important;
  padding: 0;
  background: linear-gradient(160deg, rgba(255,255,255,.07), rgba(255,255,255,.025)) !important;
  border: 1px solid rgba(255,255,255,.14) !important;
  box-shadow: 0 28px 64px rgba(0,0,0,.18), inset 0 1px 0 rgba(255,255,255,.08) !important;
}
.cta-grid-lines {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px);
  background-size: 26px 26px;
  opacity: .22;
}
.cta-connector {
  position: absolute;
  height: 1px;
  background: linear-gradient(90deg, rgba(142,213,228,.0), rgba(142,213,228,.45), rgba(142,213,228,.0));
  z-index: 1;
}
.cta-connector-1 {
  left: 28%;
  right: 28%;
  top: 92px;
}
.cta-connector-2 {
  left: 50%;
  width: 1px;
  top: 94px;
  bottom: 78px;
  height: auto;
  background: linear-gradient(180deg, rgba(142,213,228,.0), rgba(142,213,228,.42), rgba(142,213,228,.0));
}
.cta-mini-card {
  min-width: 0 !important;
  max-width: none !important;
  width: 220px;
  gap: 10px;
  padding: 18px 18px 16px !important;
  border-radius: 22px !important;
  background: rgba(255,255,255,.09) !important;
  border: 1px solid rgba(255,255,255,.16) !important;
  backdrop-filter: blur(12px);
}
.cta-mini-card::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(160deg, rgba(255,255,255,.12), transparent 58%);
  pointer-events: none;
}
.cta-mini-card-a { top: 22px !important; left: 22px !important; }
.cta-mini-card-b { top: 22px !important; right: 22px !important; }
.cta-mini-card-c { left: 50% !important; bottom: 22px !important; transform: translateX(-50%) !important; width: 250px; }
.cta-mini-card-a { box-shadow: 0 18px 38px rgba(4, 39, 69, .22); }
.cta-mini-card-b { box-shadow: 0 18px 38px rgba(8, 49, 86, .24); }
.cta-mini-card-c { box-shadow: 0 18px 38px rgba(8, 60, 90, .22); }
.cta-mini-head {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  gap: 12px;
}
.cta-mini-head span {
  display: inline-flex;
  padding: 0 !important;
  background: transparent !important;
  color: #9fe1ec !important;
  font-size: .78rem !important;
  font-weight: 900 !important;
  letter-spacing: .12em !important;
  text-transform: uppercase;
}
.cta-mini-icon {
  width: 42px;
  height: 42px;
  border-radius: 14px;
  display: grid;
  place-items: center;
  padding: 10px;
  color: #8ed5e4;
  background: linear-gradient(160deg, rgba(142,213,228,.20), rgba(255,255,255,.08));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.18);
  flex: 0 0 auto;
}
.cta-mini-card strong,
.cta-mini-card small {
  position: relative;
  z-index: 1;
}
.cta-mini-card strong {
  display: block;
  font-size: 1rem;
  line-height: 1.15;
}
.cta-mini-card small {
  color: rgba(255,255,255,.72) !important;
  line-height: 1.35;
  font-size: .82rem !important;
}

/* === V3.3 closure fixes: cleaner CTA + definitive footer === */
/* Footer: unmistakably stacked and aligned */
.site-footer .footer-grid {
  grid-template-columns: minmax(260px, 320px) minmax(0, 1fr) !important;
  gap: 88px !important;
  align-items: start !important;
}
.site-footer .footer-brand {
  display: block !important;
  max-width: 280px;
}
.site-footer .footer-logo,
.site-footer .footer-logo-mono {
  display: block !important;
  width: 188px !important;
  height: auto !important;
  margin: 0 0 18px 0 !important;
}
.site-footer .footer-brand-copy {
  display: block !important;
}
.site-footer .footer-brand-title {
  display: block;
  margin: 0 0 8px 0;
  font-size: 1.18rem !important;
  line-height: 1.15;
}
.site-footer .footer-brand-copy p {
  display: block;
  margin: 0 0 10px 0 !important;
  max-width: 260px !important;
  font-size: 1rem;
  line-height: 1.5;
}
.site-footer .footer-brand-copy span {
  display: block;
  margin: 0;
}
.site-footer .footer-links {
  padding-top: 6px;
}

/* CTA: less overlap, clearer hierarchy, better breathing */
.final-bg {
  opacity: .18 !important;
  background:
    radial-gradient(circle at 74% 28%, rgba(142,213,228,.18), transparent 16%),
    radial-gradient(circle at 22% 74%, rgba(131,178,62,.10), transparent 18%),
    linear-gradient(rgba(7,39,74,.28), rgba(7,39,74,.22)),
    url('../images/campus-bg.png') center/cover no-repeat !important;
}
.final-cta-grid {
  align-items: center !important;
}
.final-cta-grid > div:first-child {
  max-width: 760px;
}
.final-actions {
  gap: 16px !important;
}
.cta-visual {
  display: grid !important;
  grid-template-columns: 1fr 1fr;
  grid-template-areas:
    'a b'
    'c c';
  gap: 18px;
  min-height: auto !important;
  padding: 24px !important;
  align-items: start;
  background: linear-gradient(160deg, rgba(255,255,255,.06), rgba(255,255,255,.025)) !important;
  border-radius: 28px !important;
}
.cta-visual::before {
  content:'';
  position:absolute;
  inset: 0;
  background: radial-gradient(circle at 70% 26%, rgba(142,213,228,.12), transparent 18%), radial-gradient(circle at 24% 76%, rgba(142,213,228,.08), transparent 20%);
  pointer-events:none;
}
.cta-grid-lines {
  opacity: .16 !important;
}
.cta-connector-1 {
  left: 50%;
  width: 1px;
  top: 86px;
  bottom: 114px;
  right: auto;
  background: linear-gradient(180deg, rgba(142,213,228,0), rgba(142,213,228,.26), rgba(142,213,228,0)) !important;
}
.cta-connector-2 {
  left: 25%;
  right: 25%;
  top: auto;
  bottom: 104px;
  width: auto;
  height: 1px;
  background: linear-gradient(90deg, rgba(142,213,228,0), rgba(142,213,228,.28), rgba(142,213,228,0)) !important;
}
.cta-mini-card {
  position: relative !important;
  left: auto !important;
  right: auto !important;
  top: auto !important;
  bottom: auto !important;
  transform: none !important;
  width: auto !important;
  min-height: 168px;
  padding: 20px 20px 18px !important;
  gap: 12px;
  background: rgba(255,255,255,.075) !important;
  border: 1px solid rgba(255,255,255,.18) !important;
}
.cta-mini-card-a { grid-area: a; }
.cta-mini-card-b { grid-area: b; }
.cta-mini-card-c {
  grid-area: c;
  max-width: 380px;
  justify-self: center;
}
.cta-mini-head {
  gap: 14px;
}
.cta-mini-icon {
  width: 44px;
  height: 44px;
  border-radius: 14px;
  background: linear-gradient(160deg, rgba(142,213,228,.17), rgba(255,255,255,.06));
}
.cta-mini-head span {
  font-size: .76rem !important;
  letter-spacing: .11em !important;
}
.cta-mini-card strong {
  font-size: 1.02rem !important;
  max-width: 200px;
}
.cta-mini-card small {
  max-width: 220px;
  font-size: .83rem !important;
}
.final-actions .button-light {
  width: auto !important;
  min-width: 248px;
  padding: 18px 28px !important;
  border-radius: 999px;
  font-size: 1rem;
  align-self: flex-start;
  box-shadow: 0 18px 36px rgba(255,255,255,.10) !important;
}
.final-actions .text-link {
  padding-bottom: 6px;
  align-self: flex-start;
}

/* === V4 Ultra Fina === */
html {
  scroll-behavior: smooth;
}
body.theme-v4 {
  background:
    radial-gradient(circle at top left, rgba(142,213,228,.10), transparent 22%),
    radial-gradient(circle at bottom right, rgba(118,201,71,.06), transparent 18%),
    #f6f4ef;
}
.scroll-progress {
  position: fixed;
  inset: 0 auto auto 0;
  width: 0;
  height: 3px;
  z-index: 120;
  background: linear-gradient(90deg, #8ed5e4 0%, #2e8bcf 45%, #83b23e 100%);
  box-shadow: 0 0 18px rgba(46,139,207,.28);
}
.site-header {
  backdrop-filter: blur(12px);
  background: rgba(247,244,238,.86);
  transition: background .35s ease, box-shadow .35s ease, border-color .35s ease, transform .35s ease;
}
.site-header.is-scrolled {
  background: rgba(248,246,242,.94);
  box-shadow: 0 12px 28px rgba(12,44,79,.08);
}
.site-header::after {
  content: '';
  position: absolute;
  inset: auto 0 0 0;
  height: 1px;
  background: linear-gradient(90deg, rgba(46,139,207,0), rgba(46,139,207,.18), rgba(131,178,62,.14), rgba(46,139,207,0));
  pointer-events: none;
}
.brand img {
  transition: transform .35s ease, filter .35s ease;
}
.brand:hover img {
  transform: translateY(-1px) scale(1.01);
  filter: saturate(1.05) contrast(1.02);
}
.main-nav a {
  position: relative;
  transition: color .28s ease, opacity .28s ease;
}
.main-nav a::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: -10px;
  margin: auto;
  width: 0;
  height: 2px;
  border-radius: 999px;
  background: linear-gradient(90deg, #8ed5e4, #2e8bcf);
  transition: width .28s ease;
}
.main-nav a:hover::after,
.main-nav a.is-active::after {
  width: 100%;
}
.main-nav a.is-active {
  color: var(--navy);
}
.button,
.text-link,
.resource-card,
.triptych article,
.application,
.hero-card,
.cta-mini-card,
.footer-links a {
  transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease, background .28s ease, color .28s ease, opacity .28s ease;
}
.button:hover {
  transform: translateY(-2px);
}
.button-primary {
  box-shadow: 0 18px 36px rgba(12,44,79,.18);
}
.button-primary:hover {
  box-shadow: 0 22px 44px rgba(12,44,79,.22);
}
.button-outline:hover,
.button-ghost:hover,
.button-light:hover {
  box-shadow: 0 16px 34px rgba(12,44,79,.10);
}
.hero {
  overflow: hidden;
}
.hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 76% 32%, rgba(142,213,228,.22), transparent 18%),
    radial-gradient(circle at 16% 72%, rgba(131,178,62,.12), transparent 22%);
  pointer-events: none;
}
.hero-copy h1 {
  text-wrap: balance;
  letter-spacing: -.04em;
}
.hero-lead {
  max-width: 770px;
}
.hero-card {
  box-shadow: 0 28px 56px rgba(6,31,58,.18), inset 0 1px 0 rgba(255,255,255,.22);
  border: 1px solid rgba(255,255,255,.14);
}
.hero-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 32px 64px rgba(6,31,58,.22), inset 0 1px 0 rgba(255,255,255,.22);
}
.hero-floating {
  box-shadow: 0 18px 36px rgba(8,31,58,.18);
  animation: satiFloat 6.8s ease-in-out infinite;
}
.hero-floating-b {
  animation-delay: 1.3s;
}
@keyframes satiFloat {
  0%,100% { transform: translateY(0px); }
  50% { transform: translateY(-8px); }
}
.section {
  position: relative;
}
.section-heading h2,
.section-intro h2,
.problem-copy h2,
.technology-copy h2,
.research-grid h2,
.alliances-copy h2,
.resources-section h2,
.final-cta h2 {
  text-wrap: balance;
}
.heading-accent,
.eyebrow {
  letter-spacing: .14em;
}
.triptych article,
.application,
.resource-card {
  position: relative;
  overflow: hidden;
}
.triptych article:hover,
.application:hover,
.resource-card:hover {
  transform: translateY(-4px);
}
.triptych article::after,
.application::after,
.resource-card::after,
.hero-card::after,
.cta-mini-card::after {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(320px circle at var(--mx, 50%) var(--my, 50%), rgba(142,213,228,.12), transparent 42%);
  opacity: 0;
  transition: opacity .28s ease;
  pointer-events: none;
}
.triptych article:hover::after,
.application:hover::after,
.resource-card:hover::after,
.hero-card:hover::after,
.cta-mini-card:hover::after {
  opacity: 1;
}
.triptych-icon,
.application-icon,
.resource-thumb,
.cta-mini-icon,
.journey-chip-icon {
  box-shadow: 0 12px 24px rgba(12,44,79,.08);
}
.ecosystem-visual,
.dashboard-screen,
.totem-panel {
  box-shadow: 0 28px 54px rgba(12,44,79,.10);
}
.cta-visual {
  box-shadow: 0 30px 66px rgba(5,29,54,.22), inset 0 1px 0 rgba(255,255,255,.08) !important;
}
.cta-mini-card:hover {
  transform: translateY(-3px) !important;
  box-shadow: 0 24px 46px rgba(5,29,54,.24);
}
.final-actions .button-light {
  position: relative;
  overflow: hidden;
}
.final-actions .button-light::before,
.hero-cta .button-primary::before {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  left: -40%;
  width: 26%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.45), transparent);
  transform: skewX(-24deg);
  transition: left .6s ease;
}
.final-actions .button-light:hover::before,
.hero-cta .button-primary:hover::before {
  left: 120%;
}
.footer-links a:hover {
  color: #fff;
  transform: translateX(2px);
}
.footer-bottom {
  border-top: 1px solid rgba(255,255,255,.08);
}
.reveal {
  transition-duration: .75s;
}
.reveal-delay-1 {
  transition-delay: .12s;
}


/* =========================================================
   V4.1 · REVISIÓN VISUAL DIRIGIDA
   Refinamiento de ritmo, jerarquía, legibilidad y consistencia
   ========================================================= */

/* 1. Ritmo global y lectura */
:root {
  --section-y: clamp(92px, 9vw, 132px);
  --content-max: 1180px;
  --text-max: 760px;
  --card-radius: 24px;
}

.section {
  padding-top: var(--section-y);
  padding-bottom: var(--section-y);
}

.section-heading {
  max-width: var(--text-max);
  margin-bottom: clamp(42px, 5vw, 64px);
}

.section-heading p,
.section-lead,
.problem-copy p,
.technology-copy p,
.dashboard-copy p,
.alliances-copy p,
.final-cta p {
  line-height: 1.62;
}

.section-heading h2,
.section-intro h2,
.problem-copy h2,
.technology-copy h2,
.dashboard-copy h2,
.alliances-copy h2,
.final-cta h2 {
  max-width: 930px;
}

/* 2. Separadores editoriales sutiles */
.section:not(.hero):not(.problem-section):not(.technology-section):not(.alliances-section):not(.final-cta)::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(12,44,79,.08) 18%, rgba(12,44,79,.08) 82%, transparent);
  pointer-events: none;
}

/* 3. Header más compacto y premium */
.site-header {
  min-height: 76px;
}
.header-inner {
  min-height: 76px;
}
.brand img {
  width: 228px;
  height: auto;
}
.main-nav {
  gap: clamp(14px, 1.45vw, 24px);
}
.main-nav a {
  font-size: .86rem;
  font-weight: 700;
}

/* 4. Hero: más aire y mejor balance */
.hero-grid {
  grid-template-columns: minmax(0, 1.18fr) minmax(300px, .62fr);
  gap: clamp(44px, 6vw, 86px);
}
.hero-copy {
  padding-bottom: 12px;
}
.hero h1 {
  max-width: 780px;
}
.hero-lead {
  max-width: 720px;
}
.hero-card {
  max-width: 400px;
  justify-self: end;
}
.hero-metrics article {
  min-height: 66px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

/* 5. Triptych: consistencia visual */
.triptych {
  gap: 18px;
  border-top: 0;
}
.triptych article {
  min-height: 292px;
  padding: 28px;
  border: 1px solid rgba(12,44,79,.08);
  border-radius: var(--card-radius);
  background: rgba(255,255,255,.56);
  box-shadow: 0 16px 34px rgba(12,44,79,.045);
}
.triptych article + article {
  border-left: 1px solid rgba(12,44,79,.08);
  padding-left: 28px;
}
.triptych article::after {
  display: none;
}
.triptych-icon {
  margin-bottom: 24px;
}

/* 6. Ecosistema: más claridad entre diagrama y texto */
.ecosystem-layout {
  gap: clamp(56px, 7vw, 92px);
}
.ecosystem-visual {
  border-radius: 32px;
  background: rgba(255,255,255,.34);
  border: 1px solid rgba(12,44,79,.07);
}
.feature-list {
  border-top-color: rgba(12,44,79,.09);
}
.feature-row {
  padding: 24px 10px 24px 0;
}
.feature-row h3 {
  font-size: 1.12rem;
}

/* 7. Secciones oscuras: contraste y profundidad */
.problem-section,
.technology-section,
.alliances-section {
  position: relative;
}
.problem-section::after,
.technology-section::after,
.alliances-section::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(115deg, rgba(255,255,255,.025), transparent 35%),
    radial-gradient(circle at 85% 20%, rgba(142,213,228,.08), transparent 18%);
  pointer-events: none;
}
.problem-grid,
.technology-grid,
.alliances-grid {
  position: relative;
  z-index: 2;
}

/* 8. Journey: más aire y jerarquía */
.journey-stage {
  margin-top: 10px;
}
.journey-process {
  margin-top: 6px;
}
.timeline article {
  min-height: 224px;
}

/* 9. Dashboard: integración visual */
.dashboard-screen {
  border-radius: 28px;
  background: rgba(255,255,255,.7);
}
.dashboard-copy {
  max-width: 510px;
}
.data-metrics article {
  min-height: 78px;
}

/* 10. Investigación: cards mejor respiradas */
.research-grid {
  gap: 16px;
  border-top: 0;
}
.research-grid article {
  border: 1px solid rgba(12,44,79,.08);
  border-radius: 20px;
  padding: 24px;
  background: rgba(255,255,255,.58);
}
.research-grid article + article {
  border-left: 1px solid rgba(12,44,79,.08);
  padding-left: 24px;
}
.research-cta {
  margin-top: 34px;
}

/* 11. Aplicaciones: altura y jerarquía homogéneas */
.application {
  min-height: 300px;
  border-radius: 24px;
}
.application span {
  font-size: 1.32rem;
}
.application p {
  line-height: 1.55;
}

/* 12. Alianzas: pasos con mayor legibilidad */
.alliance-model {
  gap: 14px;
}
.alliance-model article {
  min-height: 150px;
  border-radius: 18px;
}
.alliance-icon {
  margin-bottom: 18px;
}

/* 13. Recursos: miniaturas más editoriales */
.resource-card {
  border-radius: 22px;
  min-height: 342px;
}
.resource-thumb {
  aspect-ratio: 16/10;
}
.resource-card strong {
  line-height: 1.25;
}

/* 14. CTA final: más balance y menos densidad */
.final-cta-grid {
  grid-template-columns: minmax(0, 1.06fr) minmax(420px, .94fr);
  gap: clamp(48px, 6vw, 82px);
}
.final-cta h2 {
  max-width: 780px;
}
.cta-visual {
  border-radius: 30px !important;
}
.cta-mini-card {
  min-height: 158px;
}
.final-actions .button-light {
  margin-top: 4px;
}

/* 15. Footer: alineación definitiva */
.site-footer {
  padding-top: 76px;
}
.site-footer .footer-grid {
  grid-template-columns: minmax(250px, 300px) minmax(0, 1fr) !important;
  gap: 96px !important;
}
.site-footer .footer-logo,
.site-footer .footer-logo-mono {
  width: 178px !important;
}
.footer-links {
  gap: clamp(38px, 5vw, 82px);
}
.footer-links strong {
  font-size: .98rem;
}

/* 16. Focus states accesibles */
a:focus-visible,
button:focus-visible {
  outline: 3px solid rgba(142,213,228,.85);
  outline-offset: 4px;
  border-radius: 8px;
}

/* 17. Motion más fino */
.reveal {
  transform: translateY(14px);
}
.reveal.is-visible {
  transform: translateY(0);
}


/* =========================================================
   SATI WORDPRESS V4.2 · PRODUCTION CANDIDATE
   Ajustes WordPress-native tras revisión en LocalWP
   ========================================================= */

/* 1) Compatibilidad con la barra de administración de WordPress */
body.admin-bar .site-header {
  top: 32px;
}
@media screen and (max-width: 782px) {
  body.admin-bar .site-header {
    top: 46px;
  }
}

/* 2) Journey: compactar transición y mejorar presencia visual */
.how-it-works {
  padding-top: clamp(82px, 8vw, 112px);
}
.how-it-works .section-heading {
  margin-bottom: 34px;
}
.journey-stage {
  margin-top: 0;
  min-height: 392px;
}
.journey-stage-image img {
  opacity: .34;
  filter: saturate(1.04) contrast(1.04);
}
.journey-stage::after {
  background: linear-gradient(180deg, rgba(255,255,255,.22), rgba(255,255,255,.70));
}

/* 3) Investigación: recuperar más campus sin perder legibilidad */
.research-bg {
  opacity: .50;
  background:
    linear-gradient(rgba(255,253,249,.70), rgba(255,253,249,.88)),
    url('../images/campus-bg.png') center/cover no-repeat;
}
.research-section .section-heading {
  max-width: 820px;
}
.research-grid article {
  backdrop-filter: blur(2px);
}

/* 4) Aplicaciones: diferenciación visual entre escenarios */
.application {
  min-height: 286px;
  isolation: isolate;
  border: 1px solid rgba(255,255,255,.08);
  box-shadow: 0 20px 46px rgba(12,44,79,.12);
}
.application::before {
  background:
    linear-gradient(180deg, rgba(8,32,56,.08) 0%, rgba(7,29,52,.86) 68%, rgba(7,29,52,.96) 100%);
}
.application::after {
  opacity: .54;
}
.application::selection {
  background: rgba(142,213,228,.25);
}

/* patrones/atmósferas por uso */
.application-campus {
  background:
    radial-gradient(circle at 80% 16%, rgba(44,164,191,.34), transparent 28%),
    linear-gradient(145deg, #0f3a64, #0b2948 68%);
}
.application-city {
  background:
    radial-gradient(circle at 78% 18%, rgba(76,158,222,.34), transparent 28%),
    linear-gradient(145deg, #123b64, #0b2948 68%);
}
.application-health {
  background:
    radial-gradient(circle at 80% 18%, rgba(77,173,151,.32), transparent 28%),
    linear-gradient(145deg, #123a5c, #0a2844 68%);
}
.application-company {
  background:
    radial-gradient(circle at 80% 18%, rgba(111,138,189,.30), transparent 28%),
    linear-gradient(145deg, #163856, #0a2742 68%);
}
.application-park {
  background:
    radial-gradient(circle at 80% 18%, rgba(102,169,90,.34), transparent 28%),
    linear-gradient(145deg, #123b4c, #0a2843 68%);
}
.application-neighborhood {
  background:
    radial-gradient(circle at 80% 18%, rgba(191,138,99,.28), transparent 28%),
    linear-gradient(145deg, #193a50, #0a2842 68%);
}
.application-icon {
  width: 54px;
  height: 54px;
  background: rgba(255,255,255,.09);
  box-shadow: 0 12px 28px rgba(0,0,0,.12);
}
.application span {
  letter-spacing: -.01em;
}
.application p {
  max-width: 360px;
}

/* 5) Alianzas: bajar ruido del fondo */
.alliances-bg {
  opacity: .105;
  filter: saturate(.8) contrast(.92);
}
.alliances-section {
  background:
    radial-gradient(circle at 82% 20%, rgba(142,213,228,.08), transparent 20%),
    var(--navy);
}

/* 6) Header: estable en administración y visitante */
.site-header {
  will-change: height, box-shadow;
}
body.admin-bar .site-header.is-scrolled {
  top: 32px;
}

/* 7) Ajuste fino de recursos y CTA */
.resource-card {
  box-shadow: 0 16px 34px rgba(12,44,79,.055);
}
.resource-card:hover {
  box-shadow: 0 22px 46px rgba(12,44,79,.09);
}
.final-actions .button-light {
  max-width: 290px;
}

/* 8) Evitar salto visual con anchors bajo header fijo */
section[id] {
  scroll-margin-top: 104px;
}
body.admin-bar section[id] {
  scroll-margin-top: 136px;
}


/* =========================================================
   SATI WORDPRESS V4.3 · FINAL POLISH / PRODUCTION CANDIDATE
   Consolidación de auditoría visual desktop + mobile
   ========================================================= */

/* ---------- HEADER ---------- */
@media (min-width: 1025px) {
  .brand img {
    width: 246px;
  }

  .main-nav a {
    font-size: .875rem;
    font-weight: 750;
  }
}

/* ---------- HERO ---------- */
/* Atenúa el haz/luz de la fotografía sin quitar profundidad */
.hero-overlay {
  background:
    linear-gradient(90deg, rgba(7,32,59,.16) 0%, rgba(7,32,59,.08) 25%, transparent 43%),
    radial-gradient(circle at 74% 28%, rgba(142,213,228,.16), transparent 22%),
    radial-gradient(circle at 83% 74%, rgba(131,178,62,.10), transparent 22%),
    linear-gradient(90deg, rgba(8,35,63,.96) 0%, rgba(8,35,63,.88) 34%, rgba(8,35,63,.36) 70%, rgba(8,35,63,.17) 100%),
    linear-gradient(0deg, rgba(8,35,63,.34), rgba(8,35,63,.08));
}

.hero-card {
  background: rgba(255,255,255,.135);
  border-color: rgba(255,255,255,.24);
  box-shadow: 0 28px 74px rgba(0,0,0,.18);
}

.hero-card p {
  color: rgba(255,255,255,.79);
}

.hero-floating-b {
  opacity: .74;
}

.hero-tech-2 {
  opacity: .68;
}

/* ---------- JOURNEY ---------- */
.journey-stage-image img {
  opacity: .40;
  filter: saturate(1.06) contrast(1.06);
}

.journey-stage::after {
  background: linear-gradient(180deg, rgba(255,255,255,.18), rgba(255,255,255,.60));
}

/* ---------- INVESTIGACIÓN ---------- */
.research-grid article {
  background: rgba(255,255,255,.72);
  backdrop-filter: blur(4px);
  border-color: rgba(12,44,79,.075);
}

.research-section::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 1;
  background:
    linear-gradient(90deg, rgba(255,253,249,.34) 0%, rgba(255,253,249,.08) 48%, transparent 72%);
}

.research-section > .shell {
  position: relative;
  z-index: 2;
}

/* ---------- APLICACIONES V4.2.1 ---------- */
.applications-section {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}

.applications-section > .shell {
  position: relative;
  z-index: 3;
}

.applications-section::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: .48;
  background-image:
    radial-gradient(circle, rgba(23,144,170,.18) 1px, transparent 1.5px),
    linear-gradient(90deg, transparent 49.8%, rgba(23,144,170,.035) 50%, transparent 50.2%),
    linear-gradient(0deg, transparent 49.8%, rgba(23,144,170,.035) 50%, transparent 50.2%);
  background-size: 34px 34px, 136px 136px, 136px 136px;
  mask-image: linear-gradient(to bottom, transparent 0%, #000 14%, #000 88%, transparent 100%);
}

.applications-section::after {
  content: "";
  position: absolute;
  z-index: 1;
  pointer-events: none;
  width: 520px;
  height: 520px;
  right: 5%;
  top: 14%;
  border-radius: 50%;
  filter: blur(24px);
  opacity: .20;
  background:
    radial-gradient(circle at 34% 34%, rgba(23,144,170,.42), transparent 42%),
    radial-gradient(circle at 68% 68%, rgba(131,178,62,.28), transparent 46%);
  animation: satiAmbientDrift 18s ease-in-out infinite alternate;
}

@keyframes satiAmbientDrift {
  0%   { transform: translate3d(-18px, 4px, 0) scale(.96); }
  50%  { transform: translate3d(16px, -12px, 0) scale(1.02); }
  100% { transform: translate3d(-4px, 16px, 0) scale(1); }
}

.application {
  min-height: 274px;
  box-shadow: 0 22px 50px rgba(12,44,79,.12);
}

.application::after {
  transition: opacity .35s ease, transform .5s ease;
}

.application:hover {
  transform: translateY(-5px);
  border-color: rgba(142,213,228,.26);
  box-shadow: 0 28px 62px rgba(12,44,79,.17);
}

.application:hover::after {
  opacity: .72;
  transform: scale(1.06);
}

.application-icon {
  transition: transform .35s ease, background .35s ease, box-shadow .35s ease;
}

.application:hover .application-icon {
  transform: translateY(-2px) scale(1.04);
  background: rgba(255,255,255,.13);
  box-shadow: 0 14px 30px rgba(0,0,0,.16);
}

/* ---------- ALIANZAS ---------- */
.alliances-bg {
  opacity: .075;
  filter: saturate(.68) contrast(.86);
}

.alliance-roadline {
  overflow: hidden;
}

.alliance-roadline::after {
  content: "";
  position: absolute;
  inset: -2px auto -2px -20%;
  width: 22%;
  border-radius: 999px;
  background: linear-gradient(90deg, transparent, rgba(142,213,228,.65), transparent);
  filter: blur(.3px);
  opacity: 0;
}

.alliance-model.is-flowing .alliance-roadline::after {
  opacity: 1;
  animation: allianceFlow 5.8s ease-in-out 1;
}

@keyframes allianceFlow {
  0%   { left: -20%; opacity: 0; }
  12%  { opacity: .70; }
  88%  { opacity: .55; }
  100% { left: 104%; opacity: 0; }
}

.alliance-model.is-flowing article {
  animation: allianceCardPulse 1.15s ease both;
}

.alliance-model.is-flowing article:nth-of-type(1) { animation-delay: .15s; }
.alliance-model.is-flowing article:nth-of-type(2) { animation-delay: .55s; }
.alliance-model.is-flowing article:nth-of-type(3) { animation-delay: .95s; }
.alliance-model.is-flowing article:nth-of-type(4) { animation-delay: 1.35s; }
.alliance-model.is-flowing article:nth-of-type(5) { animation-delay: 1.75s; }
.alliance-model.is-flowing article:nth-of-type(6) { animation-delay: 2.15s; }

@keyframes allianceCardPulse {
  0%,100% {
    border-color: rgba(255,255,255,.12);
    background: rgba(255,255,255,.05);
    box-shadow: none;
  }
  50% {
    border-color: rgba(142,213,228,.34);
    background: rgba(255,255,255,.075);
    box-shadow: 0 12px 30px rgba(0,0,0,.10);
  }
}

/* ---------- RECURSOS ---------- */
@media (min-width: 1100px) {
  .resources-grid {
    gap: 18px;
  }

  .resource-card {
    min-height: 366px;
    padding: 18px 20px 24px;
  }
}

/* ---------- CTA FINAL ---------- */
@media (min-width: 1025px) {
  .final-cta-grid {
    grid-template-columns: minmax(0, 1fr) minmax(450px, .98fr);
  }

  .cta-visual {
    transform: scale(1.035);
    transform-origin: center center;
  }
}

.final-actions .button-light {
  min-width: 252px;
  justify-content: center;
  font-weight: 800;
}

.final-actions .text-link {
  margin-top: 5px;
}

/* halo focal muy tenue detrás del panel */
.final-actions::before {
  content: "";
  position: absolute;
  z-index: -1;
  width: 420px;
  height: 300px;
  right: -30px;
  top: -20px;
  border-radius: 50%;
  pointer-events: none;
  filter: blur(30px);
  background: radial-gradient(circle, rgba(142,213,228,.12), transparent 68%);
}

/* ---------- FOOTER ---------- */
@media (min-width: 1100px) {
  .site-footer .footer-logo,
  .site-footer .footer-logo-mono {
    width: 216px !important;
  }

  .site-footer .footer-brand-title {
    font-size: 1.26rem !important;
  }

  .site-footer .footer-brand-copy p {
    font-size: 1.02rem;
  }

  .site-footer .footer-brand-copy span {
    font-size: .86rem;
    color: rgba(255,255,255,.58) !important;
  }

  .footer-links strong {
    font-size: 1.04rem;
  }

  .footer-links a {
    font-size: .95rem;
  }

  .footer-bottom {
    color: rgba(255,255,255,.48);
  }
}

/* ---------- REDUCED MOTION ---------- */
@media (prefers-reduced-motion: reduce) {
  .applications-section::after,
  .alliance-model.is-flowing .alliance-roadline::after,
  .alliance-model.is-flowing article {
    animation: none !important;
  }
}


/* =========================================================
   SATI V5 — Public / Private architecture
   ========================================================= */
.brand-protected{position:relative}.brand-tm{position:absolute;right:-.34rem;top:.02rem;color:#1790aa;font-size:.62rem;font-weight:800}.portal-link{display:inline-flex;align-items:center;gap:.35rem;color:#0c2c4f;font-size:.84rem;font-weight:700;text-decoration:none;white-space:nowrap}.portal-link:hover{color:#1790aa}.hero-public .hero-card.protected-summary{padding-bottom:1.3rem}.public-scope{display:flex;flex-wrap:wrap;gap:.45rem;margin:1.1rem 0}.public-scope span,.secure-principles span{border:1px solid rgba(255,255,255,.2);border-radius:999px;padding:.45rem .7rem;font-size:.75rem;font-weight:700;letter-spacing:.02em}.secure-mini-link{display:inline-flex;align-items:center;gap:.45rem;color:#fff;font-size:.78rem;font-weight:700;text-decoration:none;border-top:1px solid rgba(255,255,255,.12);padding-top:.8rem;width:100%}.public-feature-list .feature-row{min-height:116px}.public-feature-list .feature-row>div:last-child{padding-left:.2rem}.public-journey{min-height:430px}.public-journey .journey-stage-image{width:100%;height:100%}.public-image-label{position:absolute;left:2rem;bottom:2rem;display:flex;flex-direction:column;background:rgba(7,35,63,.9);color:#fff;border:1px solid rgba(255,255,255,.18);border-radius:14px;padding:.75rem 1rem;backdrop-filter:blur(10px)}.public-image-label span{font-size:.68rem;text-transform:uppercase;letter-spacing:.12em;color:#a9d7e3}.public-image-label strong{font-size:1rem}.protected-visual{position:relative}.protected-badge{position:absolute;left:1.3rem;right:1.3rem;bottom:1.3rem;background:rgba(6,43,73,.92);color:#fff;border:1px solid rgba(255,255,255,.18);border-radius:14px;padding:.9rem 1rem;display:grid;grid-template-columns:auto 1fr;column-gap:.65rem;align-items:center;backdrop-filter:blur(12px)}.protected-badge>span{grid-row:1/3;font-size:1.3rem}.protected-badge strong{font-size:.9rem}.protected-badge small{color:#b9dce6}.secure-access-section{position:relative;background:#f6f2ec;overflow:hidden}.secure-access-bg{position:absolute;inset:0;background:radial-gradient(circle at 12% 20%,rgba(23,144,170,.14),transparent 35%),radial-gradient(circle at 90% 70%,rgba(76,158,222,.12),transparent 32%)}.secure-access-grid{position:relative;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);gap:4rem;align-items:center}.secure-access-copy h2{max-width:760px}.secure-access-copy p{max-width:760px;font-size:1.05rem;color:#52647a}.secure-principles{display:flex;gap:.55rem;flex-wrap:wrap;margin-top:1.4rem}.secure-principles span{color:#0c2c4f;border-color:rgba(12,44,79,.15);background:#fff}.access-card{background:#062b49;color:#fff;padding:2rem;border-radius:22px;box-shadow:0 28px 65px rgba(6,43,73,.18)}.access-card .lock-icon{font-size:1.55rem}.access-card>strong{display:block;font-size:1.45rem;margin:.65rem 0}.access-card p{color:#c6dce5;line-height:1.65}.access-card .button{width:100%;justify-content:center;margin-top:.65rem}.access-card .text-link{display:block;margin-top:1rem;color:#fff}.legal-notice{padding-top:1.25rem;padding-bottom:1.25rem;border-top:1px solid rgba(255,255,255,.12);color:rgba(255,255,255,.7)}.legal-notice strong{display:block;color:#fff;font-size:.82rem;margin-bottom:.4rem}.legal-notice p{font-size:.72rem;line-height:1.6;max-width:1100px}.sati-portal-wrap,.sati-access-wrap,.sati-legal-wrap{max-width:1120px;margin:0 auto;padding:8rem 1.5rem 5rem}.sati-page-hero{background:#062b49;color:#fff;border-radius:24px;padding:2.2rem;margin-bottom:1.6rem;position:relative;overflow:hidden}.sati-page-hero:after{content:"";position:absolute;width:260px;height:260px;border:1px solid rgba(255,255,255,.12);border-radius:50%;right:-90px;top:-90px}.sati-page-hero .eyebrow{color:#83d1df}.sati-page-hero h1{color:#fff;margin:.35rem 0 .65rem}.sati-page-hero p{color:#d1e1e8;max-width:760px}.sati-form-card,.sati-portal-card,.sati-legal-card{background:#fff;border:1px solid #e2e7eb;border-radius:20px;padding:1.7rem;box-shadow:0 18px 45px rgba(8,38,79,.06)}.sati-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.sati-form-field{display:flex;flex-direction:column;gap:.4rem}.sati-form-field.full{grid-column:1/-1}.sati-form-field label{font-size:.82rem;font-weight:800;color:#0c2c4f}.sati-form-field input,.sati-form-field textarea{width:100%;border:1px solid #ccd5dd;border-radius:10px;padding:.78rem .85rem;font:inherit;color:#102a50;background:#fff}.sati-form-field textarea{min-height:120px;resize:vertical}.sati-consent{display:flex;gap:.65rem;align-items:flex-start;font-size:.8rem;color:#52647a;margin-top:.45rem}.sati-consent input{margin-top:.2rem}.sati-status{border-radius:12px;padding:.9rem 1rem;margin-bottom:1rem;font-size:.9rem}.sati-status.success{background:#edf7ec;color:#315d2d;border:1px solid #cbe4c7}.sati-status.error{background:#fff0f0;color:#7c3030;border:1px solid #efc8c8}.sati-status.pending{background:#fff8e8;color:#745a20;border:1px solid #ead8aa}.sati-portal-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.sati-portal-card h3{margin-top:0}.sati-portal-card.locked{background:#f7f8fa}.sati-confidential-banner{display:flex;align-items:center;gap:.65rem;background:#0c2c4f;color:#fff;border-radius:12px;padding:.8rem 1rem;margin-bottom:1rem;font-size:.8rem;font-weight:700}.sati-watermark{position:fixed;z-index:999;pointer-events:none;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-24deg);font-size:2.1rem;font-weight:900;letter-spacing:.08em;color:rgba(12,44,79,.055);white-space:nowrap;text-transform:uppercase}.sati-legal-card h2{margin-top:2rem}.sati-legal-card h2:first-child{margin-top:0}.sati-legal-card p,.sati-legal-card li{color:#52647a;line-height:1.75}.sati-login-box{max-width:520px}.sati-login-box .login-username,.sati-login-box .login-password{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.8rem}.sati-login-box input[type=text],.sati-login-box input[type=password]{border:1px solid #ccd5dd;border-radius:10px;padding:.72rem}.sati-login-box input[type=submit]{border:0;background:#1790aa;color:#fff;padding:.75rem 1.1rem;border-radius:999px;font-weight:800;cursor:pointer}

/* === V5.0.1 public-layout hotfix ===
   Public V5 rows omit the legacy icon column. Keep copy in a fluid column. */
.public-feature-list .feature-row {
  grid-template-columns: 48px minmax(0, 1fr);
  gap: 18px;
}
.public-feature-list .feature-row > div:last-child {
  min-width: 0;
  padding-left: 0;
}
.problem-points article {
  grid-template-columns: 46px minmax(0, 1fr);
  gap: 16px;
}
.problem-points article > div {
  min-width: 0;
}


/* === V5.0.2 Trademark emphasis === */
.tm-mark{
  display:inline-block;
  position:relative;
  top:-.38em;
  margin-left:.08em;
  font-size:.46em;
  line-height:1;
  font-weight:900;
  color:#1790aa;
  letter-spacing:.02em;
  vertical-align:baseline;
}
.tm-mark-light{color:#8ed5e4;}
.tm-mark-footer{color:#8ed5e4;font-size:.58em;top:-.30em;}
.hero-copy .eyebrow .tm-mark{font-size:.72em;top:-.24em;margin-left:.06em;}
.section-heading h2 .tm-mark,.section-intro h2 .tm-mark,.final-cta h2 .tm-mark{font-size:.38em;top:-.50em;margin-left:.07em;}
.core-mark .tm-mark{font-size:.52em;top:-.34em;}
.public-image-label .tm-mark{font-size:.60em;top:-.26em;}
.brand-protected .brand-tm{
  right:-.52rem;
  top:-.05rem;
  color:#1790aa;
  font-size:.82rem;
  font-weight:900;
  line-height:1;
  text-shadow:0 0 10px rgba(23,144,170,.18);
}
@media (max-width:640px){
  .brand-protected .brand-tm{right:-.40rem;font-size:.72rem;}
  .tm-mark{font-size:.50em;}
}


/* === V5.0.3 Footer + trademark punctuation refinement ===
   Cleaner trademark endings and a more compact legal close. */
.site-footer{
  padding-bottom:32px;
}
.site-footer .legal-notice{
  margin-top:34px;
  padding-top:18px;
  padding-bottom:0;
}
.site-footer .legal-notice strong{
  font-size:.86rem;
  margin-bottom:.52rem;
}
.site-footer .legal-notice p{
  font-size:.76rem;
  line-height:1.68;
  max-width:1180px;
  margin-bottom:0;
}
.site-footer .tm-mark-footer{
  margin-left:.055em;
}
@media (max-width:860px){
  .site-footer .legal-notice{
    margin-top:28px;
  }
  .site-footer .legal-notice p{
    font-size:.74rem;
  }
}


/* === V5.0.4 Footer developer credit ===
   Reintroduces a clean last line with studio attribution. */
.site-footer .footer-credit{
  margin-top:22px;
  padding-top:16px;
  border-top:1px solid rgba(255,255,255,.08);
}
.site-footer .footer-credit-inner{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:12px;
  min-height:34px;
}
.site-footer .footer-credit-logo{
  width:34px;
  height:auto;
  display:block;
  opacity:.98;
  filter: drop-shadow(0 0 6px rgba(23,144,170,.08));
}
.site-footer .footer-credit p{
  margin:0;
  font-size:.78rem;
  line-height:1.35;
  color:rgba(255,255,255,.62);
}
.site-footer .footer-credit strong{
  color:#fff;
  font-weight:700;
}
@media (max-width:860px){
  .site-footer .footer-credit{
    margin-top:18px;
    padding-top:14px;
  }
  .site-footer .footer-credit-inner{
    justify-content:center;
    text-align:center;
    gap:10px;
    flex-wrap:wrap;
  }
  .site-footer .footer-credit-logo{
    width:30px;
  }
  .site-footer .footer-credit p{
    font-size:.75rem;
  }
}


/* === V5.0.5 Mobile navigation access controls === */
.mobile-nav-access{display:none}
@media (max-width:860px){
  .main-nav .mobile-nav-access{
    display:flex;
    flex-direction:column;
    gap:10px;
    width:100%;
    margin-top:8px;
    padding-top:14px;
    border-top:1px solid rgba(12,44,79,.10);
  }
  .main-nav .mobile-nav-access a{
    width:100%;
    box-sizing:border-box;
  }
  .main-nav .mobile-portal-link{
    display:flex;
    align-items:center;
    gap:8px;
    color:#0c2c4f;
    font-weight:800;
    padding:11px 8px;
    border-radius:12px;
    background:rgba(12,44,79,.035);
  }
  .main-nav .mobile-request-link{
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:44px;
    padding:11px 14px!important;
    border-radius:999px;
    background:#1790aa;
    color:#fff!important;
    font-weight:800;
    text-align:center;
    box-shadow:0 10px 24px rgba(23,144,170,.14);
  }
  .main-nav .mobile-request-link::after,
  .main-nav .mobile-portal-link::after{display:none!important}
}


/* =========================================================
   V5.0.6 · ECOSISTEMA INSTITUCIONAL
   Roles estructurales + red abierta de colaboración
   ========================================================= */
.institutional-ecosystem-section {
  background: linear-gradient(180deg, #f7f5ef 0%, #eef5f3 100%);
  overflow: hidden;
}
.institutional-ecosystem-bg {
  background:
    radial-gradient(circle at 10% 10%, rgba(23,144,170,.10), transparent 23%),
    radial-gradient(circle at 92% 78%, rgba(131,178,62,.10), transparent 24%);
}
.institutional-heading { max-width: 900px; }
.institutional-heading h2 { max-width: 900px; }
.governance-card {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: minmax(220px, .72fr) minmax(0, 1.28fr);
  align-items: center;
  gap: 48px;
  margin: 0 0 28px;
  padding: 34px 40px;
  border-radius: 26px;
  color: var(--white);
  background:
    radial-gradient(circle at 85% 20%, rgba(142,213,228,.15), transparent 26%),
    linear-gradient(135deg, #0b2f53 0%, #123f68 100%);
  border: 1px solid rgba(255,255,255,.12);
  box-shadow: var(--shadow-deep);
}
.governance-logo-wrap {
  min-height: 128px;
  display: grid;
  place-items: center;
  padding: 18px 24px;
  border-radius: 20px;
  background: rgba(255,255,255,.96);
}
.governance-logo-wrap img {
  width: min(100%, 330px);
  max-height: 92px;
  object-fit: contain;
}
.governance-copy h3 {
  margin: 13px 0 8px;
  font-size: clamp(1.8rem, 3vw, 3rem);
  letter-spacing: -.035em;
  line-height: 1;
}
.governance-copy p { margin: 0; color: rgba(255,255,255,.78); font-size: 1.05rem; }
.governance-copy p strong { color: var(--white); }
.role-badge {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  padding: 7px 10px;
  border-radius: 999px;
  color: #0f6c7e;
  background: #e7f4f4;
  border: 1px solid rgba(23,144,170,.16);
  font-size: .67rem;
  font-weight: 850;
  letter-spacing: .12em;
  line-height: 1;
  text-transform: uppercase;
}
.role-badge-light {
  color: #9fe0e9;
  background: rgba(142,213,228,.10);
  border-color: rgba(142,213,228,.22);
}
.institutional-partners-grid {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
}
.institutional-partner-card {
  min-width: 0;
  padding: 18px;
  border-radius: 22px;
  background: rgba(255,255,255,.90);
  border: 1px solid rgba(12,44,79,.10);
  box-shadow: 0 18px 48px rgba(12,44,79,.08);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.institutional-partner-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 24px 58px rgba(12,44,79,.12);
  border-color: rgba(23,144,170,.24);
}
.partner-logo-well {
  height: 176px;
  display: grid;
  place-items: center;
  margin-bottom: 18px;
  padding: 18px;
  border-radius: 17px;
  overflow: hidden;
  background: #fff;
  border: 1px solid rgba(12,44,79,.07);
}
.partner-logo-well img {
  width: 100%;
  height: 100%;
  max-width: 190px;
  max-height: 138px;
  object-fit: contain;
}
.partner-logo-well-aie img { max-width: 160px; max-height: 150px; }
.partner-logo-well-faug img { max-width: 230px; max-height: 92px; }
.partner-logo-well-usach { background: #272727; padding: 14px; }
.partner-logo-well-usach img { max-width: 230px; max-height: 112px; }
.institutional-partner-card .role-badge { margin-bottom: 15px; }
.institutional-partner-card h3 {
  margin: 0 0 8px;
  color: var(--navy);
  font-size: 1.08rem;
  line-height: 1.18;
}
.institutional-partner-card p {
  margin: 0;
  color: #62717c;
  font-size: .91rem;
  line-height: 1.52;
}
.open-network {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(280px, .6fr);
  gap: 38px;
  align-items: center;
  margin-top: 28px;
  padding: 30px 32px;
  border-radius: 22px;
  background: rgba(255,255,255,.58);
  border: 1px solid rgba(12,44,79,.10);
}
.open-network h3 {
  margin: 13px 0 8px;
  color: var(--navy);
  font-size: 1.55rem;
  letter-spacing: -.025em;
}
.open-network p { margin: 0; max-width: 760px; color: #61707c; }
.open-network-tags { display: flex; gap: 8px; justify-content: flex-end; flex-wrap: wrap; }
.open-network-tags span {
  padding: 8px 11px;
  border-radius: 999px;
  color: #30516a;
  background: rgba(255,255,255,.88);
  border: 1px solid rgba(12,44,79,.10);
  font-size: .75rem;
  font-weight: 750;
}
.footer-contact-email {
  display: inline-flex;
  margin-top: 10px;
  color: rgba(255,255,255,.82);
  font-size: .83rem;
  font-weight: 700;
  border-bottom: 1px solid rgba(142,213,228,.32);
  transition: color .2s ease, border-color .2s ease;
}
.footer-contact-email:hover { color: #9fe0e9; border-color: #9fe0e9; }


/* =========================================================
   V5.1.0 — Mindfulness Urbano · Mindful Smart City
   ========================================================= */
.mindful-city-section{
  position:relative;
  overflow:hidden;
  background:linear-gradient(145deg,#f3f8f6 0%,#f6f2ec 52%,#eef6f7 100%);
}
.mindful-city-bg{
  opacity:1;
  background:
    radial-gradient(circle at 12% 24%,rgba(131,178,62,.13),transparent 26%),
    radial-gradient(circle at 84% 18%,rgba(23,144,170,.13),transparent 25%),
    radial-gradient(circle at 78% 86%,rgba(76,158,222,.10),transparent 27%);
}
.mindful-city-grid{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:minmax(0,.92fr) minmax(460px,1.08fr);
  gap:clamp(56px,7vw,96px);
  align-items:center;
}
.mindful-city-copy{max-width:690px}
.mindful-city-copy h2{
  max-width:720px;
  margin:.6rem 0 1.25rem;
  color:var(--navy);
}
.mindful-city-copy p{
  color:#52647a;
  font-size:1.03rem;
  line-height:1.72;
  max-width:680px;
}
.mindful-city-copy strong{color:var(--navy)}
.mindful-city-statement{
  margin-top:1.8rem;
  padding:1.15rem 1.25rem;
  border:1px solid rgba(12,44,79,.09);
  border-left:4px solid var(--teal);
  border-radius:14px;
  background:rgba(255,255,255,.68);
  box-shadow:0 16px 34px rgba(12,44,79,.045);
  display:grid;
  gap:.3rem;
}
.mindful-city-statement span{
  color:var(--teal);
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:.66rem;
  font-weight:900;
}
.mindful-city-statement strong{
  color:var(--navy);
  font-size:.96rem;
  line-height:1.55;
}
.mindful-city-visual{
  position:relative;
  min-height:590px;
  border:1px solid rgba(12,44,79,.08);
  border-radius:34px;
  background:
    linear-gradient(145deg,rgba(255,255,255,.88),rgba(246,242,236,.66)),
    rgba(255,255,255,.62);
  box-shadow:0 26px 70px rgba(12,44,79,.08);
  overflow:hidden;
}
.mindful-city-visual::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,rgba(12,44,79,.028) 1px,transparent 1px),
    linear-gradient(rgba(12,44,79,.028) 1px,transparent 1px),
    radial-gradient(circle at 86% 12%,rgba(76,158,222,.10),transparent 24%),
    radial-gradient(circle at 10% 84%,rgba(131,178,62,.10),transparent 26%);
  background-size:52px 52px,52px 52px,auto,auto;
  pointer-events:none;
}
.mindful-city-visual::after{
  content:"";
  position:absolute;
  left:-3%;
  right:-3%;
  bottom:0;
  height:122px;
  opacity:.42;
  background:
    linear-gradient(90deg,
      transparent 0 4%,rgba(12,44,79,.07) 4% 9%,transparent 9% 13%,
      rgba(12,44,79,.05) 13% 18%,transparent 18% 23%,rgba(12,44,79,.08) 23% 31%,
      transparent 31% 38%,rgba(12,44,79,.05) 38% 44%,transparent 44% 49%,
      rgba(12,44,79,.075) 49% 58%,transparent 58% 65%,rgba(12,44,79,.05) 65% 70%,
      transparent 70% 77%,rgba(12,44,79,.075) 77% 86%,transparent 86% 92%,
      rgba(12,44,79,.05) 92% 96%,transparent 96% 100%);
  clip-path:polygon(0 100%,0 64%,7% 64%,7% 39%,12% 39%,12% 70%,20% 70%,20% 24%,27% 24%,27% 58%,35% 58%,35% 44%,43% 44%,43% 68%,51% 68%,51% 18%,59% 18%,59% 55%,67% 55%,67% 34%,74% 34%,74% 66%,82% 66%,82% 27%,90% 27%,90% 59%,100% 59%,100% 100%);
  pointer-events:none;
}
.mindful-journey{
  padding:clamp(28px,3vw,42px);
  display:flex;
  flex-direction:column;
  justify-content:space-between;
}
.mindful-journey-head,
.mindful-journey-track,
.mindful-journey-foot{position:relative;z-index:3}
.mindful-journey-head{
  max-width:480px;
  display:grid;
  gap:.4rem;
}
.mindful-journey-head span{
  color:var(--teal);
  text-transform:uppercase;
  letter-spacing:.15em;
  font-size:.65rem;
  font-weight:900;
}
.mindful-journey-head strong{
  color:var(--navy);
  font-size:1.04rem;
  line-height:1.35;
}
.mindful-journey-track{
  min-height:360px;
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  align-items:center;
  gap:12px;
  padding:18px 0 6px;
}
.mindful-journey-line{
  position:absolute;
  z-index:0;
  left:4%;
  right:4%;
  top:52%;
  height:3px;
  border-radius:999px;
  background:linear-gradient(90deg,rgba(12,44,79,.20),rgba(23,144,170,.55) 46%,rgba(131,178,62,.62) 78%,rgba(6,43,73,.82));
  transform:rotate(-8deg);
  transform-origin:center;
  box-shadow:0 0 0 7px rgba(255,255,255,.40);
}
.mindful-step{
  position:relative;
  z-index:2;
  min-height:144px;
  padding:1rem .86rem .9rem;
  border:1px solid rgba(12,44,79,.09);
  border-radius:18px;
  background:rgba(255,255,255,.88);
  box-shadow:0 16px 34px rgba(12,44,79,.07);
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:flex-start;
  gap:.28rem;
  backdrop-filter:blur(5px);
}
.mindful-step-1{transform:translateY(64px)}
.mindful-step-2{transform:translateY(26px)}
.mindful-step-3{transform:translateY(48px)}
.mindful-step-4{transform:translateY(-4px)}
.mindful-step-5{
  transform:translateY(-52px);
  color:#fff;
  border-color:rgba(23,144,170,.26);
  background:linear-gradient(150deg,#082d50 0%,#0c4c68 100%);
  box-shadow:0 22px 48px rgba(6,43,73,.19);
}
.mindful-step-index{
  color:var(--teal);
  font-size:.62rem;
  font-weight:900;
  letter-spacing:.13em;
}
.mindful-step-dot{
  width:12px;
  height:12px;
  margin:.2rem 0 .2rem;
  border-radius:50%;
  background:var(--teal);
  box-shadow:0 0 0 7px rgba(23,144,170,.10);
}
.mindful-step-4 .mindful-step-dot{background:var(--green);box-shadow:0 0 0 7px rgba(131,178,62,.11)}
.mindful-step-5 .mindful-step-dot{background:#9ee0e8;box-shadow:0 0 0 7px rgba(158,224,232,.12)}
.mindful-step h3{
  margin:.15rem 0 0;
  color:var(--navy);
  font-size:.92rem;
  line-height:1.2;
}
.mindful-step p{
  margin:0;
  color:#6b7a85;
  font-size:.68rem;
  line-height:1.38;
}
.mindful-step-5 .mindful-step-index{color:#9ee0e8}
.mindful-step-5 h3{color:#fff}
.mindful-step-5 p{color:#cfe2e7}
.mindful-journey-foot{
  width:max-content;
  max-width:100%;
  margin-left:auto;
  padding:.72rem .9rem;
  border-radius:12px;
  border:1px solid rgba(23,144,170,.12);
  background:rgba(255,255,255,.76);
  display:grid;
  gap:.16rem;
  text-align:right;
}
.mindful-journey-foot span{
  color:var(--teal);
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:.58rem;
  font-weight:900;
}
.mindful-journey-foot strong{
  color:var(--navy);
  font-size:.72rem;
  line-height:1.35;
}

/* Ecosistema de cinco componentes */
.ecosystem-visual{height:610px}
.node-a{top:22px;left:50%;transform:translateX(-50%)}
.node-b{right:4px;top:29%}
.node-c{right:34px;bottom:58px;left:auto;transform:none}
.node-d{left:34px;bottom:58px;top:auto}
.node-e{
  left:4px;
  top:29%;
  max-width:180px;
  text-align:center;
  color:#0c5367;
  border-color:rgba(23,144,170,.22);
  background:#f4fbfc;
}
.public-feature-list .feature-row{min-height:105px}
.feature-row-attention{
  background:linear-gradient(90deg,rgba(23,144,170,.035),transparent 72%);
}
.feature-row-attention .feature-number{color:var(--teal)}

/* =========================================================
   V5.2.0 — Fundamentos & Mindful Urbanism
   ========================================================= */
.hero-concept-line{
  margin: -10px 0 28px;
  color:#a9e3eb;
  font-size:.82rem;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.attention-ribbon{
  margin-top:34px;
  display:grid;
  grid-template-columns:auto auto 1fr;
  align-items:center;
  gap:14px;
  padding:15px 18px;
  border:1px solid rgba(23,144,170,.16);
  border-radius:18px;
  background:linear-gradient(90deg, rgba(23,144,170,.07), rgba(131,178,62,.05), rgba(255,255,255,.76));
}
.attention-ribbon span{
  color:var(--teal);
  font-size:.67rem;
  font-weight:850;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.attention-ribbon strong{color:var(--navy);font-size:1rem}
.attention-ribbon p{margin:0;color:#62727e;font-size:.88rem}

.attention-presence-section{
  background:linear-gradient(180deg,#eef7f6 0%,#f9fbf8 54%,var(--paper) 100%);
}
.attention-presence-bg{
  background:
    radial-gradient(circle at 14% 36%,rgba(131,178,62,.12),transparent 22%),
    radial-gradient(circle at 86% 30%,rgba(23,144,170,.14),transparent 24%),
    linear-gradient(90deg,rgba(255,255,255,.35),transparent 50%);
}
.attention-presence-grid{
  position:relative;z-index:2;
  display:grid;
  grid-template-columns:minmax(0,.82fr) minmax(520px,1.18fr);
  gap:76px;
  align-items:center;
}
.attention-presence-copy{max-width:560px}
.attention-presence-copy h2{
  margin:10px 0 22px;
  color:var(--navy);
  font-size:clamp(2.45rem,4.35vw,4.7rem);
  line-height:.98;
  letter-spacing:-.05em;
}
.attention-presence-copy>p{margin:0;color:#586b79;font-size:clamp(1.03rem,1.3vw,1.18rem);line-height:1.72}
.attention-note{
  margin-top:28px;
  padding:18px 20px;
  border-left:4px solid var(--teal);
  border-radius:0 16px 16px 0;
  background:rgba(255,255,255,.78);
  box-shadow:0 16px 45px rgba(12,44,79,.07);
}
.attention-note span{display:block;margin-bottom:5px;color:var(--teal);font-size:.68rem;font-weight:850;letter-spacing:.14em;text-transform:uppercase}
.attention-note strong{display:block;color:var(--navy);font-size:.95rem}

.breath-visual{
  min-height:460px;
  padding:34px 34px 30px;
  border:1px solid rgba(12,44,79,.08);
  border-radius:32px;
  background:
    linear-gradient(rgba(255,255,255,.90),rgba(255,255,255,.82)),
    linear-gradient(90deg,rgba(12,44,79,.035) 1px,transparent 1px),
    linear-gradient(rgba(12,44,79,.035) 1px,transparent 1px);
  background-size:auto,42px 42px,42px 42px;
  box-shadow:0 28px 80px rgba(12,44,79,.10);
  position:relative;
  overflow:hidden;
}
.breath-visual::after{
  content:'';position:absolute;width:270px;height:270px;border-radius:50%;right:-90px;bottom:-120px;
  background:radial-gradient(circle,rgba(76,158,222,.14),rgba(23,144,170,.07) 44%,transparent 70%);
}
.breath-visual-head{position:relative;z-index:3}
.breath-visual-head span{display:block;color:var(--teal);font-size:.67rem;font-weight:850;letter-spacing:.15em;text-transform:uppercase}
.breath-visual-head strong{display:block;margin-top:7px;color:var(--navy);font-size:1.04rem}
.breath-wave-wrap{height:185px;margin:34px -4px 4px;position:relative;z-index:2}
.breath-wave{width:100%;height:100%;overflow:visible}
.breath-wave-soft,.breath-wave-main{fill:none;vector-effect:non-scaling-stroke}
.breath-wave-soft{stroke:rgba(23,144,170,.12);stroke-width:15}
.breath-wave-main{stroke:url(#none);stroke:var(--teal);stroke-width:3;stroke-dasharray:14 12;animation:breathDash 12s linear infinite}
@keyframes breathDash{to{stroke-dashoffset:-260}}
.breath-steps{
  position:relative;z-index:3;
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:10px;
}
.breath-steps article{
  min-height:112px;
  padding:14px 12px;
  border-radius:16px;
  background:rgba(255,255,255,.86);
  border:1px solid rgba(12,44,79,.08);
}
.breath-steps span{display:block;color:var(--teal);font-size:.64rem;font-weight:850;letter-spacing:.12em}
.breath-steps strong{display:block;margin:6px 0 4px;color:var(--navy);font-size:.92rem}
.breath-steps small{display:block;color:#71808b;font-size:.72rem;line-height:1.35}

.together-section{
  background:#f3f7f3;
}
.together-bg{
  background:
    radial-gradient(circle at 22% 70%,rgba(131,178,62,.10),transparent 24%),
    radial-gradient(circle at 82% 26%,rgba(23,144,170,.10),transparent 22%);
}
.together-grid{position:relative;z-index:2;display:grid;grid-template-columns:.82fr 1.18fr;gap:82px;align-items:center}
.together-copy h2{
  margin:10px 0 22px;color:var(--navy);font-size:clamp(2.4rem,4.2vw,4.6rem);line-height:.98;letter-spacing:-.05em
}
.together-copy p{margin:0 0 16px;color:#5e707c;font-size:1.04rem;line-height:1.7}
.together-visual{
  min-height:410px;
  position:relative;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:16px;
  align-items:center;
  padding:54px 28px 68px;
  border-radius:30px;
  border:1px solid rgba(12,44,79,.08);
  background:rgba(255,255,255,.75);
  box-shadow:0 26px 70px rgba(12,44,79,.08);
  overflow:hidden;
}
.together-visual::before{content:'';position:absolute;inset:0;background:linear-gradient(120deg,rgba(23,144,170,.03),transparent 42%,rgba(131,178,62,.06));pointer-events:none}
.together-line{position:absolute;left:10%;right:10%;top:50%;height:2px;background:linear-gradient(90deg,rgba(23,144,170,.28),rgba(23,144,170,.55),rgba(131,178,62,.56));z-index:1}
.together-visual article{
  position:relative;z-index:2;
  min-height:146px;
  display:flex;flex-direction:column;justify-content:center;
  padding:20px 16px;
  border:1px solid rgba(12,44,79,.09);
  border-radius:20px;
  background:rgba(255,255,255,.95);
  box-shadow:0 14px 34px rgba(12,44,79,.07);
}
.together-visual article::after{content:'';position:absolute;width:12px;height:12px;border-radius:50%;right:-15px;top:50%;transform:translateY(-50%);background:var(--teal);box-shadow:0 0 0 7px rgba(23,144,170,.09)}
.together-visual article:last-of-type::after{display:none}
.together-visual article span{color:var(--teal);font-size:.66rem;font-weight:850;letter-spacing:.13em}
.together-visual article strong{margin:8px 0 3px;color:var(--navy);font-size:1.22rem}
.together-visual article small{color:#72808a;font-size:.78rem}
.together-visual .together-city{background:linear-gradient(160deg,#0c2c4f,#15466f);border-color:transparent}
.together-visual .together-city span,.together-visual .together-city small{color:#a9dfe8}
.together-visual .together-city strong{color:#fff}
.together-caption{position:absolute;left:28px;right:28px;bottom:22px;text-align:center;color:#5c6d79;font-size:.76rem;font-weight:750;letter-spacing:.035em}
.together-caption b{color:var(--teal);padding:0 6px}

.micro-experiences-section{background:var(--paper)}
.micro-experiences-bg{
  background:
    radial-gradient(circle at 14% 20%,rgba(23,144,170,.08),transparent 20%),
    radial-gradient(circle at 86% 78%,rgba(131,178,62,.08),transparent 20%);
}
.micro-experience-grid{position:relative;z-index:2;display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.micro-experience-grid article{
  min-height:295px;
  padding:28px 24px;
  border-radius:24px;
  border:1px solid rgba(12,44,79,.09);
  background:rgba(255,255,255,.88);
  box-shadow:0 16px 48px rgba(12,44,79,.06);
  position:relative;
  overflow:hidden;
  transition:.25s ease;
}
.micro-experience-grid article::before{content:'';position:absolute;left:0;right:0;top:0;height:4px;background:linear-gradient(90deg,var(--teal),var(--green))}
.micro-experience-grid article:hover{transform:translateY(-5px);box-shadow:0 24px 60px rgba(12,44,79,.10)}
.micro-time{display:block;color:var(--navy);font-size:4.4rem;font-weight:850;line-height:.88;letter-spacing:-.07em}
.micro-experience-grid small{display:block;margin-top:8px;color:var(--teal);font-size:.63rem;font-weight:850;letter-spacing:.18em}
.micro-experience-grid h3{margin:32px 0 10px;color:var(--navy);font-size:1.28rem}
.micro-experience-grid p{margin:0;color:#667783;font-size:.92rem;line-height:1.55}
.micro-experience-grid .micro-experience-featured{background:linear-gradient(160deg,#0d3155,#125273);border-color:transparent}
.micro-experience-featured .micro-time,.micro-experience-featured h3{color:#fff}
.micro-experience-featured small{color:#9be1ea}
.micro-experience-featured p{color:rgba(255,255,255,.72)}
.micro-experience-foot{position:relative;z-index:2;margin-top:24px;display:flex;gap:12px;align-items:center;padding:15px 18px;border-radius:16px;background:rgba(23,144,170,.07);border:1px solid rgba(23,144,170,.12)}
.micro-experience-foot span{color:var(--teal);font-size:.65rem;font-weight:850;letter-spacing:.13em;text-transform:uppercase}
.micro-experience-foot strong{color:var(--navy);font-size:.88rem}

.foundations-section{background:#0a2948;color:#fff}
.foundations-bg{
  background:
    radial-gradient(circle at 17% 25%,rgba(142,213,228,.14),transparent 22%),
    radial-gradient(circle at 85% 72%,rgba(131,178,62,.13),transparent 24%),
    linear-gradient(115deg,rgba(255,255,255,.025) 1px,transparent 1px),
    linear-gradient(25deg,rgba(255,255,255,.02) 1px,transparent 1px);
  background-size:auto,auto,58px 58px,58px 58px;
}
.foundations-grid{position:relative;z-index:2;display:grid;grid-template-columns:1.08fr .72fr;gap:92px;align-items:center}
.foundations-copy h2{margin:10px 0 24px;color:#fff;font-size:clamp(2.55rem,4.45vw,4.85rem);line-height:.97;letter-spacing:-.05em}
.foundations-copy>p{max-width:760px;color:rgba(255,255,255,.72);font-size:1.02rem;line-height:1.72;margin:0 0 15px}
.alfredo-credentials{
  margin:0 0 24px;
  display:grid;grid-template-columns:auto 1fr;column-gap:16px;row-gap:4px;
  align-items:baseline;
  padding:17px 20px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:18px;
  background:rgba(255,255,255,.06);
}
.alfredo-credentials strong{grid-row:1/4;color:#fff;font-size:1.22rem;padding-right:16px;border-right:1px solid rgba(255,255,255,.13)}
.alfredo-credentials span{color:#a9dfe8;font-size:.78rem;font-weight:700}
.alfredo-credentials em{font-style:italic;color:#fff}
.foundations-principle{margin:30px 0 22px;padding:18px 20px;border-left:4px solid #83b23e;border-radius:0 18px 18px 0;background:rgba(255,255,255,.07)}
.foundations-principle span{display:block;margin-bottom:6px;color:#9fe0e9;font-size:.65rem;font-weight:850;letter-spacing:.14em;text-transform:uppercase}
.foundations-principle strong{display:block;color:#fff;font-size:1.05rem}
.foundation-pillars{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.foundation-pillars span{padding:13px 12px;border:1px solid rgba(255,255,255,.11);border-radius:14px;background:rgba(255,255,255,.045)}
.foundation-pillars b{display:block;color:#fff;font-size:.82rem}
.foundation-pillars small{display:block;margin-top:4px;color:rgba(255,255,255,.56);font-size:.67rem;line-height:1.3}
.book-feature{position:relative;display:grid;grid-template-columns:.9fr 1fr;gap:22px;align-items:end;padding:28px;border:1px solid rgba(255,255,255,.13);border-radius:30px;background:rgba(255,255,255,.07);box-shadow:0 34px 85px rgba(0,0,0,.20);overflow:hidden}
.book-feature::before{content:'';position:absolute;inset:-25%;background:radial-gradient(circle at 62% 42%,rgba(142,213,228,.13),transparent 24%),radial-gradient(circle at 35% 75%,rgba(131,178,62,.12),transparent 22%);pointer-events:none}
.book-art{position:relative;z-index:2;min-height:420px;display:flex;align-items:center;justify-content:center}
.book-art img{position:relative;z-index:2;width:min(100%,250px);max-height:390px;object-fit:contain;border-radius:3px;box-shadow:0 28px 60px rgba(0,0,0,.36);transform:rotate(-2deg)}
.book-glow{position:absolute;width:280px;height:280px;border-radius:50%;background:radial-gradient(circle,rgba(240,192,93,.22),rgba(23,144,170,.07) 48%,transparent 72%)}
.book-meta{position:relative;z-index:2;padding-bottom:8px}
.book-meta span{display:block;color:#9fe0e9;font-size:.65rem;font-weight:850;letter-spacing:.14em;text-transform:uppercase}
.book-meta strong{display:block;margin:9px 0 8px;color:#fff;font-size:1.2rem;line-height:1.2}
.book-meta p{margin:0 0 14px;color:rgba(255,255,255,.68);font-size:.8rem}
.book-meta small{display:block;color:rgba(255,255,255,.47);font-size:.68rem;line-height:1.45}

@media (prefers-reduced-motion: reduce){
  .breath-wave-main{animation:none}
}


/* =========================================================
   V5.2.1 — Pulido editorial, ritmo y robustez responsive
   ========================================================= */
/* Evita desbordes de contenido en grids complejos y traducciones más largas. */
.attention-presence-grid > *,
.together-grid > *,
.foundations-grid > *,
.mindful-city-grid > *,
.ecosystem-layout > *,
.governance-card > *,
.open-network > * { min-width: 0; }

.role-badge {
  max-width: 100%;
  white-space: normal;
  line-height: 1.18;
  text-align: left;
}

/* Ritmo vertical ligeramente más compacto sin alterar la jerarquía editorial. */
.section-heading { margin-bottom: 52px; }

/* Anclas seguras bajo header fijo, incluida la barra de administración. */
section[id] { scroll-margin-top: 104px; }
body.admin-bar section[id] { scroll-margin-top: 136px; }
