/*
  runsonUpendo portal.css
  DNN portal-level brand tokens and compatibility fixes.

  Canonical brand hues come from the supplied brand palette image.
  Darker action colors come from the approved mockup system so white
  button text meets WCAG AA contrast. The bronze/gold values from the
  first-draft brand document remain logo-reference colors only.

  The site already loads Plus Jakarta Sans and Fraunces in the page head;
  this file assigns them without issuing a duplicate font request.
*/

:root {
  /* Canonical brand palette */
  --ru-primary: #e25e4a;
  --ru-secondary: #2d6a6a;
  --ru-tertiary: #f9f7f2;
  --ru-neutral: #24292e;

  /* Accessible interface variants from the mockups */
  --ru-primary-action: #a73323;
  --ru-primary-action-hover: #891d11;
  --ru-secondary-action: #2a6767;
  --ru-secondary-action-hover: #1f4f4f;
  --ru-surface: #f7f9ff;
  --ru-surface-low: #f0f4fb;
  --ru-surface-container: #eaeef5;
  --ru-surface-high: #e4e8ef;
  --ru-on-surface: #171c21;
  --ru-on-surface-muted: #58413d;
  --ru-outline: #8c716c;
  --ru-outline-soft: #dfbfba;
  --ru-error: #ba1a1a;

  /* Logo-reference colors from the preliminary brand definition */
  --ru-logo-black: #000000;
  --ru-logo-bronze: #635128;
  --ru-logo-gold: #b68f3e;
  --ru-logo-graphite: #4d4d4d;

  /* Typography and layout */
  --ru-font-body: 'Plus Jakarta Sans', Arial, sans-serif;
  --ru-font-display: 'Fraunces', Georgia, serif;
  --ru-container-max: 80rem;
  --ru-radius-sm: 0.25rem;
  --ru-radius: 0.5rem;
  --ru-radius-md: 0.75rem;
  --ru-radius-lg: 1rem;
  --ru-radius-xl: 1.5rem;
  --ru-shadow-card: 0 0.25rem 1.25rem rgba(36, 41, 46, 0.04);
  --ru-shadow-overlay: 0 0.625rem 1.875rem rgba(36, 41, 46, 0.08);
  --ru-focus-ring: 0 0 0 0.2rem rgba(226, 94, 74, 0.28);

  /* Bootstrap-compatible aliases used by portal content. */
  --bs-primary: var(--ru-primary-action);
  --bs-primary-rgb: 167, 51, 35;
  --bs-secondary: var(--ru-secondary);
  --bs-secondary-rgb: 45, 106, 106;
  --bs-body-color: var(--ru-neutral);
  --bs-body-font-family: var(--ru-font-body);
  --bs-body-line-height: 1.5;
  --bs-border-radius: var(--ru-radius);
}

/* =========================================================
   Brand typography
   ========================================================= */
html {
  font-size: 100%;
}

html body,
html body button,
html body input,
html body select,
html body textarea,
html body .dnnFormItem,
html body .Normal,
html body .NormalDisabled,
html body .NormalTextBox {
  font-family: var(--ru-font-body);
}

