/*
 * INOVIS public experience
 *
 * This layer is loaded after the vendor themes and page-level CSS. It gives
 * every public, authentication and legacy marketing template the same visual
 * vocabulary as the authenticated shareholder workspace without requiring
 * presentation markup to be copied into each page.
 */

:root {
  --inovis-violet: #8f43d6;
  --inovis-violet-bright: #b469ff;
  --inovis-violet-deep: #5f248f;
  --inovis-violet-soft: #f6effe;
  --inovis-night: #17151b;
  --inovis-night-soft: #2b2034;
  --inovis-ink: #201c25;
  --inovis-text: #4d4753;
  --inovis-muted: #756e7d;
  --inovis-line: #e9e4ed;
  --inovis-canvas: #faf8fc;
  --inovis-surface: #fff;
  --inovis-radius-sm: 10px;
  --inovis-radius: 16px;
  --inovis-radius-lg: 22px;
  --inovis-shadow-sm: 0 8px 24px rgba(31, 20, 40, .06);
  --inovis-shadow: 0 20px 55px rgba(31, 20, 40, .1);
}

html {
  background: var(--inovis-canvas);
  scroll-behavior: smooth;
}

body.inovis-site-shell {
  min-height: 100vh;
  color: var(--inovis-text);
  background:
    radial-gradient(circle at 88% 7%, rgba(180, 105, 255, .1), transparent 30rem),
    linear-gradient(180deg, #fff 0, var(--inovis-canvas) 34rem);
  font-family: "Poppins", "Nunito", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.65;
}

.inovis-site-shell a {
  color: var(--inovis-violet);
  text-underline-offset: 3px;
}

.inovis-site-shell a:focus-visible,
.inovis-site-shell button:focus-visible,
.inovis-site-shell input:focus-visible,
.inovis-site-shell select:focus-visible,
.inovis-site-shell textarea:focus-visible {
  outline: 3px solid rgba(180, 105, 255, .38);
  outline-offset: 3px;
}

/* Navigation ----------------------------------------------------------- */

.inovis-site-shell #header,
.inovis-site-shell header.header {
  border-bottom: 1px solid rgba(255, 255, 255, .09);
  background:
    radial-gradient(circle at 84% -80%, rgba(180, 105, 255, .55), transparent 22rem),
    linear-gradient(112deg, rgba(23, 21, 27, .98), rgba(43, 32, 52, .97)) !important;
  box-shadow: 0 10px 36px rgba(18, 13, 23, .18);
  backdrop-filter: blur(16px);
}

.inovis-site-shell #topbar {
  color: rgba(255, 255, 255, .72);
  background: var(--inovis-night) !important;
}

.inovis-site-shell #header .logo,
.inovis-site-shell #header .logo h1,
.inovis-site-shell #header .sitename {
  color: #fff;
  font-weight: 800;
  letter-spacing: -.025em;
  text-decoration: none;
}

.inovis-site-shell #header .logo > span {
  color: var(--inovis-violet-bright);
}

.inovis-site-shell .navmenu a,
.inovis-site-shell #navbar a:not(.btn) {
  border-radius: 9px;
  color: rgba(255, 255, 255, .78);
  font-size: .84rem;
  font-weight: 650;
  text-decoration: none;
}

.inovis-site-shell .navmenu a:hover,
.inovis-site-shell .navmenu a.active,
.inovis-site-shell #navbar a:hover,
.inovis-site-shell #navbar a.active {
  color: #fff;
  background: rgba(255, 255, 255, .08);
}

.inovis-site-shell .navmenu .dropdown ul,
.inovis-site-shell #navbar .dropdown ul {
  padding: .55rem;
  border: 1px solid var(--inovis-line);
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 20px 50px rgba(24, 17, 30, .17);
}

.inovis-site-shell .navmenu .dropdown ul a,
.inovis-site-shell #navbar .dropdown ul a {
  padding: .65rem .75rem;
  color: var(--inovis-text);
}

.inovis-site-shell .navmenu .dropdown ul a:hover,
.inovis-site-shell #navbar .dropdown ul a:hover {
  color: var(--inovis-violet);
  background: var(--inovis-violet-soft);
}

.inovis-site-shell .mobile-nav-toggle {
  color: #fff;
}

.inovis-site-shell .header-actions .btn-getstarted,
.inovis-site-shell #header .btn,
.inovis-site-shell #navbar .btn {
  border: 1px solid rgba(255, 255, 255, .17);
  border-radius: 10px;
  color: #fff;
  background: linear-gradient(135deg, var(--inovis-violet-bright), var(--inovis-violet));
  box-shadow: 0 8px 20px rgba(143, 67, 214, .2);
  font-size: .78rem;
  font-weight: 750;
  text-decoration: none;
}

