/* Final polish: first-visit loader, high-contrast navigation and icon system */
.site-loader {
  position: fixed;
  inset: 0;
  z-index: 2000;
  display: none;
  place-content: center;
  justify-items: center;
  gap: 18px;
  background: radial-gradient(circle at 50% 40%, #123b65 0%, var(--navy) 46%, #03152a 100%);
  color: #fff;
  opacity: 1;
  visibility: visible;
  transition: opacity .55s ease, visibility .55s ease;
}

.first-visit .site-loader { display: grid; }
.first-visit body { overflow: hidden; }
.site-loader.is-leaving { opacity: 0; visibility: hidden; pointer-events: none; }

.loader-brand {
  position: relative;
  width: 138px;
  height: 138px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 22px 70px rgba(0, 0, 0, .28);
}

.loader-brand img { width: 112px; height: 112px; object-fit: contain; border-radius: 50%; }
.loader-orbit { position: absolute; inset: -12px; border: 1px solid rgba(216, 168, 74, .35); border-radius: 50%; animation: loader-spin 2.6s linear infinite; }
.loader-orbit::after { content: ""; position: absolute; top: 8px; right: 17px; width: 9px; height: 9px; border-radius: 50%; background: var(--gold-2); box-shadow: 0 0 18px rgba(216, 168, 74, .8); }
.site-loader p { margin: 4px 0 0; font-family: "DM Serif Display", Georgia, serif; font-size: 21px; letter-spacing: .015em; }
.loader-line { width: 160px; height: 2px; overflow: hidden; background: rgba(255, 255, 255, .14); }
.loader-line span { display: block; width: 45%; height: 100%; background: linear-gradient(90deg, transparent, var(--gold-2), transparent); animation: loader-progress 1.25s var(--ease) infinite; }

@keyframes loader-spin { to { transform: rotate(360deg); } }
@keyframes loader-progress { from { transform: translateX(-110%); } to { transform: translateX(250%); } }

.site-header {
  color: var(--navy);
  background: linear-gradient(180deg, rgba(251, 250, 247, .98), rgba(251, 250, 247, .78));
  backdrop-filter: blur(10px);
  box-shadow: 0 1px 0 rgba(7, 31, 61, .07);
}

.site-header.scrolled { background: rgba(251, 250, 247, .96); box-shadow: 0 10px 34px rgba(7, 31, 61, .09); }
.header-inner { min-height: 86px; }
.brand { gap: 11px; min-width: 0; }
.brand-mark {
  width: 66px;
  height: 58px;
  overflow: visible;
  flex: 0 0 auto;
  padding: 3px;
  display: grid;
  place-items: center;
  background: #fff;
  border: 1px solid rgba(7, 31, 61, .09);
  border-radius: 16px;
  box-shadow: 0 8px 24px rgba(7, 31, 61, .1);
}

.brand-mark img { width: 100%; height: 100%; max-width: 100%; object-fit: contain; object-position: center; border-radius: 13px; }
.brand-wordmark { color: var(--navy); }
.brand-wordmark strong { font-size: 15px; font-weight: 400; }
.brand-wordmark small { color: var(--gold); font-weight: 700; }
.main-nav { color: var(--navy); }
.nav-cta { color: #fff; }
.btn i, .text-link i, .mobile-sticky-cta i { font-size: 1.05em; line-height: 1; }
.experience-card:nth-child(3) img { object-position: 62% center; }
.footer-col a { display: flex; align-items: center; gap: 9px; max-width: 100%; }
.footer-col a span { overflow-wrap: anywhere; }
.footer-col a i { width: 15px; color: #e2b65e; font-size: 14px; }
.brand-footer .brand-wordmark { color: #fff; }
.brand-footer .brand-wordmark small { color: #e2b65e; }
.whatsapp-float { font-size: 27px; transition: transform .2s var(--ease), box-shadow .2s ease; }
.whatsapp-float:hover { transform: translateY(-3px) scale(1.03); box-shadow: 0 20px 42px rgba(13, 81, 41, .36); }
:focus-visible { outline: 3px solid rgba(216, 168, 74, .85); outline-offset: 3px; }

@media (max-width: 1040px) {
  .header-inner { min-height: 78px; }
  .nav-toggle { display: block; margin-left: auto; }
  .main-nav { display: none; position: absolute; top: 78px; left: 24px; right: 24px; padding: 16px; background: rgba(251, 250, 247, .98); color: var(--ink); flex-direction: column; align-items: stretch; gap: 0; border: 1px solid rgba(7, 31, 61, .08); border-radius: 0 0 16px 16px; box-shadow: var(--shadow); }
  .main-nav.open { display: flex; }
  .main-nav > a:not(.nav-cta) { display: block; padding: 13px 3px; border-bottom: 1px solid var(--line); }
  .nav-cta { margin-top: 11px; text-align: center; }
}

@media (max-width: 760px) {
  .header-inner { min-height: 72px; }
  .brand { gap: 8px; }
  .brand-mark { width: 54px; height: 48px; border-radius: 13px; padding: 2px; }
  .brand-mark img { width: 100%; height: 100%; border-radius: 11px; }
  .brand-wordmark strong { font-size: 12px; }
  .brand-wordmark small { font-size: 7px; margin-top: 4px; }
  .main-nav { top: 72px; left: 15px; right: 15px; }
  .site-header:not(.scrolled) .main-nav { background: rgba(251, 250, 247, .98); color: var(--ink); }
  .hero-inner { padding-top: 120px; }
  .footer .brand-mark { width: 60px; height: 54px; }
  .mobile-sticky-cta { bottom: max(10px, env(safe-area-inset-bottom)); left: max(10px, env(safe-area-inset-left)); right: max(10px, env(safe-area-inset-right)); }
}

@media (max-width: 380px) {
  .brand-wordmark strong { font-size: 11px; }
  .brand-wordmark small { letter-spacing: .28em; }
  .brand-mark { width: 50px; height: 45px; }
  .nav-toggle { width: 40px; }
}

@media (prefers-reduced-motion: reduce) {
  .loader-orbit, .loader-line span { animation: none; }
  .site-loader { transition: none; }
}