body {
  /* Reassert later-loaded skin variables at the closer body scope. */
  --bs-primary: var(--ru-primary-action);
  --bs-primary-rgb: 167, 51, 35;
  --bs-secondary: var(--ru-secondary);
  --bs-secondary-rgb: 45, 106, 106;
  --bs-body-color: var(--ru-neutral);
  --bs-body-font-family: var(--ru-font-body);
  --uv-bs-shim-primary: var(--ru-primary-action);
  --uv-bs-shim-primary-hover: var(--ru-primary-action-hover);
  --uv-bs-shim-secondary: var(--ru-secondary);
  --uv-bs-shim-accent: var(--ru-primary);
  --uv-bs-shim-text: var(--ru-neutral);
  --uv-bs-shim-surface: var(--ru-tertiary);
  --uv-bs-shim-surface-soft: var(--ru-surface-low);
  color: var(--ru-neutral);
  background-color: var(--ru-tertiary) !important;
  font-size: 1rem;
  line-height: 1.5;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

html body h1,
html body h2,
html body h3,
html body .h1,
html body .h2,
html body .h3,
html body .Head,
html body .PageTitle,
html body .page-title {
  color: var(--ru-on-surface);
  font-family: var(--ru-font-body);
  font-weight: 700;
  text-wrap: balance;
}

html body .editorial-heading,
html body .display-serif,
html body blockquote {
  font-family: var(--ru-font-display);
}

html body h1,
html body .h1 {
  font-size: clamp(2rem, 1.4rem + 2.6vw, 3rem);
  line-height: 1.17;
  letter-spacing: -0.02em;
}

html body h2,
html body .h2 {
  font-size: clamp(1.75rem, 1.4rem + 1.45vw, 2rem);
  line-height: 1.25;
  letter-spacing: -0.01em;
}

html body h3,
html body .h3 {
  font-size: 1.5rem;
  line-height: 1.33;
}

html body h4,
html body h5,
html body h6,
html body .h4,
html body .h5,
html body .h6 {
  color: var(--ru-on-surface);
  font-family: var(--ru-font-body);
  font-weight: 700;
}

.lead,
.body-lg {
  font-size: 1.125rem;
  line-height: 1.56;
}

/* =========================================================
   Brand actions, links, and controls
   ========================================================= */
main a:not(.btn):not(.dnnPrimaryAction):not(.dnnSecondaryAction):not(.dnnTertiaryAction),
.main a:not(.btn):not(.dnnPrimaryAction):not(.dnnSecondaryAction):not(.dnnTertiaryAction) {
  color: var(--ru-secondary);
  text-decoration-thickness: 0.08em;
  text-underline-offset: 0.18em;
}

main a:not(.btn):not(.dnnPrimaryAction):not(.dnnSecondaryAction):not(.dnnTertiaryAction):hover,
main a:not(.btn):not(.dnnPrimaryAction):not(.dnnSecondaryAction):not(.dnnTertiaryAction):focus-visible,
.main a:not(.btn):not(.dnnPrimaryAction):not(.dnnSecondaryAction):not(.dnnTertiaryAction):hover,
.main a:not(.btn):not(.dnnPrimaryAction):not(.dnnSecondaryAction):not(.dnnTertiaryAction):focus-visible {
  color: var(--ru-primary-action);
}

body .btn-primary,
body:not(.dnnEditState) main .dnnPrimaryAction,
body:not(.dnnEditState) .main .dnnPrimaryAction {
  border-color: var(--ru-primary-action) !important;
  background-color: var(--ru-primary-action) !important;
  color: #ffffff !important;
  text-shadow: none !important;
}

body .btn-primary:hover,
body .btn-primary:focus-visible,
body:not(.dnnEditState) main .dnnPrimaryAction:hover,
body:not(.dnnEditState) main .dnnPrimaryAction:focus-visible,
body:not(.dnnEditState) .main .dnnPrimaryAction:hover,
body:not(.dnnEditState) .main .dnnPrimaryAction:focus-visible {
  border-color: var(--ru-primary-action-hover) !important;
  background-color: var(--ru-primary-action-hover) !important;
  color: #ffffff !important;
  box-shadow: var(--ru-focus-ring) !important;
}

body .btn-outline-primary,
body:not(.dnnEditState) main .dnnSecondaryAction,
body:not(.dnnEditState) .main .dnnSecondaryAction {
  border: 2px solid var(--ru-secondary) !important;
  background-color: transparent !important;
  color: var(--ru-secondary) !important;
  text-shadow: none !important;
}

body .btn-outline-primary:hover,
body .btn-outline-primary:focus-visible,
body:not(.dnnEditState) main .dnnSecondaryAction:hover,
body:not(.dnnEditState) main .dnnSecondaryAction:focus-visible,
body:not(.dnnEditState) .main .dnnSecondaryAction:hover,
body:not(.dnnEditState) .main .dnnSecondaryAction:focus-visible {
  border-color: var(--ru-secondary-action-hover) !important;
  background-color: var(--ru-secondary-action-hover) !important;
  color: #ffffff !important;
  box-shadow: 0 0 0 0.2rem rgba(45, 106, 106, 0.24) !important;
}

body .form-control,
body .form-select,
body:not(.dnnEditState) main .dnnFormItem input[type='text'],
body:not(.dnnEditState) main .dnnFormItem input[type='email'],
body:not(.dnnEditState) main .dnnFormItem input[type='password'],
body:not(.dnnEditState) main .dnnFormItem input[type='search'],
body:not(.dnnEditState) main .dnnFormItem select,
body:not(.dnnEditState) main .dnnFormItem textarea {
  border-color: rgba(36, 41, 46, 0.16);
  border-radius: var(--ru-radius);
  background-color: var(--ru-surface-low);
  color: var(--ru-neutral);
}

body .form-control:focus,
body .form-select:focus,
body:not(.dnnEditState) main .dnnFormItem input[type='text']:focus,
body:not(.dnnEditState) main .dnnFormItem input[type='email']:focus,
body:not(.dnnEditState) main .dnnFormItem input[type='password']:focus,
body:not(.dnnEditState) main .dnnFormItem input[type='search']:focus,
body:not(.dnnEditState) main .dnnFormItem select:focus,
body:not(.dnnEditState) main .dnnFormItem textarea:focus {
  border-color: var(--ru-primary);
  background-color: #ffffff;
  box-shadow: var(--ru-focus-ring);
  outline: 0;
}

/* =========================================================
   Portal-safe brand helpers
   ========================================================= */
.text-ru-primary { color: var(--ru-primary-action) !important; }
.text-ru-secondary { color: var(--ru-secondary) !important; }
.text-ru-neutral { color: var(--ru-neutral) !important; }
.bg-ru-primary { background-color: var(--ru-primary) !important; }
.bg-ru-secondary { background-color: var(--ru-secondary) !important; }
.bg-ru-tertiary { background-color: var(--ru-tertiary) !important; }
.bg-ru-surface { background-color: var(--ru-surface) !important; }
.text-normalcase { text-transform: none !important; }

/* Preserve Bootstrap's size when a link is nested inside .small. */
.small,
.small a,
.small a:hover,
.small a:visited,
.small a:active {
  font-size: 0.875rem !important;
  line-height: 1.5;
}

.small a {
  color: inherit;
}

/* Shared content helpers retained across the client portals. */
.text-shadow-none { text-shadow: none !important; }
.text-shadow-sm { text-shadow: 0 1px 1px rgba(0, 0, 0, 0.15) !important; }
.text-shadow { text-shadow: 0 1px 2px rgba(0, 0, 0, 0.25) !important; }
.text-shadow-lg { text-shadow: 0 2px 4px rgba(0, 0, 0, 0.35) !important; }
.text-shadow-light-sm { text-shadow: 0 1px 1px rgba(255, 255, 255, 0.15) !important; }
.text-shadow-light { text-shadow: 0 1px 2px rgba(255, 255, 255, 0.25) !important; }
.text-shadow-light-lg { text-shadow: 0 2px 4px rgba(255, 255, 255, 0.35) !important; }

/* The new skin already supplies Bootstrap's visually-hidden and z-index utilities. */
a.btn {
  text-decoration: none !important;
}

footer,
#footer {
  margin-top: 0 !important;
}

