:root{--page-title-display:none;}/* Start custom CSS *//* Homepage header: the shared header (template 56) sits over the hero photo, with the same sizes as on every page (logo 250 / 220 / 190px, header area 92 / 80 / 74px). It stays in the normal document flow, so the WordPress admin bar pushes it down together with the page (no absolute / top:0), and the hero is pulled up under it by exactly the header height. White logo + white menu on a soft navy scrim at the very top only. Inner pages keep the white header. The open mobile menu reads the --sp-menu-* variables set here (white rows on navy; press and precise-pointer hover = darker blue; focus ring white). */
body.elementor-page-12 .elementor-location-header { margin-block-end: -92px; --sp-ink: #FFFFFF; --sp-canvas: #13285A; --sp-divider: rgba(255, 255, 255, 0.24); --sp-menu-bg: #13285A; --sp-menu-fg: #FFFFFF; --sp-menu-on-bg: #0A1A42; --sp-menu-on-fg: #FFFFFF; --sp-menu-ring: #FFFFFF; --sp-menu-ring-on: #FFFFFF; }
@media (max-width: 1024px) { body.elementor-page-12 .elementor-location-header { margin-block-end: -80px; } }
@media (max-width: 767px) { body.elementor-page-12 .elementor-location-header { margin-block-end: -74px; } }
body.elementor-page-12 .elementor-location-header .elementor-element-11fb909f { background: linear-gradient(to bottom, rgba(8, 20, 48, 0.66) 0%, rgba(8, 20, 48, 0.46) 40%, rgba(8, 20, 48, 0.2) 75%, rgba(8, 20, 48, 0) 100%); border-block-end: 0; }
/* Open mobile menu: solid navy header + panel, so the white items stay readable over any slide. */
body.elementor-page-12 .elementor-location-header .elementor-element-11fb909f:has(.elementor-menu-toggle[aria-expanded="true"]) { background: #13285A; }
/* White logo instead of the blue one (both are real images inside the header link). */
body.elementor-page-12 .elementor-location-header [data-id="749d3c14"] { display: none; }
body.elementor-page-12 .elementor-location-header [data-id="3be75d75"] { display: block; }
/* Menu: white underline marker and white toggle icon (text, hover and focus colours follow --sp-ink above). */
body.elementor-page-12 .elementor-location-header .elementor-nav-menu--main .elementor-item::after, body.elementor-page-12 .elementor-location-header .elementor-nav-menu--main .elementor-item::before { background-color: #FFFFFF; }
body.elementor-page-12 .elementor-location-header .elementor-menu-toggle svg { fill: #FFFFFF; }
/* Tablet / mobile: the hero now starts under the header, so the pause button moves below the header area (it sat in the hero's top corner, where the menu button is). */
@media (max-width: 1024px) { body.elementor-page-12 .sph-pause { top: 84px; } }
@media (max-width: 767px) { body.elementor-page-12 .sph-pause { top: 78px; } }
@media (min-width: 1025px) {
  /* Hero copy group: its box spans the hero height (to centre the group vertically); only its children take pointer events, so the captions underneath stay clickable. */
  body.elementor-page-12 .elementor-element-731d2a17 { pointer-events: none; }
  body.elementor-page-12 .elementor-element-731d2a17 > * { pointer-events: auto; }
  /* Map: the map column stays in view while the long list scrolls beside it. */
  body.elementor-page-12 .elementor-element-18ae784d { position: sticky; top: 100px; align-self: flex-start; }
}
/* Hero copy: soft shadow so the white text stays legible over the photo / gradient. */
body.elementor-page-12 .elementor-element-731d2a17 :is(h1, h2, p) { text-shadow: 0 1px 16px rgba(8, 18, 48, 0.45); }
/* Place-name ticker: small and quiet. */
body.elementor-page-12 .spt span { font-size: clamp(15px, 1.35vw, 20px) !important; font-weight: 600 !important; }
body.elementor-page-12 .spt i { margin-inline: .9em !important; }
body.elementor-page-12 .spt-track { animation-duration: 70s !important; }
body.elementor-page-12 .elementor-element-7c5d0317 { padding-block: clamp(8px, 1vw, 14px) !important; }
/* Keyframes */
@keyframes spOver { 0% { opacity: 0; transform: scale(1.06); } 3% { opacity: 1; } 25% { opacity: 1; transform: scale(1); } 29% { opacity: 0; transform: scale(1); } 100% { opacity: 0; } }
@keyframes spCapO { 0% { opacity: 0; visibility: hidden; } 3% { opacity: 1; visibility: visible; } 25% { opacity: 1; visibility: visible; } 29% { opacity: 0; visibility: hidden; } 100% { opacity: 0; visibility: hidden; } }
@keyframes spCap1 { 0% { opacity: 0; visibility: hidden; } 4% { opacity: 1; visibility: visible; } 24% { opacity: 1; visibility: visible; } 28% { opacity: 0; visibility: hidden; } 100% { opacity: 0; visibility: hidden; } }
@keyframes spPar { from { transform: scale(1.14) translateY(-4%); } to { transform: scale(1.14) translateY(4%); } }
@keyframes spRise { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: none; } }
@keyframes spIn { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
@keyframes spLift { to { translate: 0 -56px; } }
@keyframes spZoom { to { scale: 1.08; } }
@keyframes spMask { from { clip-path: inset(10% 6% 10% 6%); } to { clip-path: inset(0); } }
@keyframes spSlideIn { from { opacity: 0; translate: 48px 0; } to { opacity: 1; translate: 0 0; } }
@media (prefers-reduced-motion: no-preference) {
  body.elementor-page-12 [data-id="48f389d1"] { animation: spOver 28s linear 7s infinite backwards; }
  body.elementor-page-12 [data-id="6880cedb"] { animation: spOver 28s linear 14s infinite backwards; }
  body.elementor-page-12 [data-id="2940d1e0"] { animation: spOver 28s linear 21s infinite backwards; }
  body.elementor-page-12 [data-id="440f123d"] { animation: spCap1 28s linear infinite; }
  body.elementor-page-12 [data-id="76046f15"] { animation: spCapO 28s linear 7s infinite backwards; }
  body.elementor-page-12 [data-id="1dc49de5"] { animation: spCapO 28s linear 14s infinite backwards; }
  body.elementor-page-12 [data-id="6949d00a"] { animation: spCapO 28s linear 21s infinite backwards; }
  body.elementor-page-12 .elementor-element-3c317fea.sp-paused [data-id] { animation-play-state: paused; }
  body.elementor-page-12 .elementor-element-731d2a17 { animation: spIn .9s ease-out both; }
  @supports (animation-timeline: view()) {
    @media (min-width: 1025px) {
      /* Hero: the copy lifts a little and the photos drift larger as the page scrolls. */
      body.elementor-page-12 .elementor-element-731d2a17 { animation: spIn .9s ease-out both, spLift linear both; animation-timeline: auto, scroll(root); animation-range: normal, 0 80vh; }
      body.elementor-page-12 [data-id="a3af284"] { animation: spZoom linear both; animation-timeline: scroll(root); animation-range: 0 100vh; transform-origin: 50% 0; }
      body.elementor-page-12 [data-id="48f389d1"] { animation: spOver 28s linear 7s infinite backwards, spZoom linear both; animation-timeline: auto, scroll(root); animation-range: normal, 0 100vh; transform-origin: 50% 0; }
      body.elementor-page-12 [data-id="6880cedb"] { animation: spOver 28s linear 14s infinite backwards, spZoom linear both; animation-timeline: auto, scroll(root); animation-range: normal, 0 100vh; transform-origin: 50% 0; }
      body.elementor-page-12 [data-id="2940d1e0"] { animation: spOver 28s linear 21s infinite backwards, spZoom linear both; animation-timeline: auto, scroll(root); animation-range: normal, 0 100vh; transform-origin: 50% 0; }
    }
    /* Sections: a single calm reveal per block. */
    body.elementor-page-12 .elementor-element-c4443a1, body.elementor-page-12 .elementor-element-4a715ac7, body.elementor-page-12 .elementor-element-7341d67a, body.elementor-page-12 .elementor-element-31f4be00, body.elementor-page-12 .elementor-element-4694cc2c, body.elementor-page-12 .elementor-element-1fbf8ff5 { animation: spRise linear both; animation-timeline: view(); animation-range: entry 0% entry 55%; }
    body.elementor-page-12 [data-id="61ec658"], body.elementor-page-12 [data-id="53236ea6"] { animation: spSlideIn linear both; animation-timeline: view(); animation-range: entry 0% entry 60%; }
    /* Lions banner: the gentle depth effect runs on desktop only (static on tablet/mobile; reduced-motion is excluded by the outer query). */
    @media (min-width: 1025px) {
      body.elementor-page-12 [data-id="7c50e026"] { animation: spPar linear both; animation-timeline: view(); }
    }
  }
}
/* Map section, tablet/mobile only: title, explanation, region filters, map, selected-work card, works list. */
@media (max-width: 1024px) {
  body.elementor-page-12 .elementor-element-65fe0181 { display: contents; }
  body.elementor-page-12 .elementor-element-61ec658 { order: 1; }
  body.elementor-page-12 .elementor-element-53236ea6 { order: 2; margin-block-start: 16px; }
  body.elementor-page-12 .elementor-element-12afe7bd { order: 3; margin-block-start: 26px; }
  body.elementor-page-12 .elementor-element-18ae784d { order: 4; margin-block-start: 22px; }
  body.elementor-page-12 .elementor-element-1c7f8430 { order: 5; margin-block-start: 30px; }
}
/* Media carousel: link pinned to the bottom of each (equal height) card; touch-friendly; arrows only when slides are out of view (Swiper locks them when everything fits). */
body.elementor-page-12 .elementor-element-905267d6 .spc-link { margin-block-start: auto; }
body.elementor-page-12 .elementor-element-905267d6 .spc-link .elementor-heading-title a { display: inline-flex; align-items: center; min-height: 44px; text-decoration: underline; text-underline-offset: .3em; text-decoration-thickness: 2px; }
body.elementor-page-12 .elementor-element-905267d6 .swiper-button-lock { display: none; }
body.elementor-page-12 .elementor-element-905267d6 :is(.elementor-swiper-button-prev, .elementor-swiper-button-next):focus-visible { outline: 3px solid #13285A; outline-offset: 3px; }
body.elementor-page-12 .elementor-element-905267d6 .spc-link .elementor-heading-title a:focus-visible { outline: 3px solid #13285A; outline-offset: 4px; }/* End custom CSS */