/* Section-specific accents; entry animations run once, ambient effects pause offscreen. */
.reading-progress { position: absolute; left: 0; bottom: -1px; height: 3px; width: 100%; background: linear-gradient(90deg,#126dca,#37c7f4); transform: scaleX(0); transform-origin: left; pointer-events: none; }
.hero-copy > * { animation: copy-arrive .8s both; }
.hero-copy > :nth-child(2) { animation-delay: .12s; }
.hero-copy > :nth-child(3) { animation-delay: .24s; }
.hero-copy > :nth-child(4) { animation-delay: .36s; }
.hero-copy > :nth-child(5) { animation-delay: .48s; }
.hero-copy > :nth-child(6) { animation-delay: .6s; }
.visual-grid { animation: grid-travel 20s linear infinite; }
.brand-strip.motion-seen .partner { animation: brand-arrive .85s both; }
.brand-strip.motion-seen .partner:nth-child(3) { animation-delay: .15s; }
.brand-strip.motion-seen .partner:nth-child(4) { animation-delay: .3s; }
.partner { transition: color .3s, text-shadow .3s; }
.partner:hover { color: #126dca; text-shadow: 0 4px 18px #2193ee30; }
.section-heading h2, .impact-grid h2, .faq-section h2, .enquiry-guide h2, .values-section h2 { position: relative; }
.section-heading h2::after, .impact-grid h2::after, .faq-section h2::after, .enquiry-guide h2::after, .values-section h2::after {
  content: ''; display: block; width: 42px; height: 3px; margin-top: 18px; border-radius: 2px;
  background: linear-gradient(90deg,#218deb,#5fd5ec); transform-origin: left;
}
.motion-seen h2::after { animation: line-unfold .9s ease both; }
.service-body .icon-box { position: relative; }
.service-body .icon-box::after { content: ''; position: absolute; inset: -4px; border: 1px solid #72bbf580; border-radius: 11px; animation: icon-ripple 4s ease-out infinite; pointer-events: none; }
.service-card:nth-child(2) .icon-box::after { animation-delay: 1s; }
.service-card:nth-child(3) .icon-box::after { animation-delay: 2s; }
.service-body > a:hover span { animation: arrow-launch .55s ease; }
.impact-section { position: relative; overflow: hidden; isolation: isolate; }
.impact-section::before { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(105deg,transparent 30%,#a7d7fd40 50%,transparent 70%); animation: impact-light 12s ease-in-out infinite alternate; }
.stats > div, .about-stats > div { position: relative; }
.stats > div::after { content: ''; position: absolute; left: 0; bottom: -1px; width: 35%; height: 2px; background: #268eef; transform-origin: left; }
.motion-seen .stats > div::after { animation: line-unfold 1.4s ease both; }
.stats > div:nth-child(2)::after { animation-delay: .15s; }
.stats > div:nth-child(3)::after { animation-delay: .3s; }
.stats > div:nth-child(4)::after { animation-delay: .45s; }
.component-card { transition: border-color .35s, box-shadow .35s, background .35s; }
.component-card:hover { border-color: #83bde9; box-shadow: 0 12px 30px #1679db14; background: #edf7ff; }
.component-card:hover .micro-label { color: #126dca; }
.gauge-scale { stroke-dasharray: 146 146; animation: gauge-trace 6s ease-in-out infinite alternate; }
.process-grid article.motion-seen h3 { animation: copy-arrive .65s .15s both; }
.process-grid article.motion-seen p { animation: copy-arrive .65s .3s both; }
.group-art strong { background: linear-gradient(100deg,#126dca 20%,#5cbbf1 45%,#126dca 65%); background-size: 250% 100%; background-clip: text; -webkit-text-fill-color: transparent; animation: heritage-shine 7s ease-in-out infinite alternate; }
.faqs details { position: relative; transition: padding .3s, background .3s; }
.faqs details::before { content: ''; position: absolute; left: -10px; top: 20%; bottom: 20%; width: 2px; background: #218deb; transform: scaleY(0); transform-origin: top; transition: transform .3s; }
.faqs details:hover::before, .faqs details[open]::before { transform: scaleY(1); }
.faqs summary span { transition: transform .3s; }
.cta-section::after { content: ''; position: absolute; top: 0; bottom: 0; width: 25%; left: -35%; background: linear-gradient(90deg,transparent,#ffffff10,transparent); transform: skewX(-20deg); animation: cta-light 12s ease-in-out infinite; pointer-events: none; }
.cta-section.motion-seen .button { animation: copy-arrive .8s .2s both; }
.footer-grid a:not(.footer-brand a) { transition: color .25s; }
.footer-grid a:hover { color: #126dca !important; }
.site-footer.motion-seen .footer-grid > div { animation: copy-arrive .7s both; }
.site-footer.motion-seen .footer-grid > div:nth-child(2) { animation-delay: .12s; }
.site-footer.motion-seen .footer-grid > div:nth-child(3) { animation-delay: .24s; }
.page-hero.motion-seen h1 { animation: copy-arrive .85s both; }
.page-hero.motion-seen p:not(.eyebrow) { animation: copy-arrive .85s .18s both; }
.founder-monogram > span { animation: founder-arrow 5s ease-in-out infinite; }
.group-card:hover .group-glyph { animation: glyph-rotate .7s ease; }
.values-grid article { transition: border-color .3s; }
.values-grid article:hover { border-color: #126dca; }
.values-section.motion-seen .values-grid article { animation: copy-arrive .8s both; }
.values-section.motion-seen .values-grid article:nth-child(2) { animation-delay: .15s; }
.values-section.motion-seen .values-grid article:nth-child(3) { animation-delay: .3s; }
.contact-card strong > span { transition: transform .3s; }
.contact-card:hover strong > span { transform: translate(4px,-4px); }
.map-marker::before { content: ''; position: absolute; inset: -12px; border: 1px solid #288fe280; border-radius: 28px; animation: icon-ripple 4s ease-out infinite; }
.office-section.motion-seen .office-info, .enquiry-guide.motion-seen .enquiry-list article { animation: copy-arrive .8s both; }
.enquiry-guide.motion-seen .enquiry-list article:nth-child(2) { animation-delay: .15s; }
.enquiry-guide.motion-seen .enquiry-list article:nth-child(3) { animation-delay: .3s; }
@keyframes copy-arrive { from { opacity: .25; translate: 0 14px; } to { opacity: 1; translate: 0 0; } }
@keyframes brand-arrive { from { opacity: .3; translate: 0 10px; filter: blur(2px); } to { opacity: 1; translate: 0 0; filter: blur(0); } }
@keyframes line-unfold { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@keyframes grid-travel { to { background-position: 36px 36px; } }
@keyframes icon-ripple { 0%,20% { opacity: 0; transform: scale(.9); } 35% { opacity: .65; } 85%,100% { opacity: 0; transform: scale(1.35); } }
@keyframes arrow-launch { 50% { translate: 3px -3px; } }
@keyframes impact-light { from { translate: -20% 0; } to { translate: 20% 0; } }
@keyframes gauge-trace { from { stroke-dashoffset: 100; } to { stroke-dashoffset: 0; } }
@keyframes heritage-shine { to { background-position: 100% 50%; } }
@keyframes cta-light { 0%,30% { left: -35%; } 85%,100% { left: 110%; } }
@keyframes founder-arrow { 50% { translate: 5px -5px; } }
@keyframes glyph-rotate { 50% { rotate: 15deg; } }
@media (max-width:600px) { .visual-grid, .impact-section::before, .cta-section::after { animation: none; } }
@media (prefers-reduced-motion:reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .process-grid .step-number::after { left: calc(100% - 6px); opacity: 1; }
}