/* Generic LiveForms reset; intentionally avoids module-instance IDs. */
.LiveForm ul.page-break-section,
[id^='LiveForm'] ul.page-break-section {
  margin-top: 1.5rem;
  border: 0 !important;
  box-shadow: none !important;
}

.LiveForm input[type='submit'],
[id^='LiveForm'] input[type='submit'] {
  border-color: var(--ru-primary-action) !important;
  background-color: var(--ru-primary-action) !important;
  color: #ffffff !important;
  text-shadow: none !important;
}

.LiveForm input[type='submit']:hover,
.LiveForm input[type='submit']:focus-visible,
[id^='LiveForm'] input[type='submit']:hover,
[id^='LiveForm'] input[type='submit']:focus-visible {
  border-color: var(--ru-primary-action-hover) !important;
  background-color: var(--ru-primary-action-hover) !important;
  box-shadow: var(--ru-focus-ring) !important;
}

/* DNN messages use the brand while retaining semantic state colors. */
.dnnFormMessage {
  border-radius: var(--ru-radius);
  font-family: var(--ru-font-body);
}

.dnnFormMessage.dnnFormError,
.dnnFormMessage.dnnFormValidationSummary {
  border-color: rgba(186, 26, 26, 0.32);
  background-color: rgba(186, 26, 26, 0.1);
  color: #93000a;
}

.dnnFormMessage.dnnFormWarning {
  border-color: rgba(182, 143, 62, 0.48);
  background-color: rgba(182, 143, 62, 0.12);
  color: #635128;
}

.dnnFormMessage.dnnFormSuccess {
  border-color: rgba(45, 106, 106, 0.34);
  background-color: rgba(45, 106, 106, 0.1);
  color: #1f4f4f;
}

/* =========================================================
   runsonUpendo DNN Login Compatibility
   Purpose:
   - Modernize the built-in login view.
   - Keep both authentication providers visually consistent.
   - Prevent tab flicker by styling LoginTab, LoginTabHover,
     and LoginTabSelected with identical layout rules.
   - Avoid nested card-on-card styling.
   ========================================================= */

/* Local login design tokens */
body:has(.dnnLogin) {
  --ru-login-primary: #2d6a6a;
  --ru-login-primary-dark: #1f4f4f;
  --ru-login-primary-soft: #e6f1f1;
  --ru-login-accent: #e25e4a;
  --ru-login-accent-dark: #a73323;
  --ru-login-accent-soft: #fef0ed;
  --ru-login-ink: #24292e;
  --ru-login-muted: rgba(36, 41, 46, 0.68);
  --ru-login-border: rgba(45, 106, 106, 0.16);
  --ru-login-border-strong: rgba(45, 106, 106, 0.28);
  --ru-login-surface: #ffffff;
  --ru-login-soft: #f9f7f2;
  --ru-login-soft-2: #f0f4fb;
  --ru-login-shadow-sm: 0 0.35rem 1rem rgba(36, 41, 46, 0.07);
  --ru-login-shadow-md: 0 1rem 2.75rem rgba(36, 41, 46, 0.11);
  --ru-login-shadow-lg: 0 1.5rem 4rem rgba(36, 41, 46, 0.13);
  --ru-login-radius: 0.95rem;
  --ru-login-radius-lg: 1.2rem;
  --ru-login-focus: 0 0 0 0.22rem rgba(45, 106, 106, 0.22);
}

/* Page-level spacing and centering */
body:has(.dnnLogin) .main {
  padding-top: clamp(2rem, 4vw, 4rem);
  padding-bottom: clamp(3rem, 6vw, 6rem);
}

body:has(.dnnLogin) #dnn_ContentPane,
body:has(.dnnLogin) #dnn_contentPane {
  max-width: 980px;
  margin-left: auto;
  margin-right: auto;
}

/* Authentication providers rely on this class for state switching. */
.dnnLogin .hidden {
  display: none !important;
}

