/* ═══════════════════════════════════════════════════════════════
   MULTIFAMILY TOP SECURITY — Police Effects & Advanced Animations
   ═══════════════════════════════════════════════════════════════ */

/* ── Police light bar keyframes ─────────────────────────────── */
@keyframes police-blue-red {
  0%,45%   { background:rgba(37,99,235,0.95); box-shadow:0 0 28px 8px rgba(37,99,235,0.7),0 0 60px 16px rgba(37,99,235,0.3); }
  50%,95%  { background:rgba(220,38,38,0.95); box-shadow:0 0 28px 8px rgba(220,38,38,0.7),0 0 60px 16px rgba(220,38,38,0.3); }
  100%     { background:rgba(37,99,235,0.95); box-shadow:0 0 28px 8px rgba(37,99,235,0.7),0 0 60px 16px rgba(37,99,235,0.3); }
}
@keyframes police-red-blue {
  0%,45%   { background:rgba(220,38,38,0.95); box-shadow:0 0 28px 8px rgba(220,38,38,0.7),0 0 60px 16px rgba(220,38,38,0.3); }
  50%,95%  { background:rgba(37,99,235,0.95); box-shadow:0 0 28px 8px rgba(37,99,235,0.7),0 0 60px 16px rgba(37,99,235,0.3); }
  100%     { background:rgba(220,38,38,0.95); box-shadow:0 0 28px 8px rgba(220,38,38,0.7),0 0 60px 16px rgba(220,38,38,0.3); }
}
@keyframes police-strobe-blue { 0%,100%{opacity:1} 50%{opacity:.15} }
@keyframes police-strobe-red  { 0%,100%{opacity:1} 48%{opacity:1} 52%{opacity:.15} 56%{opacity:1} }
@keyframes logo-pulse  { 0%,100%{filter:drop-shadow(0 0 18px rgba(250,204,21,.45)) drop-shadow(0 0 6px rgba(37,99,235,.3))} 50%{filter:drop-shadow(0 0 36px rgba(250,204,21,.8)) drop-shadow(0 0 18px rgba(37,99,235,.6))} }
@keyframes logo-float  { 0%,100%{transform:translateY(0) scale(1)} 50%{transform:translateY(-6px) scale(1.025)} }
@keyframes ray-sweep   { from{transform:rotate(0deg)} to{transform:rotate(360deg)} }
@keyframes slide-in-left  { from{opacity:0;transform:translateX(-60px)} to{opacity:1;transform:translateX(0)} }
@keyframes slide-in-right { from{opacity:0;transform:translateX(60px)}  to{opacity:1;transform:translateX(0)} }
@keyframes fade-up     { from{opacity:0;transform:translateY(40px)} to{opacity:1;transform:translateY(0)} }
@keyframes scanner     { 0%{transform:translateY(-100%);opacity:.7} 100%{transform:translateY(100%);opacity:0} }
@keyframes glow-line   { 0%,100%{opacity:.4;transform:scaleX(.7)} 50%{opacity:1;transform:scaleX(1)} }

/* ── Scroll-reveal base ─────────────────────────────────────── */
.reveal          { opacity:0; transform:translateY(40px); transition:opacity .7s cubic-bezier(.16,1,.3,1), transform .7s cubic-bezier(.16,1,.3,1); }
.reveal.visible  { opacity:1; transform:translateY(0); }
.reveal-left     { opacity:0; transform:translateX(-50px); transition:opacity .7s cubic-bezier(.16,1,.3,1), transform .7s cubic-bezier(.16,1,.3,1); }
.reveal-left.visible  { opacity:1; transform:translateX(0); }
.reveal-right    { opacity:0; transform:translateX(50px); transition:opacity .7s cubic-bezier(.16,1,.3,1), transform .7s cubic-bezier(.16,1,.3,1); }
.reveal-right.visible { opacity:1; transform:translateX(0); }

/* ── Police Divider ─────────────────────────────────────────── */
.police-divider {
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:0;
  padding:0;
  margin:0;
  width:100%;
  overflow:visible;
  z-index:10;
}
.police-divider__bar {
  flex:1;
  height:4px;
  border-radius:2px;
  position:relative;
}
.police-divider__bar--blue {
  animation: police-blue-red 1.1s steps(1) infinite;
}
.police-divider__bar--red {
  animation: police-red-blue 1.1s steps(1) infinite;
}
/* Stacked bar effect — 3 segments per side */
.police-divider__bars {
  flex:1;
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:0 20px;
}
.police-divider__bars .bar-seg {
  height:3px;
  border-radius:2px;
}
.police-divider__bars .bar-seg:nth-child(1) { animation:police-blue-red 1.1s steps(1) infinite; animation-delay:0s; }
.police-divider__bars .bar-seg:nth-child(2) { animation:police-red-blue 1.1s steps(1) infinite; animation-delay:.18s; }
.police-divider__bars .bar-seg:nth-child(3) { animation:police-blue-red 1.1s steps(1) infinite; animation-delay:.36s; }
.police-divider__bars--right .bar-seg:nth-child(1) { animation:police-red-blue 1.1s steps(1) infinite; }
.police-divider__bars--right .bar-seg:nth-child(2) { animation:police-blue-red 1.1s steps(1) infinite; animation-delay:.18s; }
.police-divider__bars--right .bar-seg:nth-child(3) { animation:police-red-blue 1.1s steps(1) infinite; animation-delay:.36s; }

