:root {
  --blue:#0a3f95;
  --blue-dark:#082a74;
  --yellow:#f3cf12;
  --bg:#f4f7fc;
  --white:#ffffff;
  --text:#163768;
  --muted:#5f779d;
  --border:rgba(10,63,149,.12);
  --shadow:0 18px 50px rgba(10,63,149,.10);
  --radius:24px;
  --max:1180px
}
* {
  box-sizing:border-box
}
html {
  scroll-behavior:smooth
}
body {
  margin:0;
  font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;
  color:var(--text);
  background:radial-gradient(circle at top right, rgba(243,207,18,.18), transparent 22%),radial-gradient(circle at top left, rgba(10,63,149,.08), transparent 28%),linear-gradient(180deg,#f9fbff 0%,#f4f7fc 100%);
  line-height:1.65
}
a {
  text-decoration:none;
  color:inherit
}
img {
  max-width:100%;
  display:block
}
.container {
  width:min(var(--max),calc(100% - 2rem));
  margin:0 auto
}
.nav {
  position:sticky;
  top:0;
  z-index:50;
  background:rgba(255,255,255,.88);
  backdrop-filter:blur(12px);
  border-bottom:1px solid rgba(10,63,149,.08)
}
.nav-inner {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:1rem;
  padding:1rem 0
}
.brand img {
  width:190px;
  max-width:48vw
}
.nav-links {
  display:flex;
  gap:1.1rem;
  align-items:center;
  flex-wrap:wrap
}
.nav-links a {
  font-weight:700;
  color:var(--muted)
}
.nav-links a:hover {
  color:var(--blue)
}
.btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:.95rem 1.35rem;
  border-radius:999px;
  font-weight:800;
  border:none;
  cursor:pointer;
  transition:.2s ease;
  box-shadow:var(--shadow)
}
.btn:hover {
  transform:translateY(-2px)
}
.btn-primary {
  background:linear-gradient(135deg,#ffe772,var(--yellow));
  color:var(--blue-dark)
}
.btn-secondary {
  background:var(--white);
  color:var(--blue);
  border:1px solid var(--border)
}
.btn-ghost {
  background:rgba(10,63,149,.08);
  color:var(--blue);
  border:1px solid var(--border);
  box-shadow:none
}
.hero {
  padding:4.5rem 0 3rem
}
.hero-grid,.about-grid,.contact-grid,.cta-grid {
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:1.2rem;
  align-items:center
}
.eyebrow {
  display:inline-block;
  padding:.45rem .85rem;
  border-radius:999px;
  background:rgba(10,63,149,.08);
  border:1px solid rgba(10,63,149,.12);
  color:var(--blue);
  font-weight:800;
  font-size:.92rem;
  margin-bottom:1rem
}
h1,h2,h3 {
  line-height:1.12;
  margin:0;
  color:var(--blue-dark)
}
h1 {
  font-size:clamp(2.4rem,5vw,4.5rem);
  margin-bottom:1rem
}
h2 {
  font-size:clamp(1.9rem,3vw,3rem);
  margin-bottom:1rem
}
h3 {
  font-size:1.2rem;
  margin-bottom:.6rem
}
.lead,.section-head p,.card p,.faq-answer,.muted,.legal-section p,.legal-section li {
  color:var(--muted)
}
.lead {
  font-size:1.08rem;
  max-width:62ch;
  margin-bottom:1.4rem
}
.hero-actions {
  display:flex;
  gap:.8rem;
  flex-wrap:wrap;
  margin-bottom:1.4rem
}
.panel,.card,.stat,details,.legal-section {
  background:var(--white);
  border:1px solid var(--border);
  border-radius:var(--radius);
  box-shadow:var(--shadow)
}
.panel {
  padding:1rem;
  background:linear-gradient(180deg,#fff 0%,#f7faff 100%)
}
.panel-logo {
  padding:1rem;
  border-radius:20px;
  background:#f1f5fd;
  border:1px solid var(--border);
  margin-bottom:1rem
}
.mini-grid {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:.9rem
}
.mini {
  padding:1rem;
  border-radius:18px;
  background:#fff;
  border:1px solid var(--border)
}
.mini strong {
  display:block;
  font-size:1.2rem;
  color:var(--blue-dark);
  margin:.2rem 0
}
.tags {
  display:flex;
  flex-wrap:wrap;
  gap:.6rem;
  margin-top:1rem
}
.tags span {
  padding:.45rem .75rem;
  border-radius:999px;
  background:rgba(10,63,149,.08);
  color:var(--blue);
  font-size:.85rem;
  font-weight:700
}
.stats {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:.9rem
}
.stat {
  padding:1rem
}
.stat strong {
  display:block;
  font-size:1.35rem;
  color:var(--blue-dark);
  margin-bottom:.2rem
}
.section {
  padding:2.6rem 0
}
.section-alt {
  background:rgba(255,255,255,.35);
  border-top:1px solid rgba(10,63,149,.06);
  border-bottom:1px solid rgba(10,63,149,.06)
}
.section-head {
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:1rem;
  margin-bottom:1.4rem
}
.section-head p {
  margin:0;
  max-width:60ch
}
.grid-4,.footer-grid,.legal-grid {
  display:grid;
  gap:1rem
}
.grid-4 {
  grid-template-columns:repeat(4,1fr)
}
.footer-grid {
  grid-template-columns:1.2fr .8fr .8fr 1fr
}
.legal-grid {
  grid-template-columns:repeat(3,1fr)
}
.card {
  padding:1.35rem
}
.icon {
  width:52px;
  height:52px;
  border-radius:16px;
  display:grid;
  place-items:center;
  background:linear-gradient(135deg,rgba(10,63,149,.12),rgba(243,207,18,.22));
  font-size:1.35rem;
  color:var(--blue-dark);
  margin-bottom:1rem
}
.highlight {
  background:linear-gradient(135deg,var(--blue),var(--blue-dark));
  color:#fff;
  padding:1.6rem;
  border-radius:28px;
  box-shadow:0 22px 55px rgba(8,42,116,.22)
}
.highlight h2,.highlight h3,.highlight p,.highlight li {
  color:#fff
}
ul.clean {
  list-style:none;
  padding:0;
  margin:1rem 0 0;
  display:grid;
  gap:.75rem
}
ul.clean li {
  display:flex;
  gap:.7rem;
  align-items:flex-start
}
.check {
  width:22px;
  height:22px;
  flex:0 0 22px;
  border-radius:999px;
  display:grid;
  place-items:center;
  background:linear-gradient(135deg,#ffe772,var(--yellow));
  color:var(--blue-dark);
  font-size:.75rem;
  font-weight:900;
  margin-top:.15rem
}
details {
  padding:1rem 1.1rem
}
details+details {
  margin-top:.8rem
}
summary {
  cursor:pointer;
  font-weight:800;
  color:var(--blue-dark);
  list-style:none
}
summary::-webkit-details-marker {
  display:none
}
.faq-answer {
  padding-top:.8rem
}
form {
  display:grid;
  gap:.9rem
}
.form-grid {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:.9rem
}
input,textarea {
  width:100%;
  padding:1rem;
  border-radius:16px;
  border:1px solid var(--border);
  background:#fff;
  font:inherit;
  color:var(--text);
  outline:none
}
textarea {
  min-height:140px;
  resize:vertical
}
.socials {
  display:flex;
  gap:.65rem;
  flex-wrap:wrap;
  margin-top:1rem
}
.socials a {
  padding:.6rem .9rem;
  border-radius:999px;
  background:rgba(10,63,149,.08);
  border:1px solid var(--border);
  font-weight:700;
  color:var(--blue)
}
.lang-switcher {
  position:relative;
  margin-left:.25rem
}
.lang-dropdown {
  position:relative
}
.lang-toggle {
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:.6rem;
  min-width:92px;
  padding:.95rem 1.1rem;
  border-radius:999px;
  font-weight:800;
  border:1px solid var(--border);
  cursor:pointer;
  transition:.2s ease;
  box-shadow:var(--shadow);
  background:var(--white);
  color:var(--blue)
}
.lang-toggle:hover {
  transform:translateY(-2px)
}
.lang-toggle .caret {
  width:0;
  height:0;
  border-left:5px solid transparent;
  border-right:5px solid transparent;
  border-top:6px solid currentColor;
  transition:transform .2s ease
}
.lang-dropdown.open .lang-toggle .caret {
  transform:rotate(180deg)
}
.lang-menu {
  position:absolute;
  top:calc(100% + .45rem);
  right:0;
  min-width:140px;
  background:var(--white);
  border:1px solid var(--border);
  border-radius:22px;
  box-shadow:var(--shadow);
  padding:.45rem;
  display:none;
  z-index:60
}
.lang-dropdown.open .lang-menu {
  display:block
}
.lang-option {
  display:flex;
  align-items:center;
  gap:.7rem;
  width:100%;
  padding:.8rem .9rem;
  border:none;
  background:transparent;
  border-radius:16px;
  font:inherit;
  font-weight:800;
  color:var(--blue);
  cursor:pointer;
  text-align:left
}
.lang-option:hover,.lang-option.active {
  background:rgba(10,63,149,.08)
}
.lang-flag {
  font-size:1.1rem
}
.legal-section {
  padding:1.35rem;
  height:100%
}
.legal-section h3 {
  margin-bottom:.85rem
}
.legal-section h4 {
  margin:1rem 0 .45rem;
  color:var(--blue-dark)
}
.legal-section ul {
  padding-left:1.15rem;
  margin:.4rem 0 0
}
.legal-anchor-links {
  display:flex;
  gap:.75rem;
  flex-wrap:wrap;
  margin-top:1rem
}
.cookie-banner {
  position:fixed;
  left:1rem;
  right:1rem;
  bottom:1rem;
  z-index:100;
  background:rgba(255,255,255,.96);
  border:1px solid var(--border);
  box-shadow:0 20px 60px rgba(8,42,116,.20);
  border-radius:22px;
  padding:1rem;
  display:none
}
.cookie-banner.show {
  display:block
}
.cookie-banner-inner {
  display:flex;
  justify-content:space-between;
  gap:1rem;
  align-items:center
}
.cookie-actions {
  display:flex;
  gap:.7rem;
  flex-wrap:wrap
}
footer {
  margin-top:2rem;
  padding:2rem 0 3rem;
  background:rgba(255,255,255,.45);
  border-top:1px solid rgba(10,63,149,.08)
}
.footer-note {
  margin-top:1.2rem;
  padding-top:1rem;
  border-top:1px solid rgba(10,63,149,.08);
  display:flex;
  justify-content:space-between;
  gap:1rem;
  flex-wrap:wrap;
  color:var(--muted)
}
.reveal {
  opacity:0;
  transform:translateY(18px);
  transition:opacity .6s ease,transform .6s ease
}
.reveal.visible {
  opacity:1;
  transform:translateY(0)
}
@media (max-width:1050px) {
  .hero-grid,.about-grid,.contact-grid,.cta-grid,.grid-4,.footer-grid,.legal-grid {
    grid-template-columns:repeat(2,1fr)
  }
}
@media (max-width:780px) {
  .nav-inner,.section-head,.cookie-banner-inner {
    flex-direction:column;
    align-items:flex-start
  }
  .hero-grid,.about-grid,.contact-grid,.cta-grid,.grid-4,.footer-grid,.stats,.mini-grid,.form-grid,.legal-grid {
    grid-template-columns:1fr
  }
  .hero {
    padding-top:3.4rem
  }
  .brand img {
    width:160px
  }
  .nav-links {
    width:100%
  }
  .lang-switcher {
    margin-left:0
  }
  .cookie-actions {
    width:100%
  }
}