/* Main login shell */
.dnnLogin {
  display: block !important;
  width: 100%;
  max-width: 980px;
  margin: 0 auto clamp(2rem, 4vw, 4rem);
  padding: 0 !important;
  color: var(--ru-login-ink);
}

/* Neutralize the legacy skin's .dnnLogin > div { width: 25%; }. */
body .dnnLogin > div {
  width: 100% !important;
  max-width: none !important;
}

/* Remove old visual noise from provider wrappers */
.dnnLogin,
.dnnLogin .loginContent,
.dnnLogin .LoginContainer,
.dnnLogin .dnnLoginService,
.dnnLogin .pwLogin {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

/* =========================================================
   Login Tabs
   ========================================================= */

/*
   Use one stable rule set for every real tab state.

   LoginTabHover must get the same layout rules as LoginTab and
   LoginTabSelected. Otherwise, the provider tab can jump or flicker
   when the hover class is swapped in.
*/
body .dnnLogin :is(#dnn_ctr_Login_tsLogin_lc, .LoginTabGroup) {
  display: flex !important;
  align-items: stretch !important;
  gap: 0 !important;
  width: 100% !important;
  min-height: 58px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 1px solid var(--ru-login-border) !important;
  border-bottom: 0 !important;
  border-radius: var(--ru-login-radius-lg) var(--ru-login-radius-lg) 0 0 !important;
  background:
    linear-gradient(180deg, #ffffff, rgba(248, 249, 250, 0.92)) !important;
  box-shadow: var(--ru-login-shadow-sm) !important;
  overflow: hidden !important;
}

/* All possible tab states get identical layout. */
body .dnnLogin :is(#dnn_ctr_Login_tsLogin_lc, .LoginTabGroup) > span.LoginTab,
body .dnnLogin :is(#dnn_ctr_Login_tsLogin_lc, .LoginTabGroup) > span.LoginTabHover,
body .dnnLogin :is(#dnn_ctr_Login_tsLogin_lc, .LoginTabGroup) > span.LoginTabSelected,
.dnnLogin .LoginTab,
.dnnLogin .LoginTabHover,
.dnnLogin .LoginTabSelected {
  position: relative !important;
  display: flex !important;
  flex: 1 1 0 !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 0 !important;
  min-height: 58px !important;
  margin: 0 !important;
  padding: 0.95rem 1.35rem 1.15rem !important;
  border: 0 !important;
  border-right: 1px solid rgba(45, 106, 106, 0.12) !important;
  border-radius: 0 !important;
  color: var(--ru-login-primary) !important;
  background: transparent !important;
  box-sizing: border-box !important;
  cursor: pointer !important;
  font-family: 'Plus Jakarta Sans', Arial, sans-serif !important;
  font-size: 0.98rem !important;
  font-style: normal !important;
  font-weight: 600 !important;
  font-variant: normal !important;
  letter-spacing: 0.045em !important;
  line-height: 1.15 !important;
  text-align: center !important;
  text-decoration: none !important;
  text-shadow: none !important;
  text-transform: none !important;
  white-space: nowrap !important;
  transform: none !important;
  user-select: none !important;
  transition:
    background-color 0.16s ease,
    color 0.16s ease,
    box-shadow 0.16s ease !important;
}

body .dnnLogin :is(#dnn_ctr_Login_tsLogin_lc, .LoginTabGroup) > span.LoginTab:last-child,
body .dnnLogin :is(#dnn_ctr_Login_tsLogin_lc, .LoginTabGroup) > span.LoginTabHover:last-child,
body .dnnLogin :is(#dnn_ctr_Login_tsLogin_lc, .LoginTabGroup) > span.LoginTabSelected:last-child,
.dnnLogin .LoginTab:last-child,
.dnnLogin .LoginTabHover:last-child,
.dnnLogin .LoginTabSelected:last-child {
  border-right: 0 !important;
}

/* Normalize inner text/link wrappers */
.dnnLogin .LoginTab *,
.dnnLogin .LoginTabHover *,
.dnnLogin .LoginTabSelected *,
.dnnLogin .LoginTab a,
.dnnLogin .LoginTabHover a,
.dnnLogin .LoginTabSelected a,
.dnnLogin .LoginTab span,
.dnnLogin .LoginTabHover span,
.dnnLogin .LoginTabSelected span {
  color: inherit !important;
  font-family: inherit !important;
  font-size: inherit !important;
  font-style: normal !important;
  font-weight: inherit !important;
  font-variant: normal !important;
  letter-spacing: inherit !important;
  line-height: inherit !important;
  text-align: inherit !important;
  text-decoration: none !important;
  text-shadow: none !important;
  text-transform: none !important;
  white-space: inherit !important;
}

/* Inactive tab */
.dnnLogin .LoginTab {
  color: rgba(45, 106, 106, 0.72) !important;
  background: rgba(234, 241, 246, 0.68) !important;
  box-shadow: inset 0 -1px 0 rgba(45, 106, 106, 0.08) !important;
}

/* Hover tab state, including class-swapped LoginTabHover */
.dnnLogin .LoginTabHover,
.dnnLogin .LoginTab:hover,
.dnnLogin .LoginTab:focus,
.dnnLogin .LoginTab:focus-visible {
  color: var(--ru-login-primary) !important;
  background: #ffffff !important;
  font-size: 0.98rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.045em !important;
  line-height: 1.15 !important;
  padding: 0.95rem 1.35rem 1.15rem !important;
  box-shadow:
    inset 0 -3px 0 rgba(226, 94, 74, 0.72),
    inset 0 0 0 999px rgba(226, 94, 74, 0.06) !important;
  transform: none !important;
}

/* Selected tab */
.dnnLogin .LoginTabSelected,
.dnnLogin .LoginTabSelected:hover,
.dnnLogin .LoginTabSelected:focus,
.dnnLogin .LoginTabSelected:focus-visible {
  color: var(--ru-login-ink) !important;
  background: #ffffff !important;
  font-size: 0.98rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.045em !important;
  line-height: 1.15 !important;
  padding: 0.95rem 1.35rem 1.15rem !important;
  box-shadow: inset 0 -4px 0 var(--ru-login-accent) !important;
  transform: none !important;
}

/* Keep inner text stable during all hover/focus states */
.dnnLogin .LoginTab:hover *,
.dnnLogin .LoginTab:focus *,
.dnnLogin .LoginTab:focus-visible *,
.dnnLogin .LoginTabHover *,
.dnnLogin .LoginTabSelected:hover *,
.dnnLogin .LoginTabSelected:focus *,
.dnnLogin .LoginTabSelected:focus-visible * {
  color: inherit !important;
  font-size: inherit !important;
  font-weight: inherit !important;
  letter-spacing: inherit !important;
  line-height: inherit !important;
  text-decoration: none !important;
  text-shadow: none !important;
  text-transform: none !important;
}

/* Remove inherited/generated tab decorations */
.dnnLogin .LoginTab::before,
.dnnLogin .LoginTab::after,
.dnnLogin .LoginTabHover::before,
.dnnLogin .LoginTabHover::after,
.dnnLogin .LoginTabSelected::before,
.dnnLogin .LoginTabSelected::after,
.dnnLogin .LoginTab *::before,
.dnnLogin .LoginTab *::after,
.dnnLogin .LoginTabHover *::before,
.dnnLogin .LoginTabHover *::after,
.dnnLogin .LoginTabSelected *::before,
.dnnLogin .LoginTabSelected *::after {
  display: none !important;
  content: none !important;
}

/* Keyboard focus without layout changes */
.dnnLogin .LoginTab:focus-visible,
.dnnLogin .LoginTabHover:focus-visible,
.dnnLogin .LoginTabSelected:focus-visible {
  outline: none !important;
  box-shadow:
    inset 0 0 0 2px rgba(226, 94, 74, 0.36),
    inset 0 -4px 0 var(--ru-login-accent) !important;
}

/* =========================================================
   Login Panel
   ========================================================= */

.dnnLogin .LoginContainerGroup {
  position: relative;
  margin: 0 !important;
  padding: clamp(1.85rem, 3vw, 2.5rem) !important;
  border: 1px solid var(--ru-login-border) !important;
  border-top: 0 !important;
  border-radius: 0 0 var(--ru-login-radius-lg) var(--ru-login-radius-lg) !important;
  background:
    radial-gradient(circle at top left, rgba(226, 94, 74, 0.09), transparent 18rem),
    radial-gradient(circle at bottom right, rgba(45, 106, 106, 0.07), transparent 18rem),
    linear-gradient(180deg, #ffffff, rgba(248, 249, 250, 0.94)) !important;
  box-shadow: var(--ru-login-shadow-lg) !important;
  overflow: hidden;
}

/* Remove inner bordered boxes */
.dnnLogin .LoginContainerGroup .LoginContainer,
.dnnLogin .LoginContainerGroup .dnnLoginService,
.dnnLogin .LoginContainerGroup .pwLogin,
.dnnLogin .LoginContainerGroup fieldset,
.dnnLogin .LoginContainerGroup .dnnForm,
.dnnLogin .LoginContainerGroup .dnnFormItem,
.dnnLogin .LoginContainerGroup .dnnActions {
  border: 0 !important;
  box-shadow: none !important;
}

/* Some providers put an inline border-top on their own wrapper */
.dnnLogin .LoginContainer,
.dnnLogin .dnnLoginService,
.dnnLogin .pwLogin {
  padding: 0 !important;
  margin: 0 !important;
  border-top: 0 !important;
}

/* Form rows */
.dnnLogin .dnnFormItem {
  display: grid !important;
  grid-template-columns: minmax(150px, 190px) minmax(0, 1fr);
  align-items: center;
  gap: 0.65rem 1rem;
  width: 100%;
  margin: 0 0 1rem 0 !important;
  padding: 0 !important;
  background: transparent !important;
}

/* Hide empty label columns without collapsing the grid on desktop */
.dnnLogin .dnnFormItem > .dnnLabel:empty,
.dnnLogin .dnnFormItem > .dnnFormLabel:empty,
.dnnLogin .dnnFormItem > .dnnLabel:has(label:empty),
.dnnLogin .dnnFormItem > .dnnFormLabel:has(label:empty) {
  visibility: hidden;
}

/* Labels */
.dnnLogin .dnnLabel,
.dnnLogin .dnnFormLabel {
  display: block !important;
  float: none !important;
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  color: var(--ru-login-primary) !important;
  font-size: 0.9rem !important;
  font-weight: 800 !important;
  line-height: 1.25;
  text-align: left !important;
}

/* Restore labels hidden by the legacy LoginPanel nth-child layout. */
body .dnnLogin .LoginPanel .dnnFormItem .dnnFormLabel,
body .dnnLogin .LoginPanel .dnnFormItem .dnnLabel {
  display: block !important;
}

.dnnLogin .dnnLabel label,
.dnnLogin .dnnFormLabel label,
.dnnLogin label.dnnFormLabel {
  margin: 0 !important;
  color: inherit !important;
  font: inherit !important;
}

/* Inputs */
.dnnLogin input[type="text"],
.dnnLogin input[type="password"],
.dnnLogin input[type="email"] {
  width: 100% !important;
  max-width: none !important;
  min-height: 48px;
  margin: 0 !important;
  padding: 0.75rem 0.9rem !important;
  border: 1px solid var(--ru-login-border) !important;
  border-radius: 0.8rem !important;
  background: #ffffff !important;
  color: var(--ru-login-ink) !important;
  font-size: 0.96rem !important;
  line-height: 1.35 !important;
  box-shadow: none !important;
  transition:
    border-color 0.18s ease,
    box-shadow 0.18s ease,
    background-color 0.18s ease;
}

.dnnLogin input[type="text"]:focus,
.dnnLogin input[type="password"]:focus,
.dnnLogin input[type="email"]:focus {
  border-color: rgba(226, 94, 74, 0.68) !important;
  box-shadow: var(--ru-login-focus) !important;
  outline: none !important;
}

.dnnLogin input::placeholder {
  color: rgba(36, 41, 46, 0.48);
}

/* Verification/status messages */
.dnnLogin .dnnFormMessage {
  grid-column: 1 / -1;
  width: 100% !important;
  max-width: none !important;
  margin: 0.25rem 0 1.45rem 0 !important;
  padding: 1rem 1.1rem !important;
  border-radius: var(--ru-login-radius) !important;
  font-size: 0.96rem !important;
  font-weight: 700 !important;
  line-height: 1.45;
  text-align: center;
  box-shadow: none !important;
}

.dnnLogin .dnnFormWarning {
  border: 1px solid rgba(182, 143, 62, 0.48) !important;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.75), rgba(182, 143, 62, 0.12)) !important;
  color: var(--ru-logo-bronze) !important;
}

.dnnLogin .dnnFormError,
.dnnLogin .dnnFormValidationSummary {
  border: 1px solid rgba(186, 26, 26, 0.32) !important;
  background: rgba(186, 26, 26, 0.1) !important;
  color: #93000a !important;
}

/* Remember me */
.dnnLogin .dnnLoginRememberMe {
  display: inline-flex !important;
  align-items: center;
  gap: 0.55rem;
  color: var(--ru-login-muted) !important;
  font-size: 0.92rem !important;
  font-weight: 700 !important;
}

.dnnLogin .dnnLoginRememberMe input[type="checkbox"] {
  width: 1rem;
  height: 1rem;
  margin: 0 !important;
  accent-color: var(--ru-login-accent);
}

.dnnLogin .dnnLoginRememberMe label {
  margin: 0 !important;
  color: var(--ru-login-muted) !important;
  font-weight: 700 !important;
  cursor: pointer;
}

/* =========================================================
   Actions
   ========================================================= */

.dnnLogin .dnnActions {
  display: flex !important;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  background: transparent !important;
}

.dnnLogin .dnnActions li {
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

.dnnLogin .dnnPrimaryAction,
.dnnLogin .dnnSecondaryAction,
.dnnLogin #btnSendEmail,
.dnnLogin #btnSendEmailDisabled {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-width: 150px;
  min-height: 44px;
  margin: 0 !important;
  padding: 0.72rem 1.25rem !important;
  border-radius: 999px !important;
  font-size: 0.92rem !important;
  font-weight: 800 !important;
  line-height: 1.1;
  letter-spacing: 0.01em;
  text-align: center;
  text-decoration: none !important;
  text-shadow: none !important;
  box-shadow: none !important;
  transition:
    background-color 0.18s ease,
    border-color 0.18s ease,
    color 0.18s ease,
    box-shadow 0.18s ease,
    transform 0.18s ease;
}

/* Primary actions */
.dnnLogin .dnnPrimaryAction,
.dnnLogin #btnSendEmail {
  border: 1px solid transparent !important;
  background:
    linear-gradient(135deg, var(--ru-login-primary), var(--ru-login-primary-dark)) !important;
  color: #ffffff !important;
  box-shadow: 0 0.75rem 1.5rem rgba(45, 106, 106, 0.22) !important;
}

.dnnLogin .dnnPrimaryAction:hover,
.dnnLogin .dnnPrimaryAction:focus,
.dnnLogin #btnSendEmail:hover,
.dnnLogin #btnSendEmail:focus {
  background:
    linear-gradient(135deg, var(--ru-login-accent-dark), var(--ru-login-accent)) !important;
  color: #ffffff !important;
  box-shadow: 0 1rem 2rem rgba(226, 94, 74, 0.26) !important;
  transform: translateY(-1px);
}

/* Secondary actions */
.dnnLogin .dnnSecondaryAction {
  border: 1px solid var(--ru-login-border) !important;
  background: #ffffff !important;
  color: var(--ru-login-primary) !important;
}

.dnnLogin .dnnSecondaryAction:hover,
.dnnLogin .dnnSecondaryAction:focus {
  border-color: var(--ru-login-primary) !important;
  background: var(--ru-login-primary) !important;
  color: #ffffff !important;
  transform: translateY(-1px);
}

/* Disabled send-code state

   Important:
   Do not treat .aspNetDisabled as disabled by class alone.

   Older ASP.NET WebForms controls may leave the aspNetDisabled class
   on the element after client-side logic removes the actual disabled
   attribute. If CSS disables pointer events based only on that class,
   a button can become enabled in the DOM but still remain unclickable.

   Only apply the disabled treatment when the element is actually disabled.
*/
.dnnLogin #btnSendEmailDisabled,
.dnnLogin .dnnDisabledAction,
.dnnLogin input.aspNetDisabled:disabled,
.dnnLogin button.aspNetDisabled:disabled,
.dnnLogin a.aspNetDisabled[disabled],
.dnnLogin .dnnPrimaryAction:disabled,
.dnnLogin .dnnSecondaryAction:disabled {
  border: 1px solid rgba(45, 106, 106, 0.12) !important;
  background: rgba(45, 106, 106, 0.08) !important;
  color: rgba(36, 41, 46, 0.42) !important;
  box-shadow: none !important;
  cursor: not-allowed !important;
  pointer-events: none !important;
}

/* If WebForms leaves aspNetDisabled behind after enabling the control,
   allow the now-enabled action to receive clicks again. */
.dnnLogin input.dnnPrimaryAction.aspNetDisabled:not(:disabled),
.dnnLogin input.dnnSecondaryAction.aspNetDisabled:not(:disabled),
.dnnLogin button.dnnPrimaryAction.aspNetDisabled:not(:disabled),
.dnnLogin button.dnnSecondaryAction.aspNetDisabled:not(:disabled),
.dnnLogin a.dnnPrimaryAction.aspNetDisabled:not([disabled]),
.dnnLogin a.dnnSecondaryAction.aspNetDisabled:not([disabled]) {
  cursor: pointer !important;
  pointer-events: auto !important;
}

/* Reset password area */
.dnnLogin .dnnLoginActions {
  margin: 0.15rem 0 0 0 !important;
  padding: 0 !important;
}

/* Custom auth countdown/status text */
.dnnLogin #msgCounter {
  grid-column: 2;
  padding-left: 0 !important;
  margin: -0.35rem 0 0.9rem 0 !important;
}

.dnnLogin #msgCounter p {
  margin: 0 !important;
  color: var(--ru-login-muted) !important;
  font-size: 0.9rem !important;
  font-weight: 700 !important;
}

/* Keep hidden provider state elements hidden */
.dnnLogin #btnSendEmail.hidden,
.dnnLogin #btnSendEmailDisabled.hidden,
.dnnLogin #msgCounter.hidden,
.dnnLogin #valueTimeSpan.hidden,
.dnnLogin #valueMessageSpan.hidden {
  display: none !important;
}

.dnnLogin #btnSendEmailDisabled:not(.hidden) {
  opacity: 0.72;
  box-shadow: none !important;
}

/* =========================================================
   Responsive Login
   ========================================================= */

@media (max-width: 767.98px) {
  body:has(.dnnLogin) .main {
    padding-top: 1.5rem;
    padding-bottom: 3rem;
  }

  .dnnLogin {
    max-width: 100%;
  }

  body .dnnLogin :is(#dnn_ctr_Login_tsLogin_lc, .LoginTabGroup) {
    min-height: 52px !important;
    border-radius: var(--ru-login-radius) var(--ru-login-radius) 0 0 !important;
    overflow-x: auto !important;
  }

  body .dnnLogin :is(#dnn_ctr_Login_tsLogin_lc, .LoginTabGroup) > span.LoginTab,
  body .dnnLogin :is(#dnn_ctr_Login_tsLogin_lc, .LoginTabGroup) > span.LoginTabHover,
  body .dnnLogin :is(#dnn_ctr_Login_tsLogin_lc, .LoginTabGroup) > span.LoginTabSelected,
  .dnnLogin .LoginTab,
  .dnnLogin .LoginTabHover,
  .dnnLogin .LoginTabSelected {
    flex: 1 0 auto !important;
    min-height: 52px !important;
    padding: 0.82rem 0.9rem 1.05rem !important;
    font-size: 0.86rem !important;
    white-space: nowrap !important;
  }

  .dnnLogin .LoginContainerGroup {
    padding: 1.35rem 1.15rem 1.15rem !important;
    border-radius: 0 0 var(--ru-login-radius) var(--ru-login-radius) !important;
  }

  .dnnLogin .dnnFormItem {
    display: block !important;
    margin-bottom: 1rem !important;
  }

  .dnnLogin .dnnLabel,
  .dnnLogin .dnnFormLabel {
    display: block !important;
    margin-bottom: 0.4rem !important;
  }

  .dnnLogin .dnnFormItem > .dnnLabel:empty,
  .dnnLogin .dnnFormItem > .dnnFormLabel:empty,
  .dnnLogin .dnnFormItem > .dnnLabel:has(label:empty),
  .dnnLogin .dnnFormItem > .dnnFormLabel:has(label:empty),
  body .dnnLogin .LoginPanel .dnnFormItem > .dnnLabel:empty,
  body .dnnLogin .LoginPanel .dnnFormItem > .dnnFormLabel:empty,
  body .dnnLogin .LoginPanel .dnnFormItem > .dnnLabel:has(label:empty),
  body .dnnLogin .LoginPanel .dnnFormItem > .dnnFormLabel:has(label:empty) {
    display: none !important;
  }

  .dnnLogin .dnnActions {
    display: grid !important;
    grid-template-columns: 1fr;
    gap: 0.6rem !important;
  }

  .dnnLogin .dnnPrimaryAction,
  .dnnLogin .dnnSecondaryAction,
  .dnnLogin #btnSendEmail,
  .dnnLogin #btnSendEmailDisabled {
    width: 100%;
    min-width: 0;
  }

  .dnnLogin #msgCounter {
    grid-column: auto;
    margin-top: 0 !important;
  }
}

/* Respect reduced-motion preferences */
@media (prefers-reduced-motion: reduce) {
  .dnnLogin .LoginTab,
  .dnnLogin .LoginTabHover,
  .dnnLogin .LoginTabSelected,
  .dnnLogin input[type="text"],
  .dnnLogin input[type="password"],
  .dnnLogin input[type="email"],
  .dnnLogin .dnnPrimaryAction,
  .dnnLogin .dnnSecondaryAction,
  .dnnLogin #btnSendEmail,
  .dnnLogin #btnSendEmailDisabled {
    transition-duration: 0.001ms !important;
  }

  .dnnLogin .dnnPrimaryAction:hover,
  .dnnLogin .dnnPrimaryAction:focus,
  .dnnLogin .dnnSecondaryAction:hover,
  .dnnLogin .dnnSecondaryAction:focus,
  .dnnLogin #btnSendEmail:hover,
  .dnnLogin #btnSendEmail:focus {
    transform: none !important;
  }
}