.police-divider__center {
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:10px;
  padding:0 28px;
  flex-shrink:0;
}
.police-divider__logo {
  width:90px;
  height:90px;
  object-fit:contain;
  animation:logo-pulse 2.8s ease-in-out infinite, logo-float 4s ease-in-out infinite;
  filter:drop-shadow(0 0 18px rgba(250,204,21,.45));
}
.police-divider__tagline {
  font-family:'Playfair Display',Georgia,serif;
  font-size:.65rem;
  font-weight:700;
  letter-spacing:.25em;
  text-transform:uppercase;
  color:rgba(250,204,21,.85);
  white-space:nowrap;
}

/* ── Full section divider wrapper ───────────────────────────── */
.section-police-break {
  background:rgba(5,6,12,.97);
  border-top:1px solid rgba(37,99,235,.2);
  border-bottom:1px solid rgba(220,38,38,.2);
  padding:32px 24px;
  position:relative;
  overflow:hidden;
}
.section-police-break::before {
  content:'';
  position:absolute;
  inset:0;
  background:radial-gradient(ellipse 60% 100% at 50% 50%, rgba(37,99,235,.07) 0%, transparent 70%);
  pointer-events:none;
}
/* Ambient glow pulses on bg */
.section-police-break::after {
  content:'';
  position:absolute;
  top:-40px; left:0; right:0; height:3px;
  background:linear-gradient(90deg,rgba(37,99,235,0),rgba(37,99,235,.8) 30%,rgba(220,38,38,.8) 70%,rgba(220,38,38,0));
  animation:glow-line 2.2s ease-in-out infinite;
}

/* ── Bigger header logo ─────────────────────────────────────── */
.site-logo-img {
  width:52px;
  height:52px;
  object-fit:contain;
  transition:transform .3s ease, filter .3s ease;
  filter:drop-shadow(0 0 8px rgba(250,204,21,.3));
}
.site-logo-img:hover {
  transform:scale(1.08);
  filter:drop-shadow(0 0 14px rgba(250,204,21,.6));
}

/* ── Footer logo ────────────────────────────────────────────── */
.footer-logo-img {
  width:68px;
  height:68px;
  object-fit:contain;
  animation:logo-pulse 3.5s ease-in-out infinite;
  filter:drop-shadow(0 0 12px rgba(250,204,21,.35));
}

/* ── Blog author card ───────────────────────────────────────── */
.author-card {
  display:flex;
  align-items:center;
  gap:16px;
  padding:20px 24px;
  background:rgba(15,23,42,.7);
  border:1px solid rgba(37,99,235,.25);
  border-radius:16px;
  margin:40px 0;
  backdrop-filter:blur(8px);
  position:relative;
  overflow:hidden;
}
.author-card::before {
  content:'';
  position:absolute;
  left:0; top:0; bottom:0; width:3px;
  animation:police-blue-red 1.1s steps(1) infinite;
}
.author-card__logo {
  width:56px;
  height:56px;
  object-fit:contain;
  flex-shrink:0;
  animation:logo-pulse 3s ease-in-out infinite;
  filter:drop-shadow(0 0 10px rgba(250,204,21,.4));
}
.author-card__info { flex:1; }
.author-card__name {
  font-family:'Playfair Display',Georgia,serif;
  font-size:1.05rem;
  font-weight:700;
  color:#fff;
  display:flex;
  align-items:center;
  gap:8px;
}
.author-card__badge {
  font-size:.6rem;
  font-weight:700;
  letter-spacing:.15em;
  text-transform:uppercase;
  background:rgba(37,99,235,.25);
  color:rgba(147,197,253,1);
  border:1px solid rgba(37,99,235,.4);
  border-radius:20px;
  padding:2px 8px;
}
.author-card__title { font-size:.8rem; color:rgba(148,163,184,.8); margin-top:3px; }

/* ── Scanner effect on hero ─────────────────────────────────── */
.scanner-effect {
  position:absolute;
  inset:0;
  pointer-events:none;
  overflow:hidden;
}
.scanner-effect::after {
  content:'';
  position:absolute;
  left:0; right:0; height:2px;
  background:linear-gradient(90deg,transparent,rgba(37,99,235,.6) 30%,rgba(220,38,38,.6) 70%,transparent);
  animation:scanner 4s linear infinite;
}

/* ── Hover card lift ────────────────────────────────────────── */
.service-card-lift {
  transition:transform .3s cubic-bezier(.16,1,.3,1), box-shadow .3s ease;
}
.service-card-lift:hover {
  transform:translateY(-6px);
  box-shadow:0 20px 40px rgba(0,0,0,.5), 0 0 30px rgba(37,99,235,.15);
}

/* ── Responsive ─────────────────────────────────────────────── */
@media (max-width:640px) {
  .police-divider__logo { width:64px; height:64px; }
  .police-divider__tagline { display:none; }
  .police-divider__bars { padding:0 10px; }
}
