/* Quiet, one-time entrances; section backgrounds and page geometry remain still. */
:root { scrollbar-gutter:stable; }
dialog { scrollbar-gutter:stable; overscroll-behavior:contain; }
.lead-dialog .consent-control { margin-top:22px; }
.lead-dialog .privacy-note { margin:10px 0 20px; }
.lead-dialog .lead-mail-note { margin:12px 0 0; text-align:center; }
.form-field :is(input,select):focus {
  border-color:#7e8c72; outline:1px solid #7e8c72; outline-offset:-1px; box-shadow:none;
}
.consent-control input:focus-visible { outline:1px solid #7e8c72; outline-offset:2px; }
@media (forced-colors:active) {
  .form-field :is(input,select):focus { outline:2px solid Highlight; outline-offset:1px; }
}
@media (prefers-reduced-motion: no-preference) {
  .motion-reveal.motion-pending { opacity:0; translate:0 18px; }
  .motion-reveal.motion-visible {
    opacity:1; translate:0 0;
    transition:opacity .85s ease,translate 1.05s cubic-bezier(.25,.65,.3,1);
    transition-delay:calc(100ms + var(--motion-delay,0ms));
  }
  .motion-hero .hero-copy { animation:hero-copy-in 1.1s cubic-bezier(.25,.65,.3,1) .1s both; }
  .motion-hero .hero-visual img { animation:hero-image-in 1.85s cubic-bezier(.25,.65,.3,1) .1s both; }
  @keyframes hero-copy-in { from { opacity:.65; translate:0 12px; } to { opacity:1; translate:0 0; } }
  @keyframes hero-image-in { from { transform:scale(1.035); opacity:.7; } to { transform:scale(1); opacity:1; } }

  dialog[open]::backdrop { animation:backdrop-in .4s ease; }
  details[open] > .practice-detail, .faq-list details[open] > p { animation:detail-in .4s ease-out; }
  @keyframes backdrop-in { from { opacity:0; } to { opacity:1; } }
  @keyframes detail-in { from { opacity:.4; translate:0 5px; } to { opacity:1; translate:0 0; } }

  .button { transition:background .26s,color .26s,border-color .26s,translate .26s ease,box-shadow .26s; }
  .button:not(:disabled):active { translate:0 0; box-shadow:none; }
  .header-call svg,.practice-number .site-icon { transition:transform .26s ease; }
  .desktop-nav a { position:relative; }
  .desktop-nav a::after {
    content:''; position:absolute; left:0; right:0; bottom:-6px; height:1px;
    background:var(--accent); transform:scaleX(0); transform-origin:left;
    transition:transform .28s ease;
  }
  .desktop-nav a:is(:hover,:focus-visible)::after { transform:scaleX(1); }
  @media (hover:hover) and (pointer:fine) {
    .button:not(:disabled):hover { translate:0 -2px; box-shadow:0 5px 14px #11171112; }
    .button:not(:disabled):active { translate:0 0; }
    .header-call:hover svg { transform:rotate(-8deg); }
    .practice-item summary:hover .site-icon { transform:translateY(-2px); }
  }
  @media (max-width:800px) {
    .motion-reveal.motion-visible { transition-duration:.7s,.85s; transition-delay:100ms; }
    .motion-reveal.motion-pending { translate:0 12px; }
    .motion-hero .hero-copy { animation-duration:.85s; }
    .motion-hero .hero-visual img { animation-duration:1.4s; }
  }
  .motion-reveal.motion-instant,.motion-reveal:focus-within {
    opacity:1; translate:none; transition:none;
  }
}
@media (prefers-reduced-motion:reduce),print {
  .motion-reveal { opacity:1!important; translate:none!important; transition:none!important; }
}
