/* Site Plans NC | Full permit page motion v1
   Page-scoped enhancements: fine detail, not layout redesign.
   Reveal effects are opt-in (only when JS enables them).
   No images/text moved out of layout; reduced motion is respected. */
#nc-premium-permit{--fp-motion-ease:cubic-bezier(.22,1,.36,1);--fp-motion-fast:220ms;--fp-motion-medium:420ms}
#nc-premium-permit :is(.fp-button,.fp4-feature__cta,.fp-link){position:relative;isolation:isolate}
@media(hover:hover) and (pointer:fine){
  /* CTA affordance: subtle lift, crisp focus on decision-making buttons */
  #nc-premium-permit :is(.fp-button,.fp4-feature__cta){
    transition:transform .25s var(--fp-motion-ease),box-shadow .25s ease,background-color .25s ease,border-color .25s ease!important
  }
  #nc-premium-permit :is(.fp-button,.fp4-feature__cta):hover{
    transform:translateY(-3px);box-shadow:0 11px 21px #102A431c
  }
  #nc-premium-permit .fp-link{transition:color .2s ease}
  #nc-premium-permit .fp-link span[aria-hidden="true"],#nc-premium-permit .fp-button span[aria-hidden="true"],#nc-premium-permit .fp4-feature__cta span[aria-hidden="true"]{display:inline-block;transition:transform .25s var(--fp-motion-ease)}
  #nc-premium-permit :is(.fp-link,.fp-button,.fp4-feature__cta):hover span[aria-hidden="true"]{transform:translate(3px,-2px)}
  /* Reassurance blocks: hover accents but no distracting transform */
  #nc-premium-permit .fp2-point{transition:background-color .24s ease,padding-left .3s var(--fp-motion-ease)}
  #nc-premium-permit .fp2-point:hover{background:#F5F8FC;padding-left:10px}
  #nc-premium-permit .fp2-point__number{transition:background-color .25s ease,color .25s ease,border-color .25s ease}
  #nc-premium-permit .fp2-point:hover .fp2-point__number{background:#176DB0;color:#fff;border-color:#176DB0}
  /* Service and project photography: contained detail motion */
  #nc-premium-permit :is(.fp4-feature__visual,.fp4-row__photo,.fp3-project__photo,.fp5-index__visual,.fp-gallery a,.fp2-why__visual figure){overflow:hidden}
  #nc-premium-permit :is(.fp4-feature__visual,.fp4-row__photo,.fp3-project__photo,.fp5-index__visual,.fp-gallery a,.fp2-why__visual figure) img{
    transition:transform .58s var(--fp-motion-ease),filter .45s ease!important
  }
  #nc-premium-permit :is(.fp4-feature__visual,.fp4-row__photo,.fp3-project__photo,.fp5-index__visual,.fp-gallery a,.fp2-why__visual figure):hover img{transform:scale(1.027);filter:saturate(1.055)}
  /* Chapter-style drawing index: scan without changing grid geometry */
  #nc-premium-permit .fp5-index__chapter{transition:background-color .22s ease}
  #nc-premium-permit .fp5-index__chapter:hover{background:#F5F8FC}
  #nc-premium-permit .fp5-index__chapter-title{transition:background-color .24s ease}
  #nc-premium-permit .fp5-index__chapter:hover .fp5-index__chapter-title{background:#fff}
  #nc-premium-permit .fp5-index__sheet{transition:padding-left .26s var(--fp-motion-ease),background-color .26s ease}
  #nc-premium-permit .fp5-index__sheet:hover{padding-left:10px;background:#FFF3E5}
  #nc-premium-permit .fp5-index__sheet code{transition:color .22s ease}
  #nc-premium-permit .fp5-index__sheet:hover code{color:#B64D12}
  #nc-premium-permit :is(.fp3-project,.fp-nc__item,.fp-include,.fp5-index__visual,.fp-formpanel){transition:border-color .26s ease,box-shadow .3s ease}
  #nc-premium-permit :is(.fp3-project,.fp-nc__item,.fp-include):hover{border-color:#176DB0;box-shadow:0 12px 30px #102A4310}
}
/* FAQ toggles: anchored focus affordance and controlled open state */
#nc-premium-permit .fp-faqs details{transition:border-color .22s ease,box-shadow .22s ease}
#nc-premium-permit .fp-faqs details[open]{border-color:#176DB0;box-shadow:0 7px 25px #102A430b}
#nc-premium-permit .fp-faqs details[open] summary{color:#176DB0}
#nc-premium-permit .fp-faqs summary:hover{color:#176DB0}
#nc-premium-permit .fp-faqs details[open] p{animation:fp-motion-faq .3s ease-out both}
@keyframes fp-motion-faq{from{opacity:.64;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
/* Entrances only begin after JS has attached an observer.
   Visible by default if JS fails, avoids trapping text under opacity:0. */
@media(prefers-reduced-motion:no-preference){
  #nc-premium-permit.fp-motion-ready .fp-motion-reveal:not(.fp-motion-in){
    opacity:0;transform:translate3d(0,19px,0);
  }
  #nc-premium-permit.fp-motion-ready .fp-motion-reveal{
    transition:opacity .62s var(--fp-motion-ease),transform .62s var(--fp-motion-ease);
    transition-delay:var(--fp-motion-delay,0ms)
  }
  #nc-premium-permit.fp-motion-ready .fp-motion-reveal.fp-motion-in{
    opacity:1;transform:translate3d(0,0,0)
  }
}
/* Form controls have predictable feedback without visual movement. */
#nc-premium-permit .fp-formpanel :is(input,textarea,select):not([type="hidden"]){transition:border-color .2s ease,box-shadow .2s ease}
#nc-premium-permit .fp-formpanel :is(input,textarea,select):not([type="hidden"]):focus-visible{border-color:#176DB0;box-shadow:0 0 0 3px #D6E3EC}
/* Touch users should not be shown hover effects. */
@media(hover:none){#nc-premium-permit .fp5-index__chapter,#nc-premium-permit .fp5-index__sheet{transition:none}}
/* Accessibility overrides all transforms, decorative animations and reveals. */
@media(prefers-reduced-motion:reduce){
  #nc-premium-permit .fp-motion-reveal{opacity:1!important;transform:none!important;transition:none!important}
  #nc-premium-permit :is(.fp-button,.fp-link,.fp4-feature__cta,.fp2-point,.fp2-point__number,.fp3-project,.fp5-index__chapter,.fp5-index__sheet,.fp-faqs details,.fp-faqs p,.fp4-row__photo img,.fp4-feature__visual img,.fp-gallery img){animation:none!important;transition:none!important;transform:none!important}
}
