:root{
  --navy-950:#0A1A2C;
  --navy-900:#12283F;
  --navy-800:#1B3A5C;
  --blue-600:#3E7CA6;
  --blue-500:#5092BE;
  --blue-300:#9AC9E8;
  --ice:#EAF3FA;
  --paper:#F7F9FB;
  --ink:#14232F;
  --slate:#5C6B78;
  --line:#DEE7EE;
  --white:#FFFFFF;

  --display: 'Space Grotesk', sans-serif;
  --body: 'Inter', sans-serif;
  --mono: 'IBM Plex Mono', monospace;
}

*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family: var(--body);
  color: var(--ink);
  background: var(--paper);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%; display:block;}
a{color:inherit;}
ul{list-style:none;}

.wrap{
  max-width:1240px;
  margin:0 auto;
  padding:0 32px;
}

h1,h2,h3,h4{
  font-family: var(--display);
  font-weight:600;
  letter-spacing:-0.01em;
  color: var(--navy-900);
}

.eyebrow{
  font-family: var(--mono);
  font-size:12px;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color: var(--blue-500);
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:16px;
}
.eyebrow::before{
  content:"";
  width:22px;
  height:1px;
  background: var(--blue-500);
  display:inline-block;
}
.eyebrow.on-dark{ color: var(--blue-300); }

/* ---------- Header ---------- */
header{
  position:fixed;
  top:0; left:0; right:0;
  z-index:100;
  padding:20px 0;
  transition: background .35s ease, padding .35s ease, box-shadow .35s ease;
}
header .wrap{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
}
header.scrolled{
  background: rgba(10,26,44,0.94);
  backdrop-filter: blur(10px);
  padding:14px 0;
  box-shadow:0 8px 30px rgba(10,26,44,0.18);
}
header.on-light:not(.scrolled){
  background: rgba(255,255,255,0.0);
}
.brand{
  display:flex;
  align-items:center;
  gap:10px;
  flex:none;
}
.brand img{height:40px; width:auto;}

nav.mainnav{ flex:1; display:flex; justify-content:center; }
nav.mainnav ul{
  display:flex;
  gap:32px;
}
nav.mainnav a{
  color: var(--ice);
  font-size:14.5px;
  font-weight:500;
  text-decoration:none;
  opacity:0.85;
  transition:opacity .2s;
  white-space:nowrap;
}
nav.mainnav a:hover{opacity:1;}
nav.mainnav a.active{ opacity:1; border-bottom:1px solid var(--blue-300); padding-bottom:3px;}

.header-right{ display:flex; align-items:center; gap:18px; flex:none; }

.langswitch{
  display:flex;
  gap:4px;
  border:1px solid rgba(234,243,250,0.28);
  border-radius:20px;
  padding:3px;
}
.langswitch button{
  border:none;
  background:transparent;
  color:#B9CCDA;
  font-family:var(--mono);
  font-size:11.5px;
  letter-spacing:.04em;
  padding:5px 10px;
  border-radius:16px;
  cursor:pointer;
  transition: background .2s ease, color .2s ease;
}
.langswitch button.active{
  background: var(--blue-500);
  color: var(--navy-950);
}

.btn{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:11px 22px;
  border-radius:30px;
  font-family: var(--body);
  font-weight:600;
  font-size:14.5px;
  text-decoration:none;
  border:1px solid transparent;
  cursor:pointer;
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
  white-space:nowrap;
}
.btn-primary{
  background: var(--blue-500);
  color: var(--navy-950);
}
.btn-primary:hover{ transform:translateY(-2px); box-shadow:0 10px 24px rgba(80,146,190,0.35);}
.btn-ghost{
  border-color: rgba(234,243,250,0.35);
}
.btn-ghost:hover{ border-color: rgba(234,243,250,0.7); }
.btn-ghost.on-light{ color:var(--navy-900); border-color:var(--line); }
.btn-dark{
  background: var(--navy-900);
  color: var(--ice);
}
.btn-dark:hover{ transform:translateY(-2px); box-shadow:0 10px 24px rgba(18,40,63,0.28);}

