/*
 * Public site polish (home, login and other pages that use layouts/home/head).
 * Brand: navy #223a66, crimson #e12454 (see /aset/css/style.css).
 */
:root {
  --edoch-navy: #223a66;
  --edoch-navy-deep: #14233f;
  --edoch-crimson: #e12454;
  --edoch-crimson-dark: #c91f48;
  --edoch-sky: #3d7bff;
  --edoch-ink: #1d2a44;
  --edoch-muted: #5f7390;
  --edoch-surface: #f5f7fc;
  --edoch-glow: 0 10px 30px -6px rgba(225, 36, 84, 0.55), 0 0 0 1px rgba(225, 36, 84, 0.15);
  --edoch-glow-strong: 0 14px 40px -6px rgba(225, 36, 84, 0.7), 0 0 24px rgba(225, 36, 84, 0.35);
  --edoch-ease: cubic-bezier(.2, .8, .2, 1);
}

html, body { max-width: 100%; overflow-x: hidden; }
@supports (overflow: clip) { html, body { overflow-x: clip; } }
img { max-width: 100%; height: auto; }

/* Keyboard focus that is easy to see on any background */
a:focus-visible, button:focus-visible, .btn:focus-visible, input:focus-visible {
  outline: 3px solid rgba(61, 123, 255, 0.6);
  outline-offset: 2px;
}

/* ---------- Glowing button ---------- */
.btn-glow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  min-height: 48px;
  padding: .75rem 1.6rem;
  border: 0;
  border-radius: 999px;
  background: linear-gradient(135deg, #ff4d79 0%, var(--edoch-crimson) 45%, #b8174a 100%);
  background-size: 160% 160%;
  background-position: 0% 50%;
  color: #fff !important;
  font-family: "Exo", sans-serif;
  font-weight: 700;
  letter-spacing: .3px;
  text-decoration: none !important;
  box-shadow: var(--edoch-glow);
  transition: transform .25s var(--edoch-ease), box-shadow .25s var(--edoch-ease), background-position .4s ease;
}
.btn-glow:hover, .btn-glow:focus-visible {
  color: #fff;
  transform: translateY(-2px);
  background-position: 100% 50%;
  box-shadow: var(--edoch-glow-strong);
}
.btn-glow:active { transform: translateY(0); box-shadow: var(--edoch-glow); }
.btn-glow i { margin: 0 !important; }

.btn-ghost {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  min-height: 48px;
  padding: .75rem 1.5rem;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.35);
  background: rgba(255, 255, 255, 0.08);
  color: #fff !important;
  font-family: "Exo", sans-serif;
  font-weight: 600;
  text-decoration: none !important;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  transition: background .25s ease, border-color .25s ease, transform .25s var(--edoch-ease);
}
.btn-ghost:hover, .btn-ghost:focus-visible {
  background: rgba(255, 255, 255, 0.18);
  border-color: rgba(255, 255, 255, 0.6);
  transform: translateY(-2px);
}
.btn-ghost i { margin: 0 !important; }

/* ---------- Header ---------- */
.header-top-bar { padding: 2px 0; font-size: 13px; }
.header-top-bar .top-bar-info { display: block; }
.header-top-bar .top-bar-info li { white-space: normal; }
.header-top-bar .top-right-bar a { color: #fff; display: inline-flex; align-items: center; gap: .35rem; min-height: 44px; }
.header-top-bar .top-right-bar .h4 { font-size: 1.05rem; margin: 0; color: #fff; }

.navigation {
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: saturate(160%) blur(10px);
  -webkit-backdrop-filter: saturate(160%) blur(10px);
  box-shadow: 0 1px 0 rgba(34, 58, 102, 0.08), 0 8px 24px -16px rgba(34, 58, 102, 0.35);
  position: relative;
  z-index: 1030;
  padding: 10px 0;
}
.navigation .navbar-brand { margin-top: 0; padding: 0; }
.navigation .navbar-brand img { max-height: 44px; width: auto; }

.navigation .navbar-toggler {
  width: 46px;
  height: 46px;
  padding: 0;
  border: 1px solid rgba(34, 58, 102, 0.15);
  border-radius: 12px;
  color: var(--edoch-navy);
  font-size: 22px;
  transition: background .2s ease, box-shadow .2s ease;
}
.navigation .navbar-toggler:hover,
.navigation .navbar-toggler:focus { background: var(--edoch-surface); box-shadow: 0 0 0 4px rgba(225, 36, 84, 0.12); outline: 0; }

#navbarmain .nav-link {
  min-height: 44px;
  display: flex;
  align-items: center;
  border-radius: 999px;
}
#navbarmain .nav-item:not(:last-child) .nav-link:hover { color: var(--edoch-crimson); }
#navbarmain .nav-link.nav-cta {
  padding: .6rem 1.4rem;
  margin-left: .5rem;
  color: #fff;
}
#navbarmain .nav-link.nav-cta i { margin-left: 0; margin-right: 0; }

@media (max-width: 991.98px) {
  .navigation .navbar-toggler { display: inline-flex; align-items: center; justify-content: center; }
  /* Bootstrap drops the container gutter inside a collapsed navbar */
  .navigation > .container { padding-left: 16px; padding-right: 16px; }
  #navbarmain .navbar-nav { padding: 12px 0 6px; gap: 6px; }
  #navbarmain .nav-link { padding: 10px 14px; }
  #navbarmain .nav-link.nav-cta { margin: 6px 0 0; width: 100%; }
}

@media (max-width: 575.98px) {
  .header-top-bar .top-bar-address { display: none !important; }
  .header-top-bar .top-right-bar { margin-top: 0 !important; text-align: center; }
  .header-top-bar .top-bar-call-label { font-weight: 500; letter-spacing: 0; opacity: .85; }
  .navigation .navbar-brand img { max-height: 38px; }
}

/* ---------- Footer ---------- */
.footer { padding: 64px 0 24px; }
.footer .footer-menu a,
.footer .footer-contact-block a { display: inline-flex; align-items: center; min-height: 44px; transition: color .2s ease; }
.footer .footer-menu a:hover,
.footer .footer-contact-block a:hover { color: var(--edoch-crimson); }
.footer .footer-socials li a { transition: transform .2s var(--edoch-ease), background .2s ease; }
.footer .footer-socials li a:hover { transform: translateY(-2px); }
.footer .footer-contact-block h4 { font-size: 1.15rem; word-break: break-word; }

@media (max-width: 575.98px) {
  .footer { padding: 48px 0 16px; }
  .footer .subscribe .form-control { height: 54px; font-size: 16px; padding-right: 130px; }
  .footer .subscribe .btn { top: 5px; right: 5px; padding: 12px 18px; }
  .backtop { right: 16px; bottom: 16px; width: 48px; height: 48px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
}
