/* CTA buttons, v2.1 (2026-11-12): optical centring + nav specificity fix. Ported from the HOLOS performance-system page's .btn--primary
   (feedback.growthopx.com/s/qoqhqdiofmnceejn/p/ikifjfideg), on Joe's call.
   Glossy green pill, dark semibold label, soft under-glow, brighter halo + arrow nudge on hover.
   Booking CTAs only: Home nav + closing "Work with me", About nav "Work with Benjamin",
   1:1 + Speaking nav "Enquire", 1:1 "Explore coaching" x3.
   Loaded last in each page head so it wins over the page stylesheets. */

@font-face {
  font-family: HolosCta;
  src: url('https://whimsy-palm-s767.here.now/fonts/NimbusSans-Bold.otf') format('opentype');
  font-weight: 600 800;
  font-display: swap;
}

html body .site-nav .site-nav-cta,
html body .close-cta,
html body .about-nav > a[href="#ways"],
html body .nav-enquire,
html body .enquiry-route {
  --cta-ease: cubic-bezier(.22, 1, .36, 1);
  position: relative;
  isolation: isolate;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .7rem;
  width: auto;
  min-height: 0;
  margin-top: 0;
  --py: .9rem;
  --px: 1.75rem;
  /* Nimbus Sans sits caps 0.15em high in its line box; shift down so the letters, not the box, are centred */
  --optical: .15em;
  padding: calc(var(--py) + var(--optical)) var(--px) calc(var(--py) - var(--optical));
  font-family: HolosCta, "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: .94rem;
  font-weight: 600;
  letter-spacing: -.004em;
  line-height: 1.1;
  white-space: nowrap;
  text-decoration: none;
  color: oklch(.16 .03 160);
  -webkit-text-fill-color: oklch(.16 .03 160);
  border: 1px solid transparent;
  border-radius: 999px;
  background: linear-gradient(175deg, oklch(.885 .175 150), oklch(.78 .17 149));
  box-shadow: inset 0 1px 0 0 oklch(1 0 0 / .45), 0 12px 30px -16px oklch(.8 .18 150 / .55);
  cursor: pointer;
  transition: transform .5s var(--cta-ease), background .3s ease, box-shadow .45s ease;
}

/* hover halo */
html body .site-nav .site-nav-cta::after,
html body .close-cta::after,
html body .about-nav > a[href="#ways"]::after,
html body .nav-enquire::after,
html body .enquiry-route::after {
  content: "";
  position: absolute;
  inset: -2px;
  top: -2px; right: -2px; bottom: -2px; left: -2px;
  border-radius: 999px;
  z-index: -1;
  box-shadow: 0 0 44px -4px oklch(.82 .19 150 / .55);
  opacity: 0;
  pointer-events: none;
  transition: opacity .45s ease;
}
html body .site-nav .site-nav-cta::before,
html body .close-cta::before,
html body .about-nav > a[href="#ways"]::before,
html body .nav-enquire::before,
html body .enquiry-route::before { content: none; }

/* arrows: inherit the dark label colour, nudge on hover */
html body .site-nav .site-nav-cta span,
html body .close-cta span,
html body .close-cta .round-arrow,
html body .about-nav > a[href="#ways"] span,
html body .nav-enquire span,
html body .enquiry-route > span {
  width: auto; height: auto;
  padding: 0;
  border: 0; border-radius: 0;
  background: none;
  font-size: 1em;
  color: inherit;
  transition: transform .5s var(--cta-ease);
}

@media (hover: hover) {
  html body .site-nav .site-nav-cta:hover,
  html body .close-cta:hover,
  html body .about-nav > a[href="#ways"]:hover,
  html body .nav-enquire:hover,
  html body .enquiry-route:not(:disabled):hover {
    background: linear-gradient(175deg, oklch(.915 .18 150), oklch(.82 .175 149));
  }
  html body .site-nav .site-nav-cta:hover::after,
  html body .close-cta:hover::after,
  html body .about-nav > a[href="#ways"]:hover::after,
  html body .nav-enquire:hover::after,
  html body .enquiry-route:not(:disabled):hover::after { opacity: 1; }
  html body .site-nav .site-nav-cta:hover span,
  html body .close-cta:hover span,
  html body .close-cta:hover .round-arrow,
  html body .about-nav > a[href="#ways"]:hover span,
  html body .nav-enquire:hover span,
  html body .enquiry-route:not(:disabled):hover > span { transform: translateX(4px); }
}

html body .site-nav .site-nav-cta:focus-visible,
html body .close-cta:focus-visible,
html body .about-nav > a[href="#ways"]:focus-visible,
html body .nav-enquire:focus-visible,
html body .enquiry-route:focus-visible {
  outline: 2px solid oklch(.845 .185 148);
  outline-offset: 3px;
}

/* nav-sized, as the reference's .nav__cta .btn */
html body .site-nav .site-nav-cta,
html body .about-nav > a[href="#ways"],
html body .nav-enquire {
  --py: .7rem;
  --px: 1.15rem;
  font-size: .85rem;
}

/* the closing CTA: hero-sized like the reference's main Apply, page's spacing above */
html body .close-cta { margin-top: 50px; --py: 1.05rem; --px: 2rem; font-size: 1.05rem; }
html body .close-cta .round-arrow { display: inline; }
html body .enquiry-route { align-self: flex-start; margin-top: auto; }

@media (max-width: 767px) {
  html body .close-cta { margin-top: 40px; }
  html body .site-nav .site-nav-cta,
  html body .about-nav > a[href="#ways"],
  html body .nav-enquire { --py: .6rem; --px: 1rem; font-size: .8rem; }
}

@media (prefers-reduced-motion: reduce) {
  html body .site-nav .site-nav-cta, html body .close-cta, html body .about-nav > a[href="#ways"],
  html body .nav-enquire, html body .enquiry-route,
  html body .site-nav .site-nav-cta span, html body .close-cta span, html body .about-nav > a[href="#ways"] span,
  html body .nav-enquire span, html body .enquiry-route > span { transition: none; }
}
