

.preloader{
  position:fixed; inset:0; z-index:9999;
  display:grid; place-content:center; justify-items:center; gap:var(--space-16);
  background:var(--brand-carbon);
  transition:opacity .5s var(--ease), visibility .5s;
}
.preloader.is-done{ opacity:0; visibility:hidden; }
@keyframes pulse{ 0%,100%{ opacity:.55; } 50%{ opacity:1; } }
.preloader__logo{
  display:block; width:auto; height:clamp(72px, 16vw, 104px);
  background:#fff; border-radius:12px; padding:var(--space-16) var(--space-20);
  animation:pulse 1.4s infinite var(--ease);
}

.header{
  position:sticky; top:0; z-index:900;
  background:var(--card);
  transition:box-shadow var(--dur) var(--ease);
}
.header.is-stuck{ box-shadow:var(--shadow-nav); }
.header__inner{
  display:flex; align-items:center; justify-content:space-between; gap:var(--space-24);
  min-height:var(--header-h);
}

.logo{ display:inline-flex; align-items:center; flex-shrink:0; }
.logo__img{
  display:block; box-sizing:content-box; width:auto; height:72px;
  background:#fff; border-radius:8px; padding:4px var(--space-8);
}
.logo--light .logo__img{ height:74px; padding:var(--space-8) var(--space-12); }

.nav__list{ display:flex; align-items:center; gap:var(--space-4); }
.nav__link{
  display:inline-flex; align-items:center; gap:6px;
  font-family:var(--font-body); font-size:15px; font-weight:var(--fw-bold);
  letter-spacing:-0.002em; color:var(--heading);
  padding:var(--space-8) var(--space-12); border-radius:var(--radius-button);
  white-space:nowrap;
  transition:color var(--dur) var(--ease), background var(--dur) var(--ease);
}
.nav__link .ico{ font-size:9px; opacity:.55; transition:transform var(--dur) var(--ease); }
.nav__link:hover{ color:var(--action-text); background:var(--wash); }
.nav__link.is-active{ color:var(--action-text); }

.nav__item--has-sub{ position:relative; }
.nav__sub{
  position:absolute; top:calc(100% + 8px); left:0;
  min-width:250px; padding:var(--space-8);
  background:var(--card); border:1px solid var(--border);
  border-radius:var(--radius-card);
  box-shadow:var(--shadow-nav-up);
  opacity:0; visibility:hidden; transform:translateY(8px);
  transition:opacity var(--dur) var(--ease), transform var(--dur) var(--ease), visibility var(--dur);
}
.nav__item--has-sub:hover .nav__sub{ opacity:1; visibility:visible; transform:translateY(0); }
.nav__item--has-sub:hover .nav__link .ico{ transform:rotate(180deg); }
.nav__sub a{
  display:block; padding:10px var(--space-12); border-radius:var(--radius-button);
  font-size:15px; color:var(--heading);
  transition:background var(--dur) var(--ease), color var(--dur) var(--ease);
}
.nav__sub a:hover{ background:var(--wash); color:var(--action-text); }

.nav__close, .nav__mobile-cta{ display:none; }

.header__actions{ display:flex; align-items:center; gap:var(--space-16); }
.header__call{ display:flex; align-items:center; gap:10px; }
.header__call-icon{
  width:36px; height:36px; border-radius:var(--radius-button);
  display:grid; place-items:center;
  background:var(--wash); color:var(--action-text); font-size:14px;
  transition:background var(--dur) var(--ease), color var(--dur) var(--ease);
}
.header__call:hover .header__call-icon{ background:var(--brand-green); color:#fff; }
.header__call-text{ display:flex; flex-direction:column; line-height:1.25; }
.header__call-text small{ font-size:12px; color:var(--text-muted); white-space:nowrap; }
.header__call-text strong{
  font-family:var(--font-body); font-size:15px; font-weight:var(--fw-bold);
  color:var(--heading); white-space:nowrap;
}

.prefs{ display:flex; align-items:center; gap:var(--space-4); }
.prefs__btn{
  width:36px; height:36px; border-radius:var(--radius-round);
  display:grid; place-items:center;
  background:transparent; color:var(--brand-abyss);
  font-size:14px;
  transition:background var(--dur) var(--ease), color var(--dur) var(--ease);
}
:root[data-theme="dark"] .prefs__btn,
:root:not([data-theme="light"]) .prefs__btn{ color:var(--heading); }
.prefs__btn:hover{ background:var(--wash); color:var(--action-text); }
.prefs__btn--lang{ font-family:var(--font-body); font-weight:var(--fw-bold); font-size:13px; }

.nav__toggle{
  display:none; width:40px; height:40px; border-radius:var(--radius-button);
  background:var(--wash); place-items:center; gap:5px; flex-direction:column;
  justify-content:center; align-items:center; padding:0;
}
.nav__toggle span{ display:block; width:18px; height:2px; background:var(--heading); border-radius:2px; }

.footer{ background:var(--brand-carbon); color:rgba(255,255,255,.65); }
.footer__grid{
  display:grid; grid-template-columns:1.6fr 1fr 1fr 1.4fr; gap:var(--space-40);
  padding-block:var(--space-64) var(--space-48);
}
.footer__about{ font-size:15px; line-height:1.56; margin:var(--space-20) 0; max-width:330px; }
.footer__social{ display:flex; gap:var(--space-8); }
.footer__social a{
  width:36px; height:36px; border-radius:var(--radius-button); display:grid; place-items:center;
  background:rgba(255,255,255,.08); color:#fff;
  transition:background var(--dur) var(--ease);
}
.footer__social a:hover{ background:var(--brand-vivid); color:var(--ink-deep); }
.footer__title{
  color:#fff; font-family:var(--font-body);
  font-size:var(--text-eyebrow); font-weight:var(--fw-bold);
  letter-spacing:var(--tracking-eyebrow); text-transform:uppercase;
  margin-bottom:var(--space-20);
}
.footer__links li, .footer__contact li{ margin-bottom:10px; font-size:15px; }
.footer__links a:hover{ color:var(--brand-glow); }
.footer__contact li{ display:flex; gap:10px; align-items:flex-start; word-break:break-word; }
.footer__contact .ico{ color:var(--brand-glow); margin-top:5px; font-size:12px; }
.footer__contact a:hover{ color:var(--brand-glow); }

.footer__bottom{ border-top:1px solid rgba(255,255,255,.1); }
.footer__bottom-inner{
  display:flex; align-items:center; justify-content:center;
  padding-block:var(--space-24); text-align:center; font-size:var(--text-caption);
}
.footer__bottom p{ margin:0; }
