/* Anchors align with the viewport edge. Native keyboard navigation keeps its inset. */
html{scroll-behavior:auto;scroll-padding-top:100px}
.page-main [id]{scroll-margin-top:0!important;scroll-margin-block-start:0!important}

/* Keep navigation and control state responsive to input. */
:where(.header,.page-main,.footer,.mobile-cta) a:not(.discovery-card),
.button{
  transition:color 200ms ease,border-color 200ms ease!important;
}
.nav-disclosure>summary{transition:color 400ms ease!important}

/* Keep form values and disclosure controls immediately available. */
.v-continue,.r-text-action,.r-save,.r-choice-body,.r-check,
.r-note-area,.r-note-content,.r-context-line,.r-summary-list,
.v-dropdowns select,.v-custom-field input,.v-selection strong,
.faq-entry summary,.faq-entry summary::after,
.home-request-stage>summary,.home-request-stage>summary>span:last-child,
.viewer-disclosure>summary,.viewer-disclosure>summary span,
.service-visual>summary,.shift-mark,.shift-gate,.shift-trace,.chat-line{
  transition:none!important;
}
.button,.button:hover,.button:active,.v-continue,.v-continue:hover,
.shift-mark,.chat-mark,.chat-line{transform:none!important}
.shift-trace{stroke-dashoffset:0!important}
.mobile-call{display:flex;flex-direction:column;align-items:flex-start;gap:4px;color:white;font-size:12px;line-height:1.4;font-weight:650;justify-content:center}.mobile-call small{font-size:8px;font-weight:400;color:#B7BDC4}.mobile-call bdi{font-size:12px}

/* Disable the prototype's independent animation controllers. */
.page-reveal,.page-hero-note,.page-visual,.v-reveal,.v-model,.v-continue,
.p-step,.p-copy,.f-reveal,.v-selection,
.r-summary-list dd>span,.s-figure figcaption,.s-image img{
  animation:none!important;
}
.page-reveal,.v-reveal,.p-step,.p-copy,.f-reveal,
.v-selection,.r-summary-list dd>span{
  opacity:1!important;
  transform:none!important;
}

.discovery-card:hover{background:#F5EAE2}
.discovery-card.is-dark:hover{background:#2C302D}

@keyframes seven-reveal{
  from{opacity:.18;translate:0 24px}
  to{opacity:1;translate:0 0}
}
@keyframes seven-hero-image{
  from{scale:1.13;translate:-2% 0}
  to{scale:1;translate:0 0}
}
@keyframes seven-hero-light{
  0%{opacity:0;translate:-64% 0}
  26%{opacity:.9}
  100%{opacity:0;translate:64% 0}
}
@keyframes seven-panel{
  from{opacity:.45;translate:0 8px}
  to{opacity:1;translate:0 0}
}

@media(prefers-reduced-motion:no-preference){
  :root{--motion-out:cubic-bezier(.18,.72,.24,1)}

  .reference-template .hero-copy>:is(.eyebrow,h1,p,.hero-actions),
  :is(.page-catalog-hub,.page-catalog) .catalog-hero :is(.page-kicker,h1,.page-lead,.page-actions){
    animation:seven-reveal 680ms var(--motion-out) backwards;
  }
  .reference-template .hero-copy>h1,.catalog-hero h1{animation-delay:65ms}
  .reference-template .hero-copy>p,.catalog-hero .page-lead{animation-delay:155ms}
  .reference-template .hero-copy>.hero-actions,.catalog-hero .page-actions{animation-delay:245ms}
  .reference-template .hero-image>img{
    animation:seven-hero-image 1550ms var(--motion-out) backwards;
  }
  .reference-template .hero-image::before{
    content:"";
    position:absolute;
    z-index:1;
    inset:0;
    pointer-events:none;
    background:linear-gradient(114deg,transparent 32%,#efb08838 52%,transparent 71%);
    animation:seven-hero-light 1750ms var(--motion-out) both;
  }
  @supports(animation-timeline:view()){
    .reference-template .hero{view-timeline:--seven-hero block}
    .reference-template .hero-image{
      animation:seven-hero-depth linear both;
      animation-timeline:--seven-hero;
      animation-range:exit 0% exit 100%;
    }
    @keyframes seven-hero-depth{to{translate:0 17%}}
  }

  [data-motion-enter]{
    animation:seven-reveal 670ms var(--motion-out) backwards;
  }
  .discovery-card[data-motion-enter]:nth-child(2n){animation-delay:70ms}
  .discovery-card[data-motion-enter]:nth-child(3n){animation-delay:135ms}

  .discovery-card{
    transition:background-color 260ms ease,translate 260ms var(--motion-out),box-shadow 260ms ease;
  }
  .discovery-card .discovery-more{transition:translate 260ms var(--motion-out),color 220ms ease}
  .approach-photo>img{transition:scale 720ms var(--motion-out),filter 480ms ease}
  :is(.page-main,.header,.mobile-cta) .button{
    transition:color 220ms ease,background-color 220ms ease,border-color 220ms ease,
      translate 240ms var(--motion-out),box-shadow 220ms ease!important;
  }
  .discovery-card:focus-visible{
    box-shadow:inset 0 3px var(--accent),0 8px 26px #18131020;
  }
  .discovery-card:active,.button:active{translate:0 2px}

  @media(hover:hover) and (pointer:fine){
    .discovery-card:hover{
      z-index:1;
      translate:0 -5px;
      box-shadow:inset 0 3px var(--accent),0 12px 30px #18131026;
    }
    .discovery-card:hover .discovery-more{translate:-5px 0}
    .approach-photo:hover>img{scale:1.045;filter:saturate(.55)}
    :where(.page-main,.header) .button:hover{translate:0 -2px}
  }

  .header :is(.mobile-nav:not([hidden]),.nav-disclosure[open] .nav-dropdown),
  .faq-entry[open]>.faq-answer,
  .home-intake-wrap[data-intake-step="2"] .r-heading{
    animation:seven-panel 300ms var(--motion-out) backwards;
  }
}

/* The source dock remains visible while the form or other actions are in view. */
@media(max-width:820px){
  .has-mobile-dock .footer{padding-bottom:23px}
  body.has-mobile-dock.is-fixture{padding-bottom:128px}
  body.has-mobile-dock.is-fixture .mobile-cta{bottom:64px}
  body.has-mobile-dock.is-fixture .fixture-banner{height:64px;display:flex;align-items:center;justify-content:center;font-size:10px;line-height:1.8;padding:8px 12px}
  html .mobile-cta{
    display:grid;
    position:fixed;
    inset-inline:0;
    bottom:0;
    z-index:30;
    grid-template-columns:1fr 1.35fr;
    align-items:center;
    gap:8px;
    padding:9px 15px max(9px,env(safe-area-inset-bottom));
    visibility:visible!important;
    opacity:1!important;
    pointer-events:auto!important;
    transform:none!important;
    transition:none!important;
    animation:none!important;
  }
  .has-mobile-dock:not(.is-fixture){padding-bottom:63px}
  .mobile-cta>a{min-height:43px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important}
  :where(.header,.page-main,.footer,.mobile-cta) a:not(.discovery-card),
  .button,.nav-disclosure>summary,.discovery-card{
    transition:none!important;
  }
}
