/* ============================================================
   SAMA — public-side convenience helpers
   ============================================================ */

/* Skip-to-content link (accessible) */
.sn-skip-link{
  position:absolute; top:-100px; left:8px;
  background:#0a0b0c; color:#fff;
  padding:10px 18px; border-radius:8px;
  font-size:13px; font-weight:600;
  text-decoration:none; z-index:99999;
  transition:top .15s ease;
}
.sn-skip-link:focus{ top:8px; }

/* Reading progress bar (top fixed) */
.sn-reading-progress{
  position:fixed; top:0; left:0; right:0;
  height:3px; z-index:9998;
  background:transparent;
  pointer-events:none;
}
.sn-reading-progress .bar{
  height:100%;
  background:linear-gradient(90deg, #d42020, #ff8b8b);
  width:0%;
  transition:width .1s linear;
  box-shadow:0 1px 6px rgba(212,32,32,.4);
}

/* Mobile quick-contact FAB */
.sn-qc{
  position:fixed; right:14px; bottom:64px;
  z-index:9991;
}
.sn-qc-trig{
  width:56px; height:56px; border-radius:50%;
  background:#d42020; color:#fff; border:0;
  cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 12px 30px rgba(212,32,32,.4);
  transition:all .2s cubic-bezier(.22,.61,.36,1);
  animation:sn-qc-pulse 2.4s ease-in-out infinite;
}
@keyframes sn-qc-pulse{
  0%, 100%{ box-shadow:0 12px 30px rgba(212,32,32,.4), 0 0 0 0 rgba(212,32,32,.4); }
  50%{ box-shadow:0 12px 30px rgba(212,32,32,.4), 0 0 0 16px rgba(212,32,32,0); }
}
.sn-qc.is-open .sn-qc-trig{
  transform:rotate(135deg) scale(.9); background:#0a0b0c;
  animation:none;
}
.sn-qc-menu{
  position:absolute; right:0; bottom:68px;
  background:#fff; border-radius:14px;
  box-shadow:0 18px 50px rgba(10,18,32,.18);
  padding:8px;
  display:flex; flex-direction:column;
  min-width:230px;
  border:1px solid #eef0f2;
}
.sn-qc-menu[hidden]{ display:none; }
.sn-qc-menu .qc-item{
  display:flex; align-items:center; gap:12px;
  padding:10px 12px; border-radius:10px;
  text-decoration:none; color:#0a0b0c;
  transition:background .15s ease;
}
.sn-qc-menu .qc-item:hover{ background:#f6f8f7; }
.sn-qc-menu .qc-item .ic{
  width:36px; height:36px; border-radius:50%;
  background:#0a0b0c; color:#fff;
  display:inline-flex; align-items:center; justify-content:center;
  flex-shrink:0;
}
.sn-qc-menu .qc-item .lbl{
  display:flex; flex-direction:column; gap:2px;
  font-size:13px; font-weight:700;
}
.sn-qc-menu .qc-item .lbl small{
  font-size:11px; font-weight:400; color:#7c8385;
}

@media (min-width:1025px){
  .sn-qc{ display:none; }
}

/* On mobile, push existing FAB stack down so they don't overlap */
@media (max-width:1024px){
  .sn-fab-top{ bottom:130px !important; }
  body.sama-admin .sama-fonts-fab{ bottom:194px !important; }
}

/* Print: hide all helpers */
@media print{
  .sn-skip-link, .sn-reading-progress, .sn-qc{ display:none !important; }
}