/* navigation */
.navbar-nav .nav-link {
}

.nav-main .nav-pills li, .nav-main .nav-pills li a {
	text-transform: capitalize !important;
}

.navbar-nav .nav-link[href*="/Demo"], .navbar-nav .nav-link[href*="/demo"] {  
}

.nav-main .nav-pills li a[href*="/Demo"], .nav-main .nav-pills li a[href*="/demo"] {
  background-color: #7AB6B5 !important;
  color: #ffffff !important;
  border-radius: 999px;
  padding: 0.5rem 1rem;
  /*font-weight: 600;
  text-transform: uppercase;*/
  transition: all 0.2s ease-in-out;
  border: 2px solid #ffffff;
}

.nav-main .nav-pills li a[href*="/Demo"]:hover,
.nav-main .nav-pills li a[href*="/Demo"]:focus,
.nav-main .nav-pills li a[href*="/Demo"]:active, 
.nav-main .nav-pills li.active a[href*="/Demo"],
.nav-main .nav-pills li a[href*="/demo"]:hover,
.nav-main .nav-pills li a[href*="/demo"]:focus,
.nav-main .nav-pills li a[href*="/demo"]:active, 
.nav-main .nav-pills li.active a[href*="/demo"]  {
  background-color: #7AB6B5 !important;
  color: #ffffff !important;
  border-color: #2D6A6A;
}

