/* =========== © 2025 Centroarts.com - https://aipoint.space =========== */

.modal-overlay {
  position: fixed; z-index: 111; inset: 0; display: none; opacity: 0; background: hsl(var(--modal-bg));
  visibility: hidden; transition: opacity 0.3s ease, visibility 0.3s ease;
  overflow: hidden; overflow-y: auto; -webkit-overflow-scrolling: touch;
}

.modal {
  position: relative; pointer-events: all;
  width: 100%; max-width: var(--modal-width);
  color: hsl(var(--c-text));
}

@media (min-width: 768px) {
  html .modal-overlay {
    --modal-overlay-p: 32px;
    --modal-r: 24px;
    --modal-width: 640px;
    --modal-p: 28px;
    --fs-title: 18px;
    --fs-price: 100px;
    --fs-priceinf: 28px;
  }
  .modal-overlay { background-color: var(--modal-overlay); }
  .modal { background: hsl(var(--modal-bg)); border-radius: var(--modal-r); }
  .modal-inner {
    display: flex; justify-content: center; align-items: center;
    width: 100%; min-height: 100%; pointer-events: none;
    padding: var(--modal-overlay-p);
  }
  .modal::after {
    pointer-events: none; content: ""; position: absolute; z-index: 1;
    inset: 0; border-radius: inherit; border: 1px solid; opacity: 0.07;
  }
}

.close-btn {
  position: absolute; z-index: 2; top: 0; right: 0; padding: 20px; width: 64px; height: 64px;
  display: flex; justify-content: center; align-items: center; color: inherit !important;
  background: none; border: none; outline: none; cursor: pointer;
}
.close-btn .ic { opacity: .5; transition: opacity .2s ease; }
.close-btn:hover .ic { opacity: .8; }

.modal-open .modal-overlay { display: block; opacity: 1; visibility: visible; }
.modal-open { overflow: hidden; }

.dialog-head { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding-right: 32px; }
.dialog-title { font-size: var(--fs-title); line-height: 1.5; }
.discount-label {
  font-size: var(--fs-discout); height: 26px; padding: 4px 8px; white-space: nowrap;
  line-height: 18px; border-radius: 13px; background-color: hsla(var(--c-text),0.1); color: hsl(var(--c-text));
}
.dialog-summ { display: flex; align-items: center; }
.dialog-price {
  display: flex; align-items: center; font-size: var(--fs-price); font-weight: 500; line-height: .88;
}
.dialog-summ-cont { margin-left: 32px; font-size: var(--fs-priceinf); line-height: 1.5em; }
.dialog-oldprice, .dialog-profit { display: block; }
.dialog-profit { margin-top: 4px; }

.dialog-oldprice { text-decoration: line-through; opacity: .5; }
.dialog-summ { margin-top: 24px; }

@media (min-height: 570px) {
  .dialog-features { margin-top: 24px; }
  .dialog-features {
    display: grid !important; grid-template-columns: repeat(3, 1fr); gap: 16px;
    padding-left: var(--modal-p); padding-right: var(--modal-p);
    margin-left: calc(var(--modal-p)/-1); margin-right: calc(var(--modal-p)/-1);
    overflow: hidden; overflow-x: auto; -webkit-overflow-scrolling: touch;
  }
  .dialog-features::-webkit-scrollbar { display: none; }
  .dialog-feature {
    font-size: 15px; line-height: 24px;
    min-width: 180px; padding: 20px; border-radius: 20px;
    background-color: hsl(var(--c-text),0.04);
  }
  .dialog-feature-icon {
    position: relative; z-index: 1; width: 48px; height: 48px;
    display: flex; align-items: center; justify-content: center;
    margin-bottom: 12px;
  }
  .dialog-feature-icon .ic { width: 24px; height: 24px; color: inherit; }
  .dialog-feature-icon::before {
    content: ""; position: absolute; inset: 0; opacity: .5;
    border-radius: 50%; padding: 2px; background-image: var(--gradient-v); 
    mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    mask-composite: exclude; 
  }
}




.dialog-group {
  position: relative; z-index: 1; padding: var(--modal-p);
}
.dialog-buttons { display: block; padding: 20px; }

.dialog-info-b { opacity: .7; display: none; }
.dialog-info-a { opacity: .5; }
.dialog-buttons.active .dialog-info-b { display: block; }
.dialog-buttons.active .dialog-info-a { display: none; }
.dialog-buttons.active .btn:not(:hover)::after {
  animation: blinking 1.5s linear infinite;
  will-change: box-shadow;
}
@keyframes blinking {
	0% { box-shadow: 0 0 0 0 hsl(var(--c-primary),0); }
	50% { box-shadow: 0 0 0 4px hsla(var(--c-primary),.5); }
  100% { box-shadow: 0 0 0 8px hsl(var(--c-primary),0); }
}