.header-cta{display:none;}
@media(min-width:1080px){ .header-cta{display:inline-flex;} }

.navtoggle{
  display:none;
  width:38px; height:38px;
  border-radius:8px;
  border:1px solid rgba(234,243,250,0.3);
  background:transparent;
  color:var(--ice);
  align-items:center; justify-content:center;
  cursor:pointer;
  font-size:16px;
}
@media(max-width:1000px){
  nav.mainnav{display:none;}
  .navtoggle{display:flex;}
}
.mobilenav{
  display:none;
  flex-direction:column;
  gap:4px;
  background: rgba(10,26,44,0.98);
  padding:16px 32px 22px;
}
.mobilenav.open{ display:flex; }
.mobilenav a{
  color:var(--ice);
  text-decoration:none;
  padding:10px 0;
  font-size:15px;
  border-bottom:1px solid rgba(234,243,250,0.1);
}

/* ---------- Hero (home) ---------- */
.hero{
  background: radial-gradient(120% 140% at 78% -10%, #1C4468 0%, var(--navy-900) 46%, var(--navy-950) 100%);
  color: var(--ice);
  padding:180px 0 120px;
  position:relative;
  overflow:hidden;
}
.hero .wrap{
  display:grid;
  grid-template-columns:1.05fr 0.95fr;
  gap:40px;
  align-items:center;
}
@media(max-width:960px){
  .hero .wrap{grid-template-columns:1fr;}
  .hero{padding:150px 0 80px;}
}
.hero h1{
  font-size:clamp(32px, 4.2vw, 54px);
  line-height:1.08;
  color:var(--white);
  max-width:640px;
}
.hero h1 em, .hero h1 .hl{
  font-style:normal;
  color: var(--blue-300);
}
.hero p.lead{
  margin-top:22px;
  font-size:18px;
  color:#C7D8E5;
  max-width:520px;
}
.hero .cta-row{
  margin-top:38px;
  display:flex;
  gap:16px;
  flex-wrap:wrap;
}
.hero .microstats{
  margin-top:56px;
  display:flex;
  gap:40px;
  flex-wrap:wrap;
}
.hero .microstats div{
  border-left:1px solid rgba(154,201,232,0.28);
  padding-left:14px;
}
.hero .microstats strong{
  display:block;
  font-family:var(--display);
  font-size:26px;
  color:var(--white);
}
.hero .microstats span{
  font-size:12.5px;
  color:#9FB4C4;
}

/* ---- signature orbital diagram ---- */
.orbit-stage{
  position:relative;
  width:100%;
  aspect-ratio:1/1;
  max-width:520px;
  justify-self:center;
}
.orbit-stage svg{ width:100%; height:100%; overflow:visible; }
.orbit-ring{
  fill:none;
  stroke:rgba(154,201,232,0.18);
  stroke-dasharray:2 7;
}
.orbit-spin{
  transform-origin:250px 250px;
  animation: spin 90s linear infinite;
}
.orbit-spin.rev{ animation-duration:130s; animation-direction:reverse; }
.orbit-spin.slow{ animation-duration:170s; }
@keyframes spin{ to{ transform:rotate(360deg);} }

.node-group{ cursor:pointer; }
.node-circle{
  fill: var(--navy-800);
  stroke: var(--blue-300);
  stroke-width:1.4;
  transition: fill .2s ease, stroke .2s ease;
}
.node-group:hover .node-circle{ fill: var(--blue-500); stroke: var(--white); }
.node-icon{ stroke:var(--blue-300); transition: stroke .2s ease; }
.node-group:hover .node-icon{ stroke:var(--navy-950); }

.hub{ fill: var(--navy-950); stroke: var(--blue-500); stroke-width:1.6; }
.hub-pulse{
  fill:none; stroke: var(--blue-500); stroke-width:1; opacity:0.55;
  animation: pulse 3.4s ease-out infinite;
}
@keyframes pulse{ 0%{ r:46; opacity:0.55; } 100%{ r:110; opacity:0; } }
.hub-label{ font-family:var(--display); font-size:15px; font-weight:700; fill:var(--white); text-anchor:middle; }
.hub-sub{ font-family:var(--mono); font-size:8.5px; letter-spacing:0.12em; fill:var(--blue-300); text-anchor:middle; }

.orbit-tooltip{
  position:absolute; pointer-events:none;
  background: var(--white); color: var(--ink);
  border-radius:12px; padding:12px 16px; max-width:220px; font-size:13px;
  box-shadow:0 20px 40px rgba(10,26,44,0.35);
  opacity:0; transform: translateY(6px);
  transition: opacity .18s ease, transform .18s ease;
  z-index:5;
}
.orbit-tooltip.show{ opacity:1; transform:translateY(0); }
.orbit-tooltip b{ display:block; font-family:var(--display); color:var(--navy-900); font-size:14px; margin-bottom:3px; }
@media (max-width:960px){ .orbit-stage{ margin-top:20px; max-width:400px; } }

/* ---------- Module hero (subpages) ---------- */
.mod-hero{
  background: linear-gradient(120deg, var(--navy-900), var(--navy-950));
  color:var(--ice);
  padding:170px 0 90px;
}
.mod-hero .breadcrumb{
  font-family:var(--mono);
  font-size:12px;
  letter-spacing:.06em;
  color:#8FA9BE;
  margin-bottom:22px;
  display:flex; gap:8px; align-items:center;
}
.mod-hero .breadcrumb a{ text-decoration:none; color:#8FA9BE; }
.mod-hero .breadcrumb a:hover{ color:var(--blue-300); }
.mod-hero-top{
  display:flex;
  align-items:center;
  gap:16px;
  margin-bottom:20px;
}
.mod-hero-icon{
  width:52px; height:52px;
  border-radius:14px;
  background: rgba(154,201,232,0.14);
  border:1px solid rgba(154,201,232,0.3);
  display:flex; align-items:center; justify-content:center;
}
.mod-hero-icon svg{ width:26px; height:26px; stroke:var(--blue-300); }
.mod-hero h1{ color:var(--white); font-size:clamp(30px,4vw,46px); }
.mod-hero .tagline{ font-size:19px; color:var(--blue-300); font-weight:500; margin-top:6px;}
.mod-hero p.desc{ margin-top:20px; max-width:640px; color:#C7D8E5; font-size:16.5px; }
.mod-hero .cta-row{ margin-top:32px; display:flex; gap:16px; flex-wrap:wrap; }

.mod-shot{
  margin-top:56px;
  border-radius:16px;
  overflow:hidden;
  border:1px solid rgba(154,201,232,0.22);
  box-shadow:0 40px 90px rgba(4,12,22,0.55);
}
.mod-shot img{ width:100%; display:block; }

/* ---------- Sections generic ---------- */
section{ padding:104px 0; }
.section-head{ max-width:640px; margin-bottom:56px; }
.section-head.center{ margin-left:auto; margin-right:auto; text-align:center; }
.section-head h2{ font-size:clamp(28px,3.2vw,40px); line-height:1.14; }
.section-head p{ margin-top:16px; color:var(--slate); font-size:17px; }

/* ---------- Manifesto ---------- */
.manifesto{ background:var(--white); }
.manifesto-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:0; border-top:1px solid var(--line); }
@media(max-width:820px){ .manifesto-grid{grid-template-columns:1fr;} }
.manifesto-col{ padding:36px 34px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
.manifesto-col:last-child{ border-right:none; }
.manifesto-col .num{ font-family:var(--mono); color:var(--blue-500); font-size:13px; letter-spacing:.1em; }
.manifesto-col h3{ margin-top:18px; font-size:23px; }
.manifesto-col p{ margin-top:12px; color:var(--slate); font-size:15px; }

/* ---------- Stats band ---------- */
.stats-band{ background: var(--navy-950); color: var(--ice); padding:64px 0; }
.stats-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
@media(max-width:820px){ .stats-grid{grid-template-columns:repeat(2,1fr);} }
.stat{ text-align:left; }
.stat strong{ display:block; font-family:var(--display); font-size:clamp(30px,3.4vw,42px); color:var(--white); }
.stat span{ font-size:13px; color:#9FB4C4; }

/* ---------- Modules grid ---------- */
.modules{ background: var(--paper); }
.module-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
@media(max-width:960px){ .module-grid{grid-template-columns:repeat(2,1fr);} }
@media(max-width:620px){ .module-grid{grid-template-columns:1fr;} }

.module-card{
  background:var(--white);
  border:1px solid var(--line);
  border-radius:18px;
  padding:28px;
  transition: box-shadow .25s ease, transform .25s ease, border-color .25s ease;
  text-decoration:none;
  display:block;
}
.module-card:hover{
  box-shadow:0 24px 48px rgba(18,40,63,0.10);
  transform:translateY(-4px);
  border-color: var(--blue-300);
}
.module-icon{
  width:46px; height:46px; border-radius:12px;
  background: var(--ice);
  display:flex; align-items:center; justify-content:center;
  margin-bottom:20px;
}
.module-icon svg{ width:24px; height:24px; stroke:var(--blue-600); }
.module-card h4{ font-size:18px; color:var(--navy-900); }
.module-card .tagline{ margin-top:6px; color:var(--navy-800); font-size:14px; font-weight:500; }
.module-card p.desc{ margin-top:12px; color:var(--slate); font-size:14px; }
.module-card .more{
  margin-top:16px; font-size:13px; font-weight:600; color:var(--blue-600);
  display:flex; align-items:center; gap:6px;
}
.module-card .more svg{ width:14px; height:14px; stroke:var(--blue-600); transition:transform .2s ease; }
.module-card:hover .more svg{ transform:translateX(3px); }

/* ---------- Feature list (module subpage) ---------- */
.feature-block{ background:var(--white); }
.feature-list{ display:grid; grid-template-columns:repeat(2,1fr); gap:16px; }
@media(max-width:760px){ .feature-list{grid-template-columns:1fr;} }
.feature-item{
  display:flex; gap:14px;
  border:1px solid var(--line);
  border-radius:14px;
  padding:20px;
}
.feature-item svg{ flex:none; width:20px; height:20px; stroke:var(--blue-500); margin-top:2px; }
.feature-item p{ font-size:14.5px; color:var(--navy-900); }

/* ---------- Deep dive gallery (Persones/IQF) ---------- */
.deepdive{ background:var(--ice); }
.deepdive-item{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:48px;
  align-items:center;
  padding:56px 0;
  border-bottom:1px solid rgba(27,58,92,0.1);
}
.deepdive-item:last-child{ border-bottom:none; }
.deepdive-item.reverse .dd-copy{ order:2; }
.deepdive-item.reverse .dd-shot{ order:1; }
.deepdive-item.text-only{ grid-template-columns:1fr; }
.deepdive-item.text-only .dd-copy{ max-width:640px; }
@media(max-width:860px){
  .deepdive-item{ grid-template-columns:1fr; gap:24px; padding:36px 0; }
  .deepdive-item.reverse .dd-copy, .deepdive-item.reverse .dd-shot{ order:0; }
}
.dd-copy .stepno{ font-family:var(--mono); color:var(--blue-600); font-size:12px; letter-spacing:.1em; }
.dd-copy h3{ margin-top:12px; font-size:24px; }
.dd-copy p{ margin-top:12px; color:var(--slate); font-size:15px; }
.dd-shot{
  border-radius:14px; overflow:hidden;
  box-shadow:0 30px 60px rgba(18,40,63,0.16);
  border:1px solid var(--line);
}

/* ---------- How we help ---------- */
.journey{ background:var(--ice); }
.journey-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:0; border-top:1px solid var(--line); border-left:1px solid var(--line); }
@media(max-width:880px){ .journey-grid{grid-template-columns:repeat(2,1fr);} }
@media(max-width:520px){ .journey-grid{grid-template-columns:1fr;} }
.journey-item{ padding:32px 28px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
.journey-item .stepno{ font-family:var(--mono); color:var(--blue-500); font-size:12px; letter-spacing:.1em; }
.journey-item h4{ margin-top:14px; font-size:19px; }
.journey-item p{ margin-top:10px; color:var(--slate); font-size:14px; }

/* ---------- Impact / benefits ---------- */
.impact{ background:var(--white); }
.impact-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
@media(max-width:880px){ .impact-grid{grid-template-columns:1fr;} }
.impact-card{ background:var(--paper); border:1px solid var(--line); border-radius:18px; padding:32px; }
.impact-card h4{
  font-size:14px; text-transform:uppercase; letter-spacing:.08em;
  color:var(--blue-600); font-family:var(--mono); font-weight:500;
}
.impact-card ul{ margin-top:20px; }
.impact-card li{
  display:flex; gap:10px; font-size:14.5px; color:var(--navy-900);
  padding:9px 0; border-top:1px solid var(--line);
}
.impact-card li:first-of-type{ border-top:none; }
.impact-card li svg{ flex:none; width:16px; height:16px; margin-top:2px; stroke:var(--blue-500); }

/* ---------- Trust / clients ---------- */
.trust{ background:var(--ice); }
#contacte{ background:var(--white); }
.company{ background:var(--paper); }
.logo-wall{
  display:grid;
  grid-template-columns:repeat(7,1fr);
  gap:1px;
  background: var(--line);
  border:1px solid var(--line);
  border-radius:16px;
  overflow:hidden;
  margin-top:12px;
}
@media(max-width:900px){ .logo-wall{grid-template-columns:repeat(4,1fr);} }
@media(max-width:560px){ .logo-wall{grid-template-columns:repeat(3,1fr);} }
.logo-wall div{
  background:var(--white);
  aspect-ratio:1.5/1;
  display:flex; align-items:center; justify-content:center;
  padding:16px;
}
.logo-wall img{
  max-width:100%; max-height:100%;
  object-fit:contain;
  filter:grayscale(1) opacity(0.55);
  transition:filter .2s ease;
}
.logo-wall div:hover img{ filter:grayscale(0) opacity(1); }

.partner-row{
  display:flex; flex-wrap:wrap; gap:14px; margin-top:28px;
}
.partner-row div{
  border:1px solid var(--line); border-radius:12px;
  padding:14px 22px; display:flex; align-items:center; justify-content:center;
  background:var(--paper);
  height:56px;
}
.partner-row img{ max-height:26px; max-width:120px; object-fit:contain; }

/* ---------- CTA band ---------- */
.cta-band{
  background: linear-gradient(120deg, var(--navy-900), var(--navy-950));
  color:var(--ice);
  border-radius:28px;
  padding:56px;
  display:flex; align-items:center; justify-content:space-between; gap:32px; flex-wrap:wrap;
}
.cta-band h3{ color:var(--white); font-size:28px; max-width:440px; }
.cta-band p{ color:#B9CCDA; margin-top:10px; max-width:420px; font-size:15px; }

/* ---------- Related modules (subpage footer nav) ---------- */
.related{ background:var(--paper); }
.related-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
@media(max-width:820px){ .related-grid{grid-template-columns:repeat(2,1fr);} }
@media(max-width:520px){ .related-grid{grid-template-columns:1fr;} }
.related-card{
  background:var(--white); border:1px solid var(--line); border-radius:14px;
  padding:20px; text-decoration:none; display:flex; align-items:center; gap:12px;
  transition:border-color .2s ease, transform .2s ease;
}
.related-card:hover{ border-color:var(--blue-300); transform:translateY(-2px); }
.related-card .module-icon{ width:36px; height:36px; margin-bottom:0; }
.related-card .module-icon svg{ width:18px; height:18px; }
.related-card span{ font-size:14.5px; font-weight:600; color:var(--navy-900); }

/* ---------- Footer ---------- */
footer{ background:var(--navy-950); color:#9FB4C4; padding:64px 0 32px; }
.footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:40px; padding-bottom:40px; border-bottom:1px solid rgba(154,201,232,0.14); }
@media(max-width:760px){ .footer-grid{grid-template-columns:1fr;} }
.footer-grid h5{ font-family:var(--mono); color:var(--blue-300); font-size:12px; letter-spacing:.1em; text-transform:uppercase; margin-bottom:16px; }
.footer-grid li{ margin-bottom:10px; font-size:14px; }
.footer-grid a{ text-decoration:none; }
.footer-grid a:hover{ color:var(--blue-300); }
.footer-grid .brand{ display:flex; flex-direction:column; align-items:flex-start; gap:0; }
.footer-grid .brand img{ height:34px; margin-bottom:14px; }
.footer-grid p{ font-size:13.5px; max-width:320px; color:#8298A8; }
.footer-bottom{ padding-top:26px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; font-size:12.5px; color:#6E8494; }

.reveal{ opacity:0; transform:translateY(18px); transition:opacity .7s ease, transform .7s ease; }
.reveal.is-visible{ opacity:1; transform:none; }

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  .orbit-spin, .hub-pulse{ animation:none !important; }
  .reveal{ opacity:1 !important; transform:none !important; transition:none !important; }
}

/* ---------- Benefits (module subpage) ---------- */
.benefits{ background:var(--ice); }
.benefits-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
@media(max-width:760px){ .benefits-grid{grid-template-columns:1fr;} }
.benefit-card{
  background:var(--white);
  border-radius:16px;
  padding:26px;
  border:1px solid var(--line);
}
.benefit-card .benefit-icon{
  width:38px; height:38px; border-radius:10px;
  background:var(--ice);
  display:flex; align-items:center; justify-content:center;
  margin-bottom:16px;
}
.benefit-card .benefit-icon svg{ width:19px; height:19px; stroke:var(--blue-600); }
.benefit-card p{ font-size:14.5px; color:var(--navy-900); font-weight:500; line-height:1.5; }

/* ---------- Contact form ---------- */
.contact-wrap{
  background:var(--white);
  border-radius:28px;
  padding:52px;
  display:grid;
  grid-template-columns:0.9fr 1.1fr;
  gap:48px;
  box-shadow:0 30px 80px rgba(18,40,63,0.10);
  border:1px solid var(--line);
}
@media(max-width:900px){ .contact-wrap{grid-template-columns:1fr; padding:32px;} }
.contact-intro h3{ font-size:26px; }
.contact-intro p{ margin-top:14px; color:var(--slate); font-size:15px; }
.contact-detail{ margin-top:28px; display:flex; flex-direction:column; gap:10px; }
.contact-detail a, .contact-detail span{
  font-size:14.5px; color:var(--navy-900); text-decoration:none; display:flex; gap:10px; align-items:center;
}
.contact-detail svg{ width:16px; height:16px; stroke:var(--blue-500); flex:none; }

.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:14px; }
@media(max-width:520px){ .form-row{grid-template-columns:1fr;} }
.field label{
  display:block; font-size:12.5px; font-weight:600; color:var(--navy-800);
  margin-bottom:6px; letter-spacing:.02em;
}
.field input[type="text"], .field input[type="email"], .field textarea{
  width:100%;
  border:1px solid var(--line);
  border-radius:10px;
  padding:11px 14px;
  font-family:var(--body);
  font-size:14.5px;
  color:var(--ink);
  background:var(--paper);
  transition:border-color .2s ease;
}
.field input:focus, .field textarea:focus{ outline:none; border-color:var(--blue-500); }
.field textarea{ min-height:90px; resize:vertical; }

.module-select{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:8px;
  margin-top:6px;
}
@media(max-width:520px){ .module-select{grid-template-columns:repeat(2,1fr);} }
.module-chip{
  position:relative;
}
.module-chip input{ position:absolute; opacity:0; inset:0; cursor:pointer; margin:0; width:100%; height:100%; }
.module-chip span{
  display:flex; align-items:center; gap:6px;
  border:1px solid var(--line);
  border-radius:10px;
  padding:8px 10px;
  font-size:12.5px;
  font-weight:600;
  color:var(--navy-800);
  background:var(--paper);
  transition: border-color .15s ease, background .15s ease, color .15s ease;
}
.module-chip input:checked + span{
  border-color:var(--blue-500);
  background:var(--blue-500);
  color:var(--navy-950);
}
.module-chip input:focus-visible + span{ outline:2px solid var(--blue-300); outline-offset:2px; }

.form-submit{
  margin-top:22px;
  display:flex;
  align-items:center;
  gap:16px;
  flex-wrap:wrap;
}
.form-note{ font-size:12.5px; color:var(--slate); }
.form-success{
  display:none;
  margin-top:16px;
  padding:14px 16px;
  border-radius:10px;
  background:var(--ice);
  color:var(--navy-900);
  font-size:13.5px;
}
.form-success.show{ display:block; }

/* ---------- Legal pages ---------- */
.legal-hero{
  background: linear-gradient(120deg, var(--navy-900), var(--navy-950));
  color:var(--ice);
  padding:160px 0 60px;
}
.legal-hero h1{ color:var(--white); font-size:clamp(28px,3.6vw,40px); }
.legal-hero p{ margin-top:14px; color:#B9CCDA; font-size:14.5px; }
.legal-body{ background:var(--white); padding:64px 0 100px; }
.legal-content{ max-width:760px; }
.legal-content h2{ font-size:20px; margin-top:38px; margin-bottom:12px; }
.legal-content h2:first-child{ margin-top:0; }
.legal-content p{ color:var(--slate); font-size:15px; margin-bottom:14px; }
.legal-content ul{ margin:0 0 14px 0; }
.legal-content li{
  color:var(--slate); font-size:15px; padding-left:18px; position:relative; margin-bottom:8px;
}
.legal-content li::before{ content:"–"; position:absolute; left:0; color:var(--blue-500); }
.legal-content table{ width:100%; border-collapse:collapse; margin:16px 0 24px; font-size:13.5px; }
.legal-content th, .legal-content td{ text-align:left; padding:10px 12px; border:1px solid var(--line); color:var(--slate); }
.legal-content th{ background:var(--paper); color:var(--navy-900); font-family:var(--mono); font-size:11.5px; letter-spacing:.05em; text-transform:uppercase; }
.legal-content strong{ color:var(--navy-900); }
.legal-note{
  margin-top:40px; padding:16px 18px; border-radius:12px; background:var(--ice); color:var(--navy-800); font-size:13px;
}

/* ---------- Footer legal row ---------- */
.footer-legal{
  display:flex; flex-wrap:wrap; gap:18px; margin-top:14px;
}
.footer-legal a, .footer-legal button{
  background:none; border:none; padding:0; cursor:pointer;
  font-size:12.5px; color:#8298A8; text-decoration:none; font-family:var(--body);
}
.footer-legal a:hover, .footer-legal button:hover{ color:var(--blue-300); }

/* ---------- Cookie banner ---------- */
#cookieBanner{
  position:fixed;
  left:20px; right:20px; bottom:20px;
  max-width:560px;
  margin:0 auto;
  background:var(--navy-950);
  color:var(--ice);
  border-radius:18px;
  padding:24px 26px;
  box-shadow:0 30px 70px rgba(4,12,22,0.4);
  z-index:1000;
  display:none;
  border:1px solid rgba(154,201,232,0.2);
}
#cookieBanner.show{ display:block; }
#cookieBanner p{ font-size:13.5px; color:#C7D8E5; margin-bottom:16px; }
#cookieBanner .cookie-actions{ display:flex; gap:10px; flex-wrap:wrap; }
#cookieBanner a{ color:var(--blue-300); text-decoration:underline; }

.cookie-modal-overlay{
  position:fixed; inset:0; background:rgba(10,26,44,0.6);
  z-index:1001; display:none; align-items:center; justify-content:center; padding:20px;
}
.cookie-modal-overlay.show{ display:flex; }
.cookie-modal{
  background:var(--white); border-radius:20px; padding:32px; max-width:520px; width:100%;
  max-height:80vh; overflow-y:auto;
}
.cookie-modal h3{ font-size:20px; margin-bottom:16px; }
.cookie-cat{ padding:16px 0; border-top:1px solid var(--line); }
.cookie-cat:first-of-type{ border-top:none; }
.cookie-cat-head{ display:flex; align-items:center; justify-content:space-between; gap:12px; }
.cookie-cat-head strong{ font-size:14.5px; color:var(--navy-900); }
.cookie-cat p{ font-size:13px; color:var(--slate); margin-top:6px; }
.switch{ position:relative; width:40px; height:22px; flex:none; }
.switch input{ opacity:0; width:100%; height:100%; position:absolute; margin:0; cursor:pointer; }
.switch .track{
  position:absolute; inset:0; background:var(--line); border-radius:20px; transition:background .2s ease;
}
.switch .track::after{
  content:""; position:absolute; top:2px; left:2px; width:18px; height:18px; border-radius:50%;
  background:var(--white); transition:transform .2s ease; box-shadow:0 1px 3px rgba(0,0,0,0.2);
}
.switch input:checked + .track{ background:var(--blue-500); }
.switch input:checked + .track::after{ transform:translateX(18px); }
.switch input:disabled + .track{ opacity:0.5; }
.cookie-modal-actions{ display:flex; gap:10px; margin-top:24px; flex-wrap:wrap; }

/* ---------- Audience (who it's for) ---------- */
.audience{ background:var(--paper); }
.audience-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
@media(max-width:900px){ .audience-grid{grid-template-columns:repeat(2,1fr);} }
@media(max-width:560px){ .audience-grid{grid-template-columns:1fr;} }
.audience-card{
  background:var(--white);
  border:1px solid var(--line);
  border-radius:16px;
  padding:24px;
}
.audience-card .role-mark{
  width:34px; height:34px; border-radius:10px;
  background:var(--ice);
  display:flex; align-items:center; justify-content:center;
  margin-bottom:16px;
  font-family:var(--mono); font-size:12px; font-weight:600; color:var(--blue-600);
}
.audience-card h4{ font-size:15.5px; color:var(--navy-900); }
.audience-card p{ margin-top:8px; font-size:13.5px; color:var(--slate); line-height:1.5; }

/* ---------- Company (Athenea Solutions) ---------- */
.company-inner{ max-width:760px; }
.company-inner p{ color:var(--slate); font-size:15.5px; margin-bottom:16px; line-height:1.6; }
.company-tags{ display:flex; flex-wrap:wrap; gap:10px; margin:22px 0 28px; }
.company-tags span{
  border:1px solid var(--line);
  background:var(--white);
  border-radius:20px;
  padding:8px 16px;
  font-size:13px;
  color:var(--navy-800);
  font-weight:500;
}
.company-link{
  display:inline-flex; align-items:center; gap:8px;
  font-size:14.5px; font-weight:600; color:var(--blue-600); text-decoration:none;
}
.company-link svg{ width:15px; height:15px; stroke:var(--blue-600); }

/* ---------- Nav dropdown (Moduls mega-menu) ---------- */
li.has-dropdown{ position:relative; }
.nav-dropdown{
  position:absolute;
  top:100%; left:50%;
  transform:translateX(-50%) translateY(8px);
  width:520px;
  background:var(--white);
  border-radius:16px;
  box-shadow:0 30px 60px rgba(10,26,44,0.28);
  padding:14px;
  opacity:0;
  pointer-events:none;
  transition:opacity .18s ease, transform .18s ease;
  z-index:200;
}
li.has-dropdown:hover .nav-dropdown,
li.has-dropdown:focus-within .nav-dropdown{
  opacity:1;
  pointer-events:auto;
  transform:translateX(-50%) translateY(0);
}
.nav-dropdown-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:4px;
}
nav.mainnav .nav-dropdown-grid a{
  display:flex; align-items:center; gap:10px;
  padding:10px 12px;
  border-radius:10px;
  text-decoration:none;
  color:var(--navy-900);
  font-size:13.5px;
  font-weight:500;
  transition:background .15s ease;
}
.nav-dropdown-grid a:hover{ background:var(--paper); }
.nd-icon{
  width:28px; height:28px; border-radius:8px;
  background:var(--ice);
  display:flex; align-items:center; justify-content:center;
  flex:none;
}
.nd-icon svg{ width:15px; height:15px; stroke:var(--blue-600); }
@media(max-width:1000px){ .nav-dropdown{ display:none; } }
