/* Page loading styles */
.page-loading {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 100%;
    -webkit-transition: all .4s .2s ease-in-out;
    transition: all .4s .2s ease-in-out;
    background-color: #fff;
    opacity: 0;
    visibility: hidden;
    z-index: 9999;
}
[data-bs-theme="dark"] .page-loading {
    background-color: #121519;
}
.page-loading.active {
    opacity: 1;
    visibility: visible;
}
.page-loading-inner {
    position: absolute;
    top: 50%;
    left: 0;
    width: 100%;
    text-align: center;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
    -webkit-transition: opacity .2s ease-in-out;
    transition: opacity .2s ease-in-out;
    opacity: 0;
}
.page-loading.active > .page-loading-inner {
    opacity: 1;
}
.page-loading-inner > span {
    display: block;
    font-family: "Inter", sans-serif;
    font-size: 1rem;
    font-weight: normal;
    color: #6f788b;
}
[data-bs-theme="dark"] .page-loading-inner > span {
    color: #fff;
    opacity: .6;
}
.page-spinner {
    display: inline-block;
    width: 2.75rem;
    height: 2.75rem;
    margin-bottom: .75rem;
    vertical-align: text-bottom;
    background-color: #d7dde2;
    border-radius: 50%;
    opacity: 0;
    -webkit-animation: spinner .75s linear infinite;
    animation: spinner .75s linear infinite;
}
[data-bs-theme="dark"] .page-spinner {
    background-color: rgba(255,255,255,.25);
}
@-webkit-keyframes spinner {
    0% {
        -webkit-transform: scale(0);
        transform: scale(0);
    }
    50% {
        opacity: 1;
        -webkit-transform: none;
        transform: none;
    }
}
@keyframes spinner {
    0% {
        -webkit-transform: scale(0);
        transform: scale(0);
    }
    50% {
        opacity: 1;
        -webkit-transform: none;
        transform: none;
    }
}

.subscription-line {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    font-size: clamp(0.75rem, 1.8vw, 1rem); /* адаптивный текст */
  }

  .subscription-line > span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
  }

  .subscription-card {
    padding: 0.5rem;
    font-size: clamp(0.75rem, 1.5vw, 1rem);
  }
  

#lady {
        will-change: opacity, transform;
        transition: all .7s ease-in-out;
        transform: translateY(150px);
        opacity: 0;
      }
      #lady.show {
        transform: none;
        opacity: 1;
      }
      #bubble, #question {
        will-change: opacity, transform;
        transition: all .4s cubic-bezier(.68, -.55, .265, 1.55);
        transform: scale(.8);
        opacity: 0;
      }
      #question {
        transform: scale(.8) rotate(20deg);
      }
      #bubble.show,
      #question.show {
        transform: scale(1) rotate(0);
        opacity: 1;
      }

/* Hover effect */
.card-hover-glow:not(.bg-transparent) {
    transition: transform .2s ease-in-out,border-color .2s ease-in-out,background-color .2s ease-in-out,box-shadow .2s ease-in-out;
}

.card-hover-glow:not(.bg-transparent):hover {
    transform: translateY(-0.25rem);
    box-shadow: 0 .275rem .75rem -0.0625rem rgba(11,15,25,.06),0 .125rem .4rem -0.0625rem rgba(11,15,25,.03);
}

.card-hover-glow:not(.bg-transparent).shadow-sm:hover {
    box-shadow: 0 .275rem 1.25rem rgba(11,15,25,.05),0 .25rem .5625rem rgba(11,15,25,.03) !important;
}

.card-hover-glow:not(.bg-transparent).border-primary:hover {
    box-shadow: 0 .5rem 1.125rem -0.5rem rgba(68,140,116,.9) !important;
}

.card-hover-glow:not(.bg-transparent).shadow:hover {
    box-shadow: 0 .5rem 1.25rem -0.5rem rgba(11,15,25,.05),0 !important;
}

.card-hover-glow {
  --bs-card-icon-hover-color: var(--clr-primary);
}

.card-hover-glow .card-img-overlay {
    transition: opacity .3s ease-in-out;
    opacity: 0;
    z-index: 5;
}

.card-hover-glow .card-icon {
    transition: color .3s ease-in-out;
}

.card-hover-glow:hover .card-icon {
      color: var(--bs-card-icon-hover-color) !important;
}

.card-hover-glow:hover .card-img-overlay {
      opacity: 1;
}

/* Shadows */
.shadow-sm {
    box-shadow: 0 0.275rem 0.75rem -0.0625rem rgb(11 15 25 / 6%), 0 0.125rem 0.4rem -0.0625rem rgb(11 15 25 / 3%) !important;
}

.shadow-primary {
    box-shadow: 0 0.5rem 1.125rem -0.5rem rgb(68 140 116 / 90%) !important;
}

.shadow-secondary {
    box-shadow: 0 .5rem 1.125rem -0.5rem rgba(11,15,25,.15) !important;
}

.shadow-success {
    box-shadow: 0 .5rem 1.125rem -0.5rem rgba(34,197,94,.9) !important;
}

.shadow-danger {
    box-shadow: 0 .5rem 1.125rem -0.5rem rgba(239,68,68,.9) !important;
}

.shadow-warning {
    box-shadow: 0 .5rem 1.125rem -0.5rem rgba(255,186,8,.9) !important;
}

.shadow-info {
    box-shadow: 0 .5rem 1.125rem -0.5rem rgba(76,130,247,.9) !important;
}

.shadow-dark {
    box-shadow: 0 .5rem 1.125rem -0.5rem rgba(11,15,25,.9) !important;
}

.brand-font {
    font-family: 'Lovelace';
}

.brand-color-black {
    color: rgb(41, 43, 50);
}

.brand-color-green {
    color: rgb(142, 160, 118);
}

.brand-color-pink {
    color: rgb(237, 196, 171);
}

.brand-color-grey {
    color: rgb(217, 217, 217);
}

.brand-color-yellow {
    color: rgb(255, 198, 69);
}

/* Light gray text colors */
.text-color-gray-100 {
    color: #f3f6ff;
}

.text-color-gray-200 {
    color: #eff2fc;
}

.text-color-gray-300 {
    color: #e2e5f1;
}

.text-color-gray-400 {
    color: #d4d7e5;
}

/* Medium gray text colors */
.text-color-gray-500 {
    color: #b4b7c9;
}

.text-color-gray-600 {
    color: #9397ad;
}

/* Dark gray text colors */
.text-color-gray-700 {
    color: #565973;
}

.text-color-gray-800 {
    color: #33354d;
}

.text-color-gray-900 {
    color: #0b0f19;
}

.card .price span {
    display: block;
}

.gradient {
    background: linear-gradient(90deg, #EDC4AB 0%, #FFC645 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.clay {
    color: #c99383;
}

.mocha_mousse {
    color: #91563a;
}

.creamy_pastel {
    color: #f7e8d3;
}

.bg-creamy-pastel {
    background-color: #f7e8d3;
  }

.text-mocha-mousse {
    color: #91563a;
  }  


  /* очень светлый мятный фон */
.bg-mint-subtle {
    background-color: #E6F8EF;
  }


/* акцентный мятный цвет для текста и иконок */
.text-mint-emphasis {
    color: #2F8D8A;
}

/* рамка того же мятного оттенка (опционально) */
.border-mint-emphasis {
    border-color: #2F8D8A;
}
  
/* по умолчанию (мобайл) — высота 30vh */
#hero {
    height: 30vh;
  }
  
  /* для экранов ≥768px (md и выше) — высота 60vh */
  @media (min-width: 768px) {
    #hero {
      height: 60vh;
    }
  }

.text-shadow-sm {
    text-shadow: 0 0.125rem 0.25rem rgba(0,0,0,0.1);
  }

.bg-rose-subtle {
    background-color: #F9E5E7;
  }

.bg-brown-subtle {
    background-color: #fcf5e8;
  }

.bg-brown-lite {
    background-color: #fff6e6;
  }

.border-mocha-mousse {
  border-color: #91563a !important;
}

.text-justify {
  text-align: justify !important;
}

.sidebar-sticky-scroll {
  position: sticky;
  top: 100px;          
  max-height: calc(100vh - 120px);
  overflow-y: auto;
  overflow-x: visible;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: #ccc #f5f5f5;
  background: inherit; /* если надо */
}

.sidebar-sticky-scroll::-webkit-scrollbar {
  width: 4px;
  background: #f5f5f5;
}
.sidebar-sticky-scroll::-webkit-scrollbar-thumb {
  background: #ddd;
  border-radius: 4px;
}

  
  
