/*

	SUNSET GARDENS

*/
footer, #footer { margin-top: 0 !important; }

/* global header */
div.mini-widgets {
    background-color: #3a001e; color: #DFE0DF;
}
	div.mini-widgets.brd-top {
		border-top: none !important;
	}

/* navigation */
#mainMenu > li > a:hover, 
.nav nav-pills.nav-main .dropdown-full-color.dropdown-primary:hover, 
.nav nav-pills.nav-main .dropdown-full-color.dropdown-primary a:hover, 
html header .navbar-collapse .nav-main > ul > li > a:hover {
	color: #ffffff !important;
}
.nav.nav-pills.nav-main .active a, 
.nav-main .nav-pills .active a, 
html header nav ul.nav-main li.dropdown-primary.open > a, html .newHeader.fixedheader nav ul.nav-main li.dropdown-primary.open > a, html .full-header.fixedheader nav ul.nav-main li.dropdown-primary.open > a, html header nav ul.nav-main li.dropdown-primary.active > a, html .newHeader.fixedheader nav ul.nav-main li.dropdown-primary.active > a, html .full-header.fixedheader nav ul.nav-main li.dropdown-primary.active > a, html header nav ul.nav-main li.dropdown-primary:hover > a, html .newHeader.fixedheader nav ul.nav-main li.dropdown-primary:hover > a, html .full-header.fixedheader nav ul.nav-main li.dropdown-primary:hover > a  {
	background: #ffffff !important;
	border: none !important;
	border-bottom: 4px solid #C0362C !important; 
	color: #3a001e !important;
}
	#mainMenu > li.active > a:hover, 
	.nav.nav-pills.nav-main .active a:hover, 
	.nav-main .nav-pills .active a:hover, 
	html header nav ul.nav-main li.active.dropdown-primary.open > a:hover, html .newHeader.fixedheader nav ul.nav-main li.active.dropdown-primary.open > a:hover, html .full-header.fixedheader nav ul.nav-main li.active.dropdown-primary.open > a:hover, html header nav ul.nav-main li.active.dropdown-primary.active > a:hover, html .newHeader.fixedheader nav ul.nav-main li.active.dropdown-primary.active > a:hover, html .full-header.fixedheader nav ul.nav-main li.active.dropdown-primary.active > a:hover, html header nav ul.nav-main li.active.dropdown-primary:hover > a:hover, html .newHeader.fixedheader nav ul.nav-main li.active.dropdown-primary:hover > a:hover, html .full-header.fixedheader nav ul.nav-main li.active.dropdown-primary:hover > a:hover,
	.nav nav-pills.nav-main .active.dropdown-full-color.dropdown-primary:hover, 
	.nav nav-pills.nav-main .active.dropdown-full-color.dropdown-primary a:hover, 
	html header .navbar-collapse .nav-main > ul > li.active > a:hover {
		color: #3a001e !important;
	}
	
/* Home hero */
.hero-overlay {
  position: relative;
}
.hero-overlay::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom,
              rgba(0,0,0,0.4) 0%,
              rgba(0,0,0,0.4) 100%);
  z-index: 1;
}
.hero-overlay .hero-text {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 2;
}
.hero-text {
  background: linear-gradient(
    to right,
    rgba(58, 0, 30, 0.85),
    rgba(58, 0, 30, 0.55)
  );
  padding: 0.5rem 1rem;
  border-radius: 0.25rem;
}

/* LiveForms */
.LiveForm.Default ul.page-break-section, 
.LiveForm.Porto ul.page-break-section {
    box-shadow: none !important;
	border: none !important;
}
.Field-Container-Wide {
	width: 90% !important;
}
.Field-Container-Wide textarea {
	width: 90% !important;
}
.Field-Container-Wide .spancounter {
	display: block;
}

.transparent-bg-white, .sg-testimonial {
  background-color: rgba(255, 255, 255, 0.8) !important; /* white at 70% opacity */
  padding: 1rem !important;
  border-radius: .5rem !important;
}
	.sg-testimonial p {
		background-color: rgba(255, 255, 255, 0.8) !important; /* white at 70% opacity */
		padding: 2rem !important;
		border-radius: .5rem !important;
	}
	
/* general stuff */
.z-1 {
  z-index: 1 !important;
}
.z-2 {
  z-index: 2 !important;
}
.z-900 {
  z-index: 900 !important;
}

