/* Плаваюча CTA, дровер заявки, попап семінару, lightbox, пошук, toast, cookie, back-to-top */

.fab-apply{
  position:fixed;right:24px;bottom:24px;z-index:700;
  background:var(--signal);color:#fff;padding:18px 26px;border-radius:100px;
  display:flex;align-items:center;gap:10px;font-family:var(--f-alt);font-weight:700;font-size:14.5px;
  box-shadow:0 16px 40px -12px rgba(255,75,31,.55);
  transition:transform var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast);
}
.fab-apply:hover{transform:translateY(-4px) scale(1.03);}
.fab-apply svg{width:18px;height:18px;}

.back-to-top{
  position:fixed;right:24px;bottom:96px;z-index:699;width:48px;height:48px;border-radius:50%;
  background:var(--ink);color:var(--paper);display:flex;align-items:center;justify-content:center;
  opacity:0;pointer-events:none;transform:translateY(10px);
  transition:opacity var(--dur-fast), transform var(--dur-fast);
}
.back-to-top.is-visible{opacity:1;pointer-events:auto;transform:none;}
.back-to-top svg{width:18px;height:18px;}

/* --- overlay backdrop базовий --- */
.overlay-backdrop{
  position:fixed;inset:0;background:rgba(14,26,43,.6);backdrop-filter:blur(3px);
  z-index:1200;opacity:0;pointer-events:none;transition:opacity var(--dur-fast);
}
.overlay-backdrop.is-open{opacity:1;pointer-events:auto;}

/* --- дровер заявки (multistep) --- */
.drawer{
  position:fixed;top:0;right:0;bottom:0;width:min(560px,100vw);z-index:1300;
  background:var(--paper);box-shadow:-30px 0 80px -30px rgba(0,0,0,.35);
  transform:translateX(100%);visibility:hidden;transition:transform var(--dur-med) var(--ease-in-out),visibility 0s linear var(--dur-med);
  display:flex;flex-direction:column;
}
.drawer.is-open{transform:none;visibility:visible;}
.drawer-head{
  display:flex;align-items:center;justify-content:space-between;padding:26px var(--gutter) 14px;
  border-bottom:1px solid var(--line);
}
.drawer-head h2{font-size:22px;}
.drawer-close{
  width:42px;height:42px;border-radius:50%;border:1.5px solid var(--line);
  display:flex;align-items:center;justify-content:center;
}
.drawer-close:hover{background:var(--ink);color:var(--paper);border-color:var(--ink);}
.drawer-steps{display:flex;gap:8px;padding:0 var(--gutter);margin-top:16px;}
.drawer-steps span{height:4px;flex:1;border-radius:4px;background:var(--line);}
.drawer-steps span.is-done{background:var(--signal);}
.drawer-body{flex:1;overflow-y:auto;padding:26px var(--gutter) 40px;}
.drawer-step{display:none;flex-direction:column;gap:18px;}
.drawer-step.is-active{display:flex;}
.drawer-footer{padding:18px var(--gutter) 28px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:12px;}

