:root{--page-title-display:none;}/* Start custom CSS *//* Bristol hub: hero hub-and-spoke graphic motion. Elements + this CSS, no script. */
#bh-gfx > div { position: relative; }
#bh-gfx > div:nth-child(n+5):not(#bh-core)::after { content: ''; position: absolute; width: 8px; height: 8px; margin: -4px 0px 0px -4px; border-radius: 50%; background: var(--nivo-apricot); box-shadow: 0px 0px 0px 4px rgba(240,163,94,0.22); left: 50%; top: 50%; opacity: 0; }
#bh-ring::before, #bh-ring::after { content: ''; position: absolute; width: auto; top: 0px; right: 0px; bottom: 0px; left: 0px; border-radius: 50%; pointer-events: none; }
#bh-ring::before { border: 2px dashed rgba(59,30,63,0.22); }
#bh-ring::after { background: conic-gradient(from -30deg, var(--nivo-apricot) 0deg 60deg, transparent 60deg 360deg); -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 4px), #000 calc(100% - 3px)); mask: radial-gradient(farthest-side, transparent calc(100% - 4px), #000 calc(100% - 3px)); }
#bh-loop > div::before { content: ''; position: absolute; width: 2px; top: -1px; bottom: -1px; left: -2px; background: var(--nivo-apricot); transform: scaleY(0); transform-origin: center top; }
#bh-pin::after { content: ''; position: absolute; width: auto; top: -12px; right: -12px; bottom: -12px; left: -12px; border-radius: 50%; border: 2px solid var(--nivo-apricot); opacity: 0; }
#bh-map img { transition: transform 0.6s ease; } #bh-map:hover img { transform: scale(1.03); }
#bh-projects::-webkit-scrollbar { height: 4px; } #bh-projects::-webkit-scrollbar-thumb { background: rgba(250,246,241,0.3); border-radius: 4px; }
@media (prefers-reduced-motion: no-preference) {
  @keyframes bhDot5 { 0% { top: 0%; opacity: 0; } 4% { opacity: 1; } 21% { top: 100%; opacity: 1; } 25%, 100% { top: 100%; opacity: 0; } }
  #bh-gfx > div:nth-child(5)::after { animation: bhDot5 8s ease-in-out 0s infinite; }
  @keyframes bhDot6 { 0% { left: 100%; opacity: 0; } 4% { opacity: 1; } 21% { left: 0%; opacity: 1; } 25%, 100% { left: 0%; opacity: 0; } }
  #bh-gfx > div:nth-child(6)::after { animation: bhDot6 8s ease-in-out 2s infinite; }
  @keyframes bhDot7 { 0% { top: 100%; opacity: 0; } 4% { opacity: 1; } 21% { top: 0%; opacity: 1; } 25%, 100% { top: 0%; opacity: 0; } }
  #bh-gfx > div:nth-child(7)::after { animation: bhDot7 8s ease-in-out 4s infinite; }
  @keyframes bhDot8 { 0% { left: 0%; opacity: 0; } 4% { opacity: 1; } 21% { left: 100%; opacity: 1; } 25%, 100% { left: 100%; opacity: 0; } }
  #bh-gfx > div:nth-child(8)::after { animation: bhDot8 8s ease-in-out 6s infinite; }
  @keyframes bhNode { 0%, 100% { border-color: rgba(59,30,63,0.16); box-shadow: 0px 0px 0px 0px rgba(42,20,45,0); transform: translateY(0px); } 4%, 20% { border-color: var(--nivo-apricot); box-shadow: 0px 16px 28px -18px rgba(42,20,45,0.6); transform: translateY(-3px); } 26% { border-color: rgba(59,30,63,0.16); box-shadow: 0px 0px 0px 0px rgba(42,20,45,0); transform: translateY(0px); } }
  #bh-gfx > div:nth-child(1) { animation: bhNode 8s ease-in-out 0s infinite; }
  #bh-gfx > div:nth-child(2) { animation: bhNode 8s ease-in-out 2s infinite; }
  #bh-gfx > div:nth-child(3) { animation: bhNode 8s ease-in-out 4s infinite; }
  #bh-gfx > div:nth-child(4) { animation: bhNode 8s ease-in-out 6s infinite; }
  @keyframes bhCore { 0%, 100% { box-shadow: 0px 0px 0px 0px rgba(240,163,94,0.0); } 50% { box-shadow: 0px 0px 0px 10px rgba(240,163,94,0.16); } }
  #bh-core { animation: bhCore 2s ease-in-out infinite; }
  @keyframes bhSpin { to { transform: rotate(360deg); } }
  #bh-ring::after { animation: bhSpin 12s linear infinite; }
  @keyframes bhRingNode { 0%, 100% { border-color: rgba(59,30,63,0.16); } 3%, 18% { border-color: var(--nivo-apricot); box-shadow: 0px 22px 40px -22px rgba(42,20,45,0.6); } 24% { border-color: rgba(59,30,63,0.16); } }
  @keyframes bhLoopBar { 0%, 100% { transform: scaleY(0); } 4%, 18% { transform: scaleY(1); } 25% { transform: scaleY(0); } }
  #bh-ring > div:nth-child(2) { animation: bhRingNode 12s ease-in-out -0.4s infinite; }
  #bh-loop > div:nth-child(1)::before { animation: bhLoopBar 12s ease-in-out -0.4s infinite; }
  #bh-ring > div:nth-child(3) { animation: bhRingNode 12s ease-in-out 2.6s infinite; }
  #bh-loop > div:nth-child(2)::before { animation: bhLoopBar 12s ease-in-out 2.6s infinite; }
  #bh-ring > div:nth-child(4) { animation: bhRingNode 12s ease-in-out 5.6s infinite; }
  #bh-loop > div:nth-child(3)::before { animation: bhLoopBar 12s ease-in-out 5.6s infinite; }
  #bh-ring > div:nth-child(5) { animation: bhRingNode 12s ease-in-out 8.6s infinite; }
  #bh-loop > div:nth-child(4)::before { animation: bhLoopBar 12s ease-in-out 8.6s infinite; }
  @keyframes bhPulse { 0% { transform: scale(0.5); opacity: 0.9; } 100% { transform: scale(1.6); opacity: 0; } }
  #bh-pin::after { animation: bhPulse 2.4s ease-out infinite; }
}
/* Reduced motion: no scroll-in movement; all content stays visible. */
@media (prefers-reduced-motion: reduce) {
  [data-elementor-type=wp-page] [data-interaction-id]:not(.e-accordion-item-icon-base > *) { opacity: 1 !important; transform: none !important; }
  #bh-map img { transition: none; }
}/* End custom CSS */