html,
body,
#__nuxt {
  min-height: 100%;
}

body {
  margin: 0;
  font-family: "IBM Plex Sans", "Segoe UI", sans-serif;
  color: var(--bs-body-color);
  background:
    radial-gradient(circle at 20% -10%, rgba(var(--bs-primary-rgb), 0.18), transparent 42%),
    radial-gradient(circle at 90% 10%, rgba(var(--bs-warning-rgb), 0.12), transparent 35%),
    var(--bs-body-bg);
}

.site-shell {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

.cms-card {
  background: var(--bs-tertiary-bg);
  border-radius: 1rem;
  border: 1px solid var(--bs-border-color-translucent);
  box-shadow: 0 8px 24px rgba(var(--bs-emphasis-color-rgb), 0.08);
  overflow: hidden;
}

.cms-card__body {
  line-height: 1.75;
  color: var(--bs-body-color);
}

.cms-card__body h2,
.cms-card__body h3 {
  margin-top: 1.4em;
}

.navbar .navbar-cta {
  color: var(--bs-navbar-color);
  border-color: var(--bs-navbar-color);
}

.navbar .navbar-cta:hover,
.navbar .navbar-cta:focus-visible {
  color: var(--bs-navbar-hover-color);
  border-color: var(--bs-navbar-hover-color);
}

.navbar .navbar-cta--solid {
  background-color: var(--bs-navbar-color);
  color: var(--bs-primary);
}

.navbar .navbar-cta--solid:hover,
.navbar .navbar-cta--solid:focus-visible {
  background-color: var(--bs-navbar-hover-color);
  color: var(--bs-primary);
}

.theme-switcher-menu.dropdown-menu {
  background-color: var(--bs-body-bg);
  border-color: var(--bs-border-color);
  opacity: 1;
  --bs-dropdown-link-color: var(--bs-body-color);
  --bs-dropdown-link-hover-color: var(--bs-emphasis-color);
  --bs-dropdown-link-hover-bg: var(--bs-tertiary-bg);
}

.navbar-language-menu.dropdown-menu {
  background-color: var(--bs-body-bg);
  border-color: var(--bs-border-color);
  opacity: 1;
  --bs-dropdown-link-color: var(--bs-body-color);
  --bs-dropdown-link-hover-color: var(--bs-emphasis-color);
  --bs-dropdown-link-hover-bg: var(--bs-tertiary-bg);
}

.cms-page {
  color: var(--bs-body-color);
}

.cms-page .cms-html {
  line-height: 1.65;
}

.cms-page .cms-html > h1:first-child {
  margin-bottom: 0.5rem;
}

.cms-page .cms-html > h1:first-child + p {
  color: var(--bs-secondary-color);
  margin-bottom: 1.5rem;
}

.cms-page .cms-html a.btn {
  white-space: nowrap;
}

/* Better contrast for highlighted sections coming from CMS */
.cms-page .cms-html .bg-primary,
.cms-page .cms-html [style*='background-color: var(--bs-primary)'] {
  color: var(--bs-light) !important;
}

.cms-page .cms-html .bg-primary h1,
.cms-page .cms-html .bg-primary h2,
.cms-page .cms-html .bg-primary h3,
.cms-page .cms-html .bg-primary p,
.cms-page .cms-html .bg-primary .lead {
  color: inherit !important;
}

/* Home page: align image blocks with text height */
.cms-page--home .cms-html .row {
  align-items: center;
}

.cms-page--home .cms-html .col-lg-6.mt-5.mt-lg-0 img,
.cms-page--home .cms-html > section:nth-of-type(2) .container > img,
.cms-page--home .cms-html .row.g-0 > [class*='col-'] > img {
  width: 100%;
  max-height: clamp(240px, 34vw, 380px);
  object-fit: contain !important;
  display: block;
  margin: 0 auto;
}

.cms-page--home .cms-html .card .card-body > .mb-3 img {
  width: 22px !important;
  height: 22px;
  max-height: 22px;
  object-fit: contain !important;
  display: inline-block;
}

/* Pricing page: keep cards similar to original layout */
.cms-page--pricing .cms-html {
  max-width: 1080px;
  margin: 0 auto;
}

.cms-page--pricing .cms-html .card,
.cms-page--pricing .cms-html .alert {
  border-radius: 0.5rem;
}

.cms-page--pricing .cms-html section:nth-of-type(4) .col-md-6 .card-body h5.h6::before {
  margin-right: 0.45rem;
  color: var(--bs-primary);
  font-weight: 700;
}

.cms-page--pricing .cms-html section:nth-of-type(4) .col-md-6:nth-child(1) .card-body h5.h6::before {
  content: '+';
}

.cms-page--pricing .cms-html section:nth-of-type(4) .col-md-6:nth-child(2) .card-body h5.h6::before {
  content: '>';
}

.cms-page--pricing .cms-html section:nth-of-type(4) .col-md-6:nth-child(3) .card-body h5.h6::before {
  content: '#';
}

.cms-page--pricing .cms-html section:nth-of-type(4) .col-md-6:nth-child(4) .card-body h5.h6::before {
  content: '*';
}

.cms-page--product-updates .cms-html .card-header h2.h3::before {
  content: '*';
  display: inline-block;
  margin-right: 0.5rem;
  font-size: 0.9em;
}

.cms-page--product-updates .cms-html ul.list-unstyled li::before {
  content: '✓';
  color: var(--bs-success);
  font-weight: 700;
  margin-right: 0.5rem;
}

.cms-page--product-updates .cms-html .row.g-3 .card-body h4.h6::before {
  content: '+';
  color: var(--bs-primary);
  margin-right: 0.4rem;
}

.cms-page--product-updates .cms-html .list-group-item::before {
  content: '#';
  color: var(--bs-primary);
  margin-right: 0.5rem;
}

/* Demo page: strict one-column form like original */
.cms-page--demo .cms-html {
  max-width: 760px;
  margin: 0 auto;
}

.cms-page--demo .cms-html .row {
  --bs-gutter-x: 0;
}

.cms-page--demo .cms-html .col,
.cms-page--demo .cms-html [class*='col-'] {
  flex: 0 0 100%;
  max-width: 100%;
}

/* Blog list: card grid on desktop, single column on mobile */
.cms-page--blog .cms-html section.mt-4 {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
}

.liveinternet-icon {
  width: 26px;
  height: 26px;
  border: 0;
  filter: grayscale(100%);
  opacity: 0.8;
  transition: filter 0.2s ease, opacity 0.2s ease;
}

.liveinternet-icon:hover {
  opacity: 1;
}

.cms-page--blog .cms-html .card {
  margin: 0;
  border-radius: 0.5rem;
}

@media (min-width: 992px) {
  .cms-page--blog .cms-html section.mt-4 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.cookie-revoke-point {
  display: none !important;
}

.announcements-container {
  position: relative;
  z-index: 9998;
}

.announcements-container .alert {
  border-radius: 0;
  border: none;
  margin-bottom: 0;
}

.announcement-item {
  animation: announcement-enter 280ms ease-out;
}

@keyframes announcement-enter {
  from {
    opacity: 0;
    transform: translateY(-10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (prefers-reduced-motion: reduce) {
  .announcement-item {
    animation: none;
  }
}

.cookie-consent-banner {
  position: fixed;
  bottom: -200px;
  left: 0;
  right: 0;
  background-color: white;
  border-top: 1px solid #dee2e6;
  box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1);
  z-index: 9999;
  transition: bottom 0.3s ease-in-out;
}

.cookie-consent-modal {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 10000;
  width: 100%;
  height: 100%;
  overflow: auto;
  background-color: rgba(0, 0, 0, 0.5);
}

.login-shell {
  background: transparent;
  --awe-login-shell-padding-top: 0;
  --awe-login-shell-padding-bottom: 0;
}

.login-shell .login-card {
  max-width: 560px;
}

.login-shell .form-control,
.login-shell .form-select,
.login-shell .input-group .btn,
.login-shell .btn-primary {
  height: 46px;
}

.login-shell .input-group .btn {
  min-width: 96px;
}

.cookie-consent-banner.show {
  bottom: 0;
}

.cookie-consent-modal .modal-dialog {
  margin: 3rem auto;
  max-width: 600px;
}

.cookie-consent-modal .modal-content {
  background-color: #fff;
  border-radius: 0.75rem;
  overflow: hidden;
  box-shadow: 0 1.25rem 3rem rgba(0, 0, 0, 0.15);
}

.cookie-consent-modal .modal-header {
  padding: 1.25rem 1.25rem 0.75rem;
}

.cookie-consent-modal .modal-body {
  padding: 1rem 1.25rem 1rem;
}

.cookie-consent-modal .modal-footer {
  padding: 0.75rem 1.25rem 1.25rem;
}

.cookie-consent-modal .modal-footer .btn + .btn {
  margin-left: 0.5rem;
}