.inovis-site-shell .header-actions .btn-auth-secondary {
  background: rgba(255, 255, 255, .07);
  box-shadow: none;
}

/* Page surfaces -------------------------------------------------------- */

.inovis-site-shell main {
  min-height: 58vh;
}

.inovis-site-shell h1,
.inovis-site-shell h2,
.inovis-site-shell h3,
.inovis-site-shell h4,
.inovis-site-shell h5,
.inovis-site-shell h6 {
  color: var(--inovis-ink);
  font-weight: 750;
  letter-spacing: -.018em;
}

.inovis-site-shell .page-title,
.inovis-site-shell .breadcrumbs,
.inovis-site-shell .policy-hero,
.inovis-site-shell .learn-hero,
.inovis-site-shell .dist-hero,
.inovis-site-shell .dcc-hero,
.inovis-site-shell .benefit-hero,
.inovis-site-shell .share-hero {
  position: relative;
  overflow: hidden;
  color: #fff;
  background:
    radial-gradient(circle at 84% 14%, rgba(180, 105, 255, .56), transparent 17rem),
    linear-gradient(135deg, var(--inovis-night), var(--inovis-night-soft)) !important;
}

.inovis-site-shell .page-title::after,
.inovis-site-shell .policy-hero::after,
.inovis-site-shell .learn-hero::after,
.inovis-site-shell .dist-hero::after,
.inovis-site-shell .dcc-hero::after,
.inovis-site-shell .benefit-hero::after,
.inovis-site-shell .share-hero::after {
  position: absolute;
  right: -85px;
  bottom: -145px;
  width: 235px;
  height: 235px;
  border: 40px solid rgba(255, 255, 255, .055);
  border-radius: 50%;
  content: "";
  pointer-events: none;
}

.inovis-site-shell .page-title h1,
.inovis-site-shell .page-title h2,
.inovis-site-shell .policy-hero h1,
.inovis-site-shell .learn-hero h1,
.inovis-site-shell .dist-hero h1,
.inovis-site-shell .dcc-hero h1,
.inovis-site-shell .benefit-hero h1,
.inovis-site-shell .share-hero h1 {
  color: #fff;
}

.inovis-site-shell .page-title p,
.inovis-site-shell .page-title .breadcrumbs,
.inovis-site-shell .policy-hero p,
.inovis-site-shell .learn-hero p,
.inovis-site-shell .dist-hero p,
.inovis-site-shell .dcc-hero p,
.inovis-site-shell .benefit-hero p,
.inovis-site-shell .share-hero p {
  color: rgba(255, 255, 255, .72);
}

.inovis-site-shell .card,
.inovis-site-shell .policy-card,
.inovis-site-shell .learn-card,
.inovis-site-shell .dist-card,
.inovis-site-shell .dcc-card,
.inovis-site-shell .benefit-card,
.inovis-site-shell .share-card,
.inovis-site-shell .video-card,
.inovis-site-shell .bs-card,
.inovis-site-shell .ty-card,
.inovis-site-shell .home-card,
.inovis-site-shell .home-contact-card {
  border: 1px solid var(--inovis-line);
  border-radius: var(--inovis-radius);
  background: var(--inovis-surface);
  box-shadow: var(--inovis-shadow-sm);
}

.inovis-site-shell .card-header,
.inovis-site-shell .card-footer {
  border-color: var(--inovis-line);
  background:
    linear-gradient(120deg, rgba(180, 105, 255, .075), transparent 45%),
    #fbfafc;
}

.inovis-site-shell .card-header:first-child {
  border-radius: calc(var(--inovis-radius) - 1px) calc(var(--inovis-radius) - 1px) 0 0;
}

.inovis-site-shell .card-body {
  padding: clamp(1.1rem, 2.5vw, 1.55rem);
}

.inovis-site-shell .btn,
.inovis-site-shell button:not(.mobile-nav-toggle):not(.btn-close) {
  min-height: 41px;
  padding: .58rem .92rem;
  border-radius: var(--inovis-radius-sm);
  font-size: .82rem;
  font-weight: 700;
  text-transform: none;
  box-shadow: none;
}

.inovis-site-shell .btn-primary,
.inovis-site-shell .bg-primary,
.inovis-site-shell .primarybg2,
.inovis-site-shell input[type="submit"] {
  border-color: var(--inovis-violet) !important;
  color: #fff !important;
  background: linear-gradient(135deg, var(--inovis-violet-bright), var(--inovis-violet)) !important;
  box-shadow: 0 8px 20px rgba(143, 67, 214, .2);
}

.inovis-site-shell .btn-primary:hover,
.inovis-site-shell input[type="submit"]:hover {
  border-color: var(--inovis-violet-deep) !important;
  background: linear-gradient(135deg, #a558e9, #7530b5) !important;
}

.inovis-site-shell .btn-outline-primary {
  border-color: rgba(143, 67, 214, .48);
  color: var(--inovis-violet);
  background: #fff;
}

.inovis-site-shell .btn-outline-primary:hover {
  border-color: var(--inovis-violet);
  color: #fff;
  background: var(--inovis-violet);
}

.inovis-site-shell .form-control,
.inovis-site-shell .form-select,
.inovis-site-shell input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]),
.inovis-site-shell select,
.inovis-site-shell textarea {
  min-height: 46px;
  padding: .7rem .85rem;
  border: 1.5px solid var(--inovis-line);
  border-radius: var(--inovis-radius-sm);
  color: var(--inovis-ink);
  background: #fff;
  box-shadow: none;
}

.inovis-site-shell textarea {
  min-height: 115px;
}

.inovis-site-shell .form-control:focus,
.inovis-site-shell .form-select:focus,
.inovis-site-shell input:focus,
.inovis-site-shell select:focus,
.inovis-site-shell textarea:focus {
  border-color: var(--inovis-violet-bright);
  box-shadow: 0 0 0 4px rgba(180, 105, 255, .13);
}

.inovis-site-shell .table-responsive {
  border: 1px solid var(--inovis-line);
  border-radius: 13px;
  background: #fff;
}

.inovis-site-shell .table {
  --bs-table-striped-bg: #faf8fc;
  --bs-table-hover-bg: var(--inovis-violet-soft);
  color: var(--inovis-text);
  font-size: .84rem;
}

.inovis-site-shell .table thead th {
  border-color: var(--inovis-line);
  color: #625a69;
  background: #faf8fc;
  font-size: .7rem;
  font-weight: 800;
  letter-spacing: .055em;
  text-transform: uppercase;
}

.inovis-site-shell .alert {
  border: 1px solid var(--inovis-line);
  border-left: 4px solid var(--inovis-violet-bright);
  border-radius: 12px;
  color: var(--inovis-text);
  background: #fff;
  box-shadow: var(--inovis-shadow-sm);
}

/* Footer --------------------------------------------------------------- */

.inovis-site-shell #footer,
.inovis-site-shell footer.footer {
  color: rgba(255, 255, 255, .68);
  background:
    radial-gradient(circle at 18% 0, rgba(180, 105, 255, .16), transparent 24rem),
    linear-gradient(145deg, var(--inovis-night-soft), var(--inovis-night)) !important;
}

.inovis-site-shell #footer h3,
.inovis-site-shell #footer h4,
.inovis-site-shell #footer .sitename,
.inovis-site-shell #footer strong {
  color: #fff;
}

.inovis-site-shell #footer a {
  color: rgba(255, 255, 255, .76);
}

.inovis-site-shell #footer a:hover {
  color: #e3c7fb;
}

.inovis-site-shell .scroll-top,
.inovis-site-shell .back-to-top {
  border-radius: 12px;
  color: #fff;
  background: linear-gradient(135deg, var(--inovis-violet-bright), var(--inovis-violet));
  box-shadow: 0 9px 22px rgba(143, 67, 214, .28);
}

@media (max-width: 1199.98px) {
  .inovis-site-shell.mobile-nav-active .navmenu {
    background: rgba(18, 15, 23, .56);
  }

  .inovis-site-shell .navmenu > ul {
    border: 1px solid rgba(255, 255, 255, .09);
    border-radius: 16px;
    background: linear-gradient(145deg, #2b2034, #17151b);
    box-shadow: var(--inovis-shadow);
  }

  .inovis-site-shell .navmenu > ul a {
    color: rgba(255, 255, 255, .78);
  }
}

@media (max-width: 575.98px) {
  .inovis-site-shell .card,
  .inovis-site-shell .policy-card,
  .inovis-site-shell .learn-card,
  .inovis-site-shell .dist-card,
  .inovis-site-shell .dcc-card,
  .inovis-site-shell .benefit-card,
  .inovis-site-shell .share-card {
    border-radius: 14px;
  }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .inovis-site-shell * {
    scroll-behavior: auto !important;
    transition-duration: .001ms !important;
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
  }
}

@media print {
  body.inovis-site-shell { background: #fff; }
  .inovis-site-shell #header,
  .inovis-site-shell #topbar,
  .inovis-site-shell #footer,
  .inovis-site-shell .scroll-top,
  .inovis-site-shell .back-to-top { display: none !important; }
  .inovis-site-shell .card { box-shadow: none; }
}