/* runsonUpendo mega-menu promotional cards */
.rou-mega-card {
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    height: 100%;
    padding: 1.25rem;
    color: #1f1f1f;
    background: #f7f5f0;
    border: 1px solid rgba(99, 81, 40, 0.18);
    border-top: 3px solid #b68f3e;
    border-radius: 0.5rem;
}

.rou-mega-card--action {
    background: #ffffff;
}

.rou-mega-card__eyebrow {
    margin-bottom: 0.4rem;
    color: #635128;
    font-size: 0.75rem;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.rou-mega-card__title {
    margin: 0 0 0.6rem;
    color: #1f1f1f;
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1.25;
}

.rou-mega-card__text {
    margin: 0 0 0.9rem;
    color: #4d4d4d;
    font-size: 0.9rem;
    line-height: 1.5;
}

.rou-mega-card__link {
    color: #635128;
    font-size: 0.875rem;
    font-weight: 700;
    text-decoration: none;
}

.rou-mega-card__link:hover,
.rou-mega-card__link:focus {
    color: #1f1f1f;
    text-decoration: underline;
}

.rou-mega-card__button {
    width: 100%;
    margin-top: auto;
    white-space: normal;
    text-align: center;
}

@media (max-width: 991.98px) {
    .rou-mega-card {
        height: auto;
        margin-block: 0.75rem;
    }
}