.field{display:flex;flex-direction:column;gap:8px;}
.field label{font-family:var(--f-alt);font-size:13px;font-weight:600;color:var(--ink-soft);}
.field input, .field select, .field textarea{
  padding:14px 16px;border:1.5px solid var(--line);border-radius:12px;background:#fff;font-size:15px;
  transition:border-color var(--dur-fast);
}
.field input:focus, .field select:focus, .field textarea:focus{border-color:var(--signal);}
.field.has-error input, .field.has-error select, .field.has-error textarea{border-color:#c72a10;}
.field .err-msg{font-size:12.5px;color:#c72a10;display:none;}
.field.has-error .err-msg{display:block;}
.program-pick{display:flex;flex-direction:column;gap:10px;}
.program-pick label{
  display:flex;align-items:center;gap:12px;border:1.5px solid var(--line);border-radius:14px;padding:14px 16px;cursor:pointer;
  transition:border-color var(--dur-fast), background var(--dur-fast);
}
.program-pick input{accent-color:var(--signal);}
.program-pick label:has(input:checked){border-color:var(--signal);background:rgba(var(--signal-rgb),.06);}
.confirm-summary{background:var(--paper-dim);border-radius:14px;padding:18px 20px;font-size:14.5px;display:flex;flex-direction:column;gap:6px;}
.confirm-summary b{font-family:var(--f-alt);}

/* --- попап семінару / lightbox: центр екрана --- */
.popup{
  position:fixed;top:50%;left:50%;transform:translate(-50%,-46%);z-index:1300;
  width:min(520px,92vw);background:var(--paper);border-radius:var(--radius-lg);padding:34px;
  opacity:0;pointer-events:none;transition:opacity var(--dur-fast), transform var(--dur-fast) var(--ease-out);
  max-height:88vh;overflow-y:auto;
}
.popup.is-open{opacity:1;pointer-events:auto;transform:translate(-50%,-50%);}
.popup-close{position:absolute;top:18px;right:18px;width:38px;height:38px;border-radius:50%;border:1.5px solid var(--line);display:flex;align-items:center;justify-content:center;}
.popup-close:hover{background:var(--ink);color:#fff;border-color:var(--ink);}
.popup h2{font-size:22px;margin-bottom:6px;padding-right:40px;}
.popup .popup-sub{color:var(--ink-soft);font-size:14px;margin-bottom:20px;}

/* --- lightbox фото --- */
.lightbox{
  position:fixed;inset:0;z-index:1400;background:rgba(14,26,43,.94);
  display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity var(--dur-fast);
}
.lightbox.is-open{opacity:1;pointer-events:auto;}
.lightbox img{max-width:min(90vw,1100px);max-height:82vh;border-radius:14px;object-fit:contain;}
.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);width:52px;height:52px;border-radius:50%;background:rgba(250,246,239,.12);color:#fff;display:flex;align-items:center;justify-content:center;}
.lightbox-nav:hover{background:var(--signal);}
.lightbox-prev{left:20px;}
.lightbox-next{right:20px;}
.lightbox-close{position:absolute;top:24px;right:24px;width:46px;height:46px;border-radius:50%;background:rgba(250,246,239,.12);color:#fff;display:flex;align-items:center;justify-content:center;}
.lightbox-close:hover{background:var(--signal);}
.lightbox-caption{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);color:rgba(250,246,239,.75);font-size:13px;text-align:center;}

/* --- пошук Ctrl+K --- */
.search-overlay{
  position:fixed;inset:0;z-index:1350;background:rgba(var(--paper-rgb),.98);
  opacity:0;pointer-events:none;transition:opacity var(--dur-fast);
  display:flex;flex-direction:column;align-items:center;padding-top:min(14vh,140px);
}
.search-overlay.is-open{opacity:1;pointer-events:auto;}
.search-box{width:min(720px,92vw);}
.search-box input{
  width:100%;background:transparent;border:none;border-bottom:2px solid var(--ink);
  font-family:var(--f-display);font-size:clamp(24px,4vw,42px);padding-block:14px;color:var(--ink);
}
.search-box input:focus{outline:none;}
.search-hint{margin-top:12px;font-size:13px;color:var(--ink-soft);display:flex;justify-content:space-between;}
.search-results{margin-top:26px;display:flex;flex-direction:column;gap:4px;max-height:52vh;overflow-y:auto;}
.search-result{
  padding:16px 18px;border-radius:14px;display:flex;justify-content:space-between;align-items:center;gap:14px;
}
.search-result:hover, .search-result.is-active{background:var(--paper-dim);}
.search-result .sr-title{font-weight:700;}
.search-result .sr-type{font-size:11.5px;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.06em;}
.search-empty{margin-top:26px;color:var(--ink-soft);text-align:center;}
.search-close-btn{position:absolute;top:24px;right:28px;}

/* --- toast --- */
.toast-stack{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);z-index:1500;display:flex;flex-direction:column;gap:10px;width:min(420px,90vw);}
.toast{
  background:var(--ink);color:var(--paper);padding:16px 20px;border-radius:14px;display:flex;gap:12px;align-items:flex-start;
  box-shadow:0 20px 50px -20px rgba(0,0,0,.5);
  opacity:0;transform:translateY(16px);transition:opacity var(--dur-fast), transform var(--dur-fast);
}
.toast.is-in{opacity:1;transform:none;}
.toast svg{width:20px;height:20px;flex:none;color:var(--signal);margin-top:2px;}
.toast strong{display:block;font-size:14.5px;}
.toast p{font-size:13px;color:rgba(250,246,239,.7);margin-top:2px;}

/* --- cookie --- */
.cookie-bar{
  position:fixed;left:20px;right:20px;bottom:20px;z-index:1450;
  background:var(--ink);color:var(--paper);border-radius:18px;padding:20px 22px;
  display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;
  transform:translateY(140%);transition:transform var(--dur-med) var(--ease-out);
  max-width:640px;margin-inline:auto;
}
.cookie-bar.is-in{transform:none;}
.cookie-bar p{font-size:13.5px;color:rgba(250,246,239,.8);max-width:44ch;}
.cookie-actions{display:flex;gap:10px;}

@media (max-width:640px){
  .drawer{width:100vw;}
  .popup{padding:26px;}
}