@media (max-width: 767px) {
  .modal { padding-bottom: 120px; }
  html.dark .dialog-group::after { top: auto; bottom: 0; }
  html.dark .dialog-group::after { width: 768px; transform: translate(-60%, 0%); }
  .dialog-buttons {
    position: fixed; z-index: 20; left: 0; right: 0; bottom: 0; display: block; padding-bottom: 12px;
    background-image: linear-gradient(180deg, hsla(var(--modal-bg), 0) 0px, hsl(var(--modal-bg)) 100%); text-align: center;
  }
  .dialog-buttons .btn { width: 100%; --h-btn: var(--h-btn-lg); }
  .dialog-info-b, .dialog-info-a { font-size: 14px; line-height: 20px; margin-top: 12px; }
}
@media (min-width: 768px) {
  .dialog-group { overflow: hidden; border-top-left-radius: inherit; border-top-right-radius: inherit; }
  .dialog-buttons { border-top: 1px solid hsla(var(--c-text),0.1); padding: var(--modal-p); display: flex; align-items: center; gap: 32px; }
  .dialog-buttons .btn { font-size: 18px; }

  .dialog-info-a, .dialog-info-b { display: none; align-items: center; gap: 16px; min-width: 0; }

  .dialog-buttons:last-child .btn { margin-left: auto; order: 13; }
  .dialog-buttons:last-child .dialog-info-icon { display: block !important; }

  .dialog-buttons.active .dialog-info-a { display: none; }
  .dialog-buttons.active .dialog-info-b, .dialog-buttons:not(.active) .dialog-info-a { display: flex; }
}

.modal > .dialog-checks { padding: var(--modal-p); padding-top: 0; }
.dialog-group .dialog-checks { margin-top: var(--modal-p); }

.dialog-check-item { position: relative; font-size: var(--fs-checkbox); }
.dialog-check-item + .dialog-check-item { margin-top: 16px; }
.dialog-check-item > input { position: absolute; left: 0; top: 0; opacity: 0; pointer-events: none; }
.dialog-check-cont { display: flex; line-height: 20px; }
.dialog-check-text { display: block; opacity: .7; transition: opacity .2s ease; }
.dialog-check-icon {
  display: block; position: relative; z-index: 1; margin-right: 16px; min-width: 20px; width: 20px; height: 20px; cursor: pointer;
}
.dialog-check-icon::before, .dialog-check-icon::after { content: ""; position: absolute; }
.dialog-check-icon::before {
  box-shadow: inset 0 0 0 1px hsl(var(--c-text),0.5); inset: -4px;
  border-radius: 8px; transition: box-shadow .2s ease;
}
.dialog-check-icon::after {
  inset: -2px; opacity: 0; transition: opacity .2s ease;
  mask-image: var(--check-ic); -webkit-mask-image: var(--check-ic);
	mask-size: 100% 100%; -webkit-mask-size: 100% 100%;
  background-color: hsl(var(--c-text-light));
}
.dialog-check-item > input:checked ~ .dialog-check-cont .dialog-check-icon::before { box-shadow: inset 0 0 0 2px hsl(var(--c-primary)), 0 0 0 2px hsla(var(--c-primary),.2); background-color: hsl(var(--c-primary)); }
.dialog-check-item > input:checked ~ .dialog-check-cont .dialog-check-icon::after { opacity: 1; }
.dialog-check-item > input:checked ~ .dialog-check-cont .dialog-check-text { opacity: .9; }

.dialog-check-item > input:not(:checked) ~ .dialog-check-cont .dialog-check-icon::before { animation: checks 1.5s linear infinite; will-change: box-shadow; }

@keyframes checks {
	0%	{ box-shadow: inset 0 0 0 1px hsl(var(--c-primary),0.1); background:transparent; }
	50%	{ box-shadow: inset 0 0 0 3px hsl(var(--c-primary),0.5), 0 0 0 3px hsla(var(--c-primary),.2); background-color: hsl(var(--c-primary),0.3); }
  100%	{ box-shadow: inset 0 0 0 1px hsl(var(--c-primary),0.1);  background:transparent; }
}

.dialog-buttons .btn { font-weight: bold; }

.dialog-buttons:not(.active) .btn { color: hsl(var(--c-text),0.3) !important; }
.dialog-buttons:not(.active) .btn::after {
  background-color: hsl(var(--c-text),0.1) !important;
  backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
}