/* Andrea Strumia ADV – Barra Marketing Dinamica | v1.4.2 */
/* In-flow slot: real document space exists before any scroll interaction.
   The 88px nominal size is 48px controls + 20px vertical padding each side.
   Slot may grow if browser accessibility settings enlarge the controls. */
#asdm-footer-dock {
  display:block;
  box-sizing:border-box;
  width:100%;
  min-height:88px;
  margin:0;
  padding:0;
  background:#121212;
}

#asdm-cta {
  position: fixed;
  left: 50%;
  bottom: 12px;
  bottom: calc(12px + env(safe-area-inset-bottom, 0px));
  width: min(1140px, calc(100% - 24px));
  box-sizing: border-box;
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 9px 10px;
  padding-right: calc(10px + env(safe-area-inset-right, 0px));
  z-index: 9999;
  transform: translateX(-50%);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .18s ease, visibility .18s ease;
  font-family: inherit;
  font-size: 16px;
  line-height: 1.3;
  text-align: left;
}
#asdm-cta.asdm-active { opacity:1; visibility:visible; pointer-events:auto; }
#asdm-cta .asdm-copy {
  display: flex;
  flex: 1 1 auto;
  align-items: center;
  gap: 12px;
  min-width: 0;
  background: var(--ast-global-color-3, #254b51);
  border-radius: 14px;
  color: white;
  padding: 13px 16px;
  overflow: hidden;
}
#asdm-cta .asdm-headline { color:inherit; font-size:18px; font-weight:800; white-space:nowrap; line-height:1.25; }
#asdm-cta .asdm-subline { color:inherit; font-size:14px; font-weight:400; line-height:1.3; }
#asdm-cta .asdm-actions-band { display:flex; flex:0 0 auto; min-width:0; align-items:stretch; justify-content:center; }
#asdm-cta .asdm-actions { display:flex; flex:0 0 auto; align-items:stretch; justify-content:center; gap:10px; min-width:0; }
#asdm-cta .asdm-action {
  appearance:none; -webkit-appearance:none;
  box-sizing:border-box;
  min-height:48px;
  padding:10px 13px;
  border:0;
  border-radius:14px;
  font:700 15px/1.25 -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  color:#fff !important;
  text-decoration:none !important;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  text-align:center;
  white-space:nowrap;
  cursor:pointer;
  box-shadow:0 3px 8px rgba(0,0,0,.12);
  transition:filter .16s ease;
}
#asdm-cta .asdm-action:hover { filter:brightness(1.08); }
#asdm-cta .asdm-action:focus-visible { outline:2px solid var(--ast-global-color-0, #111); outline-offset:3px; }
#asdm-cta .asdm-phone { background:var(--ast-global-color-0, #2d5763); }
#asdm-cta .asdm-whatsapp { background:#128C7E; }
#asdm-cta .asdm-email { background:#30343b; }
#asdm-cta .asdm-top { background:var(--ast-global-color-3, #254b51); }
#asdm-cta .asdm-icon { width:20px; height:20px; flex:none; display:block; }
@media (max-width: 1140px) {
  #asdm-cta .asdm-subline { display:none; }
}
@media (max-width: 980px) {
  #asdm-cta .asdm-copy { display:none; }
  #asdm-cta .asdm-actions-band { flex:1 1 100%; }
  #asdm-cta .asdm-actions { flex:1 1 100%; }
  #asdm-cta .asdm-action { flex:1 1 0; min-width:0; }
}
@media (max-width: 630px) {
  #asdm-cta { width:calc(100% - 12px); padding:9px 7px; padding-right:calc(7px + env(safe-area-inset-right, 0px)); }
  #asdm-cta .asdm-actions { gap:7px; }
  #asdm-cta .asdm-action { padding:10px 7px; }
  #asdm-cta .asdm-action-label { display:none; }
  #asdm-cta .asdm-icon { width:22px; height:22px; }
}
/* Docked = actual normal-flow child of the pre-reserved footer slot.
   NO fixed/absolute, no transform, and no document-height mutation during scroll. */
#asdm-footer-dock #asdm-cta.asdm-docked {
  position:static;
  left:auto;
  bottom:auto;
  width:100%;
  padding:0;
  gap:0;
  transform:none;
}
#asdm-cta.asdm-docked .asdm-copy { display:none; }
#asdm-cta.asdm-docked .asdm-actions-band {
  box-sizing:border-box;
  width:100%;
  flex:1 1 100%;
  padding:20px;
  padding-left:calc(20px + env(safe-area-inset-left, 0px));
  padding-right:calc(20px + env(safe-area-inset-right, 0px));
  background:#121212;
  align-items:center;
}
#asdm-cta.asdm-docked .asdm-actions {
  width:100%;
  max-width:1140px;
  margin-left:auto;
  margin-right:auto;
  flex:1 1 auto;
  justify-content:center;
}
#asdm-contact-modal.asdm-overlay {
  position:fixed; inset:0; box-sizing:border-box;
  height:100vh; height:100dvh;
  display:flex; align-items:center; justify-content:center;
  padding:18px;
  background:rgba(0,0,0,.63);
  z-index:100010;
  opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity .18s ease, visibility .18s ease;
}
#asdm-contact-modal.asdm-open { opacity:1; visibility:visible; pointer-events:auto; }
#asdm-contact-modal .asdm-dialog { width:100%; max-width:780px; height:min(760px, 90vh); height:min(760px, 90dvh); background:#fff; border-radius:14px; overflow:hidden; box-shadow:0 15px 40px rgba(0,0,0,.3); display:flex; flex-direction:column; }
#asdm-contact-modal .asdm-dialog-head { display:flex; align-items:center; justify-content:space-between; background:#30343b; color:#fff; padding:9px 12px 9px 18px; flex:none; font:700 17px/1.4 sans-serif; }
#asdm-contact-modal .asdm-close { background:transparent; border:0; color:inherit; cursor:pointer; font:400 30px/1 sans-serif; min-width:48px; min-height:48px; padding:0; }
#asdm-contact-modal .asdm-close:focus-visible { outline:2px solid #fff; outline-offset:-3px; }
#asdm-contact-modal .asdm-frame { width:100%; flex:1 1 auto; min-height:0; border:0; background:#fff; }
@media (prefers-reduced-motion:reduce) {
  #asdm-cta, #asdm-cta .asdm-action, #asdm-contact-modal { transition:none; }
}

#asdm-contact-modal .asdm-frame-region {position:relative; flex:1 1 auto; min-height:0; display:flex;}
#asdm-contact-modal .asdm-frame-region .asdm-frame {width:100%; height:100%;}
#asdm-contact-modal .asdm-loading-label {display:none; position:absolute; inset:0; align-items:center; justify-content:center; background:#fff; color:#333; font-weight:600; margin:0; z-index:1;}
#asdm-contact-modal.asdm-loading .asdm-loading-label {display:flex;}

/* Mirror is activated only if Astra's native arrow exists. Astra keeps its own JS
   handlers/visibility lifecycle; this merely prevents a second visible arrow. */
html.asdm-has-astra-mirror #ast-scroll-top {
  opacity: 0 !important; pointer-events: none !important;
}