.text-primary    { color: #C0362C !important; }
.text-secondary  { color: #A55C00 !important; }
.text-tertiary   { color: #7c7700 !important; }
.text-quaternary { color: #48892B !important; }
.text-h5         { color: #009465 !important; }
.text-h6         { color: #009B9E !important; }

.bg-primary, .bg-bve    { background-color: #C0362C !important; }
.bg-secondary  { background-color: #A55C00 !important; }
.bg-tertiary   { background-color: #7c7700 !important; }
.bg-quaternary { background-color: #48892B !important; }
.bg-h5         { background-color: #009465 !important; }
.bg-h6         { background-color: #009B9E !important; }
.bg-white-translucent {
  background-color: rgba(255, 255, 255, 0.85); /* 85% opaque white */
  border-radius: 0.5rem; /* Optional: soften edges */
}

.text-normalcase {
  text-transform: none !important;
}

.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; }

.shadow-gradient-top {
  position: relative;
  background: #fff; 
  overflow: hidden;
}

.shadow-gradient-top::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  height: 60px; 
  width: 100%;
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0.3), transparent);
  pointer-events: none; 
  z-index: 1;
}

.shadow-gradient-bottom {
  position: relative;
  background: #fff;
  overflow: hidden;
}

.shadow-gradient-bottom::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  height: 60px;
  width: 100%;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.3), transparent);
  pointer-events: none;
  z-index: 1;
}

.btn-emergency-pulse {
  animation: pulse 1.2s infinite;
}

@keyframes pulse {
  0% { box-shadow: 0 0 0 0 rgba(220,53,69, 0.5); }
  70% { box-shadow: 0 0 0 10px rgba(220,53,69, 0); }
  100% { box-shadow: 0 0 0 0 rgba(220,53,69, 0); }
}

.visually-hidden {
  position: absolute;
  left: -10000px;
  top: auto;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.max-w-90 {
  max-width: 90% !important;
  width: 100%;
  height: auto;
}

.max-w-80 {
  max-width: 80% !important;
  width: 100%;
  height: auto;
}

.max-w-75 {
  max-width: 75% !important;
  width: 100%;
  height: auto;
}

.max-w-50 {
  max-width: 50% !important;
  width: 100%;
  height: auto;
}

.max-w-40 {
  max-width: 40% !important;
  width: 100%;
  height: auto;
}

.max-w-25 {
  max-width: 25% !important;
  width: 100%;
  height: auto;
}

a.btn {
	text-decoration: none !important;
}

/* Ensure links inside .small text don't shrink twice */
.small, 
.small a, .small a:hover, .small a:visited, 
.small a:active {
  font-size: 0.875rem !important; /* match Bootstrap's .small size */
  line-height: 1.5;               /* keep good readability */
}

.small a {
  color: inherit;                 /* match surrounding text color */
}


/* =========================================================
   Sunset Gardens Login Page Polish
   Safe portal.css addition only.

   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) {
  --sg-login-primary: #3a001e;
  --sg-login-primary-dark: #250014;
  --sg-login-primary-soft: #f6eef3;
  --sg-login-accent: #C0362C;
  --sg-login-accent-dark: #9e2b24;
  --sg-login-amber: #A55C00;
  --sg-login-olive: #7c7700;
  --sg-login-green: #48892B;
  --sg-login-teal: #009B9E;
  --sg-login-ink: #24161d;
  --sg-login-muted: rgba(36, 22, 29, 0.68);
  --sg-login-border: rgba(58, 0, 30, 0.16);
  --sg-login-border-strong: rgba(58, 0, 30, 0.28);
  --sg-login-surface: #ffffff;
  --sg-login-soft: #fbf7f3;
  --sg-login-soft-2: #f6eee9;
  --sg-login-shadow-sm: 0 0.35rem 1rem rgba(36, 22, 29, 0.08);
  --sg-login-shadow-md: 0 1rem 2.75rem rgba(36, 22, 29, 0.12);
  --sg-login-shadow-lg: 0 1.5rem 4rem rgba(36, 22, 29, 0.14);
  --sg-login-radius: 0.95rem;
  --sg-login-radius-lg: 1.2rem;
  --sg-login-focus: 0 0 0 0.22rem rgba(192, 54, 44, 0.24);
}

/* 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 {
  width: 100%;
  max-width: 980px;
  margin: 0 auto clamp(2rem, 4vw, 4rem);
  color: var(--sg-login-ink);
}

/* 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(--sg-login-border) !important;
  border-bottom: 0 !important;
  border-radius: var(--sg-login-radius-lg) var(--sg-login-radius-lg) 0 0 !important;
  background:
    linear-gradient(180deg, #ffffff, rgba(251, 247, 243, 0.92)) !important;
  box-shadow: var(--sg-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(58, 0, 30, 0.12) !important;
  border-radius: 0 !important;
  color: var(--sg-login-primary) !important;
  background: transparent !important;
  box-sizing: border-box !important;
  cursor: pointer !important;
  font-family: inherit !important;
  font-size: 0.92rem !important;
  font-style: normal !important;
  font-weight: 800 !important;
  font-variant: normal !important;
  letter-spacing: 0.01em !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(58, 0, 30, 0.72) !important;
  background: rgba(246, 238, 243, 0.72) !important;
  box-shadow: inset 0 -1px 0 rgba(58, 0, 30, 0.08) !important;
}

/* Hover tab state, including class-swapped LoginTabHover */
.dnnLogin .LoginTabHover,
.dnnLogin .LoginTab:hover,
.dnnLogin .LoginTab:focus,
.dnnLogin .LoginTab:focus-visible {
  color: var(--sg-login-primary) !important;
  background: #ffffff !important;
  font-size: 0.92rem !important;
  font-weight: 800 !important;
  letter-spacing: 0.01em !important;
  line-height: 1.15 !important;
  padding: 0.95rem 1.35rem 1.15rem !important;
  box-shadow:
    inset 0 -3px 0 rgba(192, 54, 44, 0.72),
    inset 0 0 0 999px rgba(192, 54, 44, 0.055) !important;
  transform: none !important;
}

/* Selected tab */
.dnnLogin .LoginTabSelected,
.dnnLogin .LoginTabSelected:hover,
.dnnLogin .LoginTabSelected:focus,
.dnnLogin .LoginTabSelected:focus-visible {
  color: var(--sg-login-ink) !important;
  background: #ffffff !important;
  font-size: 0.92rem !important;
  font-weight: 850 !important;
  letter-spacing: 0.01em !important;
  line-height: 1.15 !important;
  padding: 0.95rem 1.35rem 1.15rem !important;
  box-shadow: inset 0 -4px 0 var(--sg-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(192, 54, 44, 0.34),
    inset 0 -4px 0 var(--sg-login-accent) !important;
}

/* =========================================================
   Login Panel
   ========================================================= */

.dnnLogin .LoginContainerGroup {
  position: relative;
  margin: 0 !important;
  padding: clamp(1.85rem, 3vw, 2.5rem) !important;
  border: 1px solid var(--sg-login-border) !important;
  border-top: 0 !important;
  border-radius: 0 0 var(--sg-login-radius-lg) var(--sg-login-radius-lg) !important;
  background:
    radial-gradient(circle at top left, rgba(192, 54, 44, 0.1), transparent 18rem),
    radial-gradient(circle at bottom right, rgba(72, 137, 43, 0.08), transparent 18rem),
    linear-gradient(180deg, #ffffff, rgba(251, 247, 243, 0.94)) !important;
  box-shadow: var(--sg-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 {
  float: none !important;
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  color: var(--sg-login-primary) !important;
  font-size: 0.9rem !important;
  font-weight: 800 !important;
  line-height: 1.25;
  text-align: left !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(--sg-login-border) !important;
  border-radius: 0.8rem !important;
  background: #ffffff !important;
  color: var(--sg-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(192, 54, 44, 0.62) !important;
  box-shadow: var(--sg-login-focus) !important;
  outline: none !important;
}

.dnnLogin input::placeholder {
  color: rgba(36, 22, 29, 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(--sg-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(192, 54, 44, 0.42) !important;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.75), rgba(192, 54, 44, 0.11)) !important;
  color: var(--sg-login-primary) !important;
}

.dnnLogin .dnnFormError,
.dnnLogin .dnnFormValidationSummary {
  border: 1px solid rgba(58, 0, 30, 0.28) !important;
  background: rgba(58, 0, 30, 0.07) !important;
  color: var(--sg-login-primary-dark) !important;
}

/* Remember me */
.dnnLogin .dnnLoginRememberMe {
  display: inline-flex !important;
  align-items: center;
  gap: 0.55rem;
  color: var(--sg-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(--sg-login-accent);
}

.dnnLogin .dnnLoginRememberMe label {
  margin: 0 !important;
  color: var(--sg-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(--sg-login-primary), var(--sg-login-accent)) !important;
  color: #ffffff !important;
  box-shadow: 0 0.75rem 1.5rem rgba(58, 0, 30, 0.22) !important;
}

.dnnLogin .dnnPrimaryAction:hover,
.dnnLogin .dnnPrimaryAction:focus,
.dnnLogin #btnSendEmail:hover,
.dnnLogin #btnSendEmail:focus {
  background:
    linear-gradient(135deg, var(--sg-login-accent-dark), var(--sg-login-primary)) !important;
  color: #ffffff !important;
  box-shadow: 0 1rem 2rem rgba(192, 54, 44, 0.25) !important;
  transform: translateY(-1px);
}

/* Secondary actions */
.dnnLogin .dnnSecondaryAction {
  border: 1px solid var(--sg-login-border) !important;
  background: #ffffff !important;
  color: var(--sg-login-primary) !important;
}

.dnnLogin .dnnSecondaryAction:hover,
.dnnLogin .dnnSecondaryAction:focus {
  border-color: var(--sg-login-primary) !important;
  background: var(--sg-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(58, 0, 30, 0.12) !important;
  background: rgba(58, 0, 30, 0.08) !important;
  color: rgba(36, 22, 29, 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(--sg-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(--sg-login-radius) var(--sg-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.82rem !important;
    white-space: nowrap !important;
  }

  .dnnLogin .LoginContainerGroup {
    padding: 1.35rem 1.15rem 1.15rem !important;
    border-radius: 0 0 var(--sg-login-radius) var(--sg-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) {
    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;
  }
}