/* Copyright © ClickaByte Ltd - All Rights Reserved
  Unauthorized copying of this file, via any medium is strictly prohibited
  Proprietary and confidential
  Written by George Barnes <info@clickabyte.co.uk>, October 2025
*/

/* Base */
*,*::before,*::after{box-sizing:border-box}
html:focus-within{scroll-behavior:smooth}
html.lenis-enabled { scroll-behavior: auto; }
body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,"Apple Color Emoji","Segoe UI Emoji";line-height:1.5;color:#0f172a;background:#fff}
img{max-width:100%;display:block}
a{color:inherit}

:root{
  --cf-primary:#033779; --cf-secondary:#a4daf1;
  --maxw:1750px;--pad:clamp(16px,2vw,28px);--radius:16px;--brand:#0ea5e9;--brand-dark:#0369a1;
  --text-on-dark:#f8fafc;--header-bg:rgba(255,255,255,1);--shadow:0 10px 20px rgba(2,6,23,.08),0 2px 6px rgba(2,6,23,.06);
  --footer-bg:#0f1722;--footer-fg:#cbd5e1;--footer-fg-dim:#94a3b8;--footer-accent:#e2e8f0;--footer-link:#cbe1ff;--footer-link-hover:#fff;--footer-border:#263246;
  --radius-lg:16px;--space-1:.5rem;--space-2:.75rem;--space-3:1rem;--space-4:1.5rem;--space-5:2rem;--contact-clr: #44546a;
}

/* Header */
.site-header{position:fixed;contain: paint;inset:0 0 auto 0;z-index:50;display:flex;align-items:center;justify-content:center;padding-block:.5rem;transition:background .3s ease,backdrop-filter .3s ease,box-shadow .3s ease;background:transparent}
.site-header .inner{width:100%;max-width:var(--maxw);padding-inline:var(--pad);display:flex;align-items:center;gap:16px; padding-left: 0px !important; padding-right: 0px !important;}
.brand{font-weight:700;letter-spacing:.2px;padding-left:30px;}
nav{margin-left:auto;padding-right:30px;}
.nav-list{display:flex;gap:clamp(12px,2vw,24px);list-style:none;padding:0;margin:0}
.nav-list a{font-weight:600;text-decoration:none;color:#fff}
.site-header.is-stuck{background:var(--header-bg);}
.menu-btn{display:none;background:transparent;border:0;padding:8px;border-radius:10px}
.menu-btn:focus-visible{outline:2px solid var(--brand)}
@media (max-width:900px){
  nav{display:none}
  .menu-btn {
  display: inline-grid;
  place-items: center;
}

/* base state: hidden but present */
.drawer {
  position: fixed;
  inset: 64px var(--pad) auto var(--pad);
  border-radius: var(--radius);
  padding: 16px;
  background: var(--header-bg);
  backdrop-filter: blur(6px);
  box-shadow: var(--shadow);
  margin-top: 7em;

  /* animation-related */
  opacity: 0;
  transform: translateY(-8px);
  pointer-events: none;
  visibility: hidden;
  transition:
    opacity 200ms ease-out,
    transform 200ms ease-out;
}

/* open state: fade + slide in */
.drawer.open {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
  visibility: visible;
}

.drawer ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
}

.drawer li + li {
  border-top: 1px solid rgba(148, 163, 184, 0.25);
}

.drawer a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.85rem 0.75rem;
  font-weight: 600;
  font-size: 0.9rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-decoration: none;
  color: #0f172a;
  border-radius: 999px;
  transition:
    background-color 140ms ease-out,
    transform 140ms ease-out;
}

/* chevron on the right */
.drawer a::after {
  content: "›";
  font-size: 0.9rem;
  opacity: 0;
  transform: translateX(-4px);
  transition:
    opacity 140ms ease-out,
    transform 140ms ease-out;
}

/* hover / focus state */
.drawer a:hover,
.drawer a:focus-visible {
  background: rgba(148, 163, 184, 0.14);
  transform: translateY(-1px);
}

.drawer a:hover::after,
.drawer a:focus-visible::after {
  opacity: 1;
  transform: translateX(0);
}

}
/* hide completely on desktop */
@media (min-width: 900px) {
  .drawer {
    display: none;
  }
}

  .hero {
      padding: clamp(48px,10vw,20em);
  }
  .content {
      margin-top: clamp(48px,7em,20em);
      width: 100% !important;
  }
}

/* Hero */
.hero{position:relative;/*min-height:100svh;*/display:grid;place-items:center;overflow:hidden;contain:layout paint style}
.hero-media{position:absolute;inset:0;z-index:-2;contain:paint}
.hero-media .hero-video,
.hero-media img{width:100%;height:100%;object-fit:cover;object-position:center;display:block;position: absolute;inset: 0;transform:translate3d(var(--mx,0),var(--my,0),0) scale(var(--ms,1.03));}

.hero-media .hero-video{will-change: transform; transform:translate3d(var(--mx,0),var(--my,0),0) scale(var(--ms,1.02));backface-visibility:hidden}

.hero::after{content:"";position:absolute;inset:0;z-index:-1;background:transparent;/*background:linear-gradient(180deg,rgba(2,6,23,.55) 0%,rgba(2,6,23,.25) 40%,rgba(2,6,23,.65) 100%)*/}

.hero .content{ width:min(95%, var(--maxw)); color: var(--text-on-dark); text-align:center; padding-inline: var(--pad) }

.eyebrow{ text-transform:uppercase; letter-spacing: .2em; opacity:.9; font-size: clamp(.75rem, 1.6vw, .9rem)}

h1{ margin: .3rem 0 1rem; font-size: clamp(2rem, 6vw, 4rem); line-height: 1.05 }

.lead{ font-size: clamp(1rem, 2.2vw, 1.25rem); max-width: 60ch; margin-inline:auto }
.cta{ margin-top: 1.25rem; display:flex; gap:12px; justify-content:center; flex-wrap:wrap }
.btn{ border:0; border-radius: 999px; padding: .9rem 1.25rem; font-weight:700; text-decoration:none; display:inline-flex; align-items:center; justify-content:center }
.btn-primary{ background: var(--brand); color: white }
.btn-primary:hover{ background: var(--brand-dark) }
.btn-ghost{ background: rgba(255,255,255,.12); color: var(--text-on-dark); backdrop-filter: blur(4px) }

/* Sections */
section{padding:clamp(48px,10vw,96px) var(--pad)}
.container{max-width:var(--maxw);margin-inline:auto}
.grid{display:grid;gap:clamp(16px,3vw,28px)}
@media (min-width:860px){.grid.cols-3{grid-template-columns:repeat(3,1fr)}}

.card{border:1px solid #e2e8f0;border-radius:var(--radius);padding:clamp(16px,2vw,24px);content-visibility:auto;contain-intrinsic-size:300px}
.muted{color:#475569; font-size:24px !important;}

footer{padding:40px var(--pad);background:#0b1220;color:#cbd5e1}

/*@media (prefers-reduced-motion:reduce){
  html:focus-within{scroll-behavior:auto}
  *{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}*/
  /*.hero-media .hero-video{transform:none!important}*/
/*}*/

.prevent-select{-webkit-user-select:none;-ms-user-select:none;user-select:none}

.panel{/*min-height:100svh;*/scroll-margin-top:120px;content-visibility:auto;contain-intrinsic-size:800px}
.panel:first-of-type { content-visibility: visible; }
.short{min-height:50svh}
@media (hover:hover){
  [class~="grow"]{
    --grow-scale:1.03;--grow-duration:220ms;--grow-ease:cubic-bezier(.2,.8,.2,1);--grow-origin:center;
    transform:translateZ(0) scale(1);transform-origin:var(--grow-origin);
    transition:transform var(--grow-duration) var(--grow-ease),box-shadow var(--grow-duration) var(--grow-ease);
  }
  [class~="grow"]:hover,[class~="grow"]:focus-visible,[class~="grow"]:focus-within{transform:scale(var(--grow-scale));z-index:1}
  [class~="grow"]:active{transform:scale(calc(var(--grow-scale) - .03))}
}

h2{font-size:clamp(28px,4vw,48px)}
.srvimg{object-fit:cover}

.site-footer{background:var(--footer-bg);color:var(--footer-fg);font-size:.95rem;line-height:1;padding:var(--space-5) 0}
.site-footer a{color:var(--footer-link);text-decoration:underline;text-underline-offset:2px}
.site-footer a:hover,.site-footer a:focus{color:var(--footer-link-hover);text-decoration-thickness:2px}
.site-footer .container{margin:0 auto}
.footer-inner{display:block}
.footer-top{display:grid;grid-template-columns:2fr .8fr;gap:var(--space-5)}
.footer-col{background:rgba(255,255,255,0.02);border:1px solid rgba(255,255,255,0.04);border-radius:var(--radius-lg);padding:var(--space-4)}
.footer-title{margin:0 0 var(--space-2);font-size:1rem;letter-spacing:.02em;font-weight:600;color:var(--footer-accent)}
.legal p{margin:0 0 var(--space-2);color:var(--footer-fg-dim)}
.contact .label{margin-top:0;color:var(--footer-fg-dim);font-size:.9rem}
.address{color:var(--footer-fg)}
.footer-divider{margin:var(--space-5) 0 var(--space-4);border:0;height:1px;background:var(--footer-border)}
.footer-bottom{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center;justify-content:space-between}
.legal-links{display:flex;gap:var(--space-2);align-items:center}
copyright,.copyright{margin:0;color:var(--footer-fg-dim);font-size:.92rem}
@media (max-width:800px){
  .footer-top{grid-template-columns:1fr;grid-template-areas:"contact" "about"}
  .footer-top>.footer-col:nth-child(1){grid-area:about}
  .footer-top>.footer-col:nth-child(2){grid-area:contact}
  .footer-col{margin:0 auto;text-align:center}
}
@media (max-width:640px){
  .footer-top{grid-template-columns:1fr}
  .footer-col{padding:var(--space-3)}
  .footer-bottom{flex-direction:column;align-items:flex-start;gap:var(--space-1)}
}

.no-cursor,.no-cursor *{cursor:none!important}
.no-cursor input,.no-cursor textarea,.no-cursor [contenteditable]{caret-color:transparent}
.arms{position:relative;min-height:60vh}

:root{
  --nav-ink-dark:#0b1220;
  --nav-ink-light:#f8fafc;
  --aurora-1:#60a5fa;
  --aurora-2:#22d3ee;
  --aurora-3:#34d399;
  --aurora-4:#a78bfa;
}

.nav-list{ gap: clamp(10px,1.2vw,20px) }

/* base again */
.nav-list a{
  position:relative;
  display:inline-block;
  padding:.7rem 1rem;
  border-radius:999px;
  font-weight:700;
  letter-spacing:.02em;
  line-height:1;
  color:rgb(92,92,92);
  text-decoration:none;
  transform:translateZ(0);
  transition: transform .22s cubic-bezier(.2,.8,.2,1), filter .22s, color .22s, opacity .22s;
  will-change:transform,filter;
  opacity:.95;
}

@media (hover:hover){
  .nav-list a:hover,
  .nav-list a:focus-visible{
    transform:translateY(-2px) scale(1.02);
    filter:saturate(1.08);
    opacity:1;
  }
}

/* neon underline */
.nav-list a::after{
  content:"";
  position:absolute;
  left:12px; right:12px; bottom:6px; height:2px;
  border-radius:2px;
  background:
    linear-gradient(90deg,
      transparent 0%,
      var(--aurora-1) 20%,
      var(--aurora-2) 40%,
      var(--aurora-3) 60%,
      var(--aurora-4) 80%,
      transparent 100%);
  background-size:200% 100%;
  transform-origin:center;
  transform:translateY(6px) scaleX(.35);
  opacity:0;
  box-shadow:0 0 10px rgba(255,255,255,.35), 0 0 22px rgba(34,211,238,.25);
  transition:transform .32s cubic-bezier(.2,.8,.2,1), opacity .18s, background-position .6s ease;
}
.nav-list a:hover::after,
.nav-list a:focus-visible::after{
  opacity:1;
  transform:translateY(0) scaleX(1);
  background-position:100% 0;
}

/* pill glow 
.nav-list a::before{
  content:"";
  position:absolute; inset:-3px;
  border-radius:inherit;
  pointer-events:none;
  background:
    radial-gradient(120px 60px at 20% 30%, color-mix(in oklab, var(--aurora-2) 65%, transparent) 0, transparent 60%),
    radial-gradient(140px 80px at 80% 70%, color-mix(in oklab, var(--aurora-4) 55%, transparent) 0, transparent 65%),
    radial-gradient(160px 60px at 50% 50%, color-mix(in oklab, var(--aurora-3) 50%, transparent) 0, transparent 70%);
  filter: blur(16px);
  opacity:0;
  transition: opacity .25s ease;
  z-index:-1;
}*/
.nav-list a:hover::before,
.nav-list a:focus-visible::before{ opacity:.9 }

.nav-list a > .shimmer{
  -webkit-background-clip:text; background-clip:text;
}

@keyframes auroraFloat {
  0%{ transform:translateY(0) }
  50%{ transform:translateY(-1.5px) }
  100%{ transform:translateY(0) }
}
@keyframes hue {
  0%{ filter:hue-rotate(0deg) }
  100%{ filter:hue-rotate(360deg) }
}

.nav-list a[aria-current="page"],
.nav-list a.is-active{
  color:#fff;
  text-shadow:0 1px 12px rgba(255,255,255,.18);
}
.nav-list a[aria-current="page"]::after,
.nav-list a.is-active::after{
  opacity:1; transform:translateY(0) scaleX(1);
  animation: hue 8s linear infinite;
}
.nav-list a[aria-current="page"]::before,
.nav-list a.is-active::before{
  opacity:.95;
  animation: auroraFloat 5s ease-in-out infinite;
}

.nav-list a i{ display:none }
.nav-list a:has(*){}
.nav-list a .comet{ display:none }
.nav-list a{
  background:
    radial-gradient(6px 6px at -12px 50%, #fff 0, rgba(255,255,255,.85) 40%, transparent 60%) no-repeat;
  background-position: -20px 50%;
  transition: background-position .35s cubic-bezier(.2,.8,.2,1);
}
.nav-list a:hover{ background-position: 8px 50% }

.site-header.is-stuck .nav-list a {
  background: none !important;
  color: rgb(92,92,92) !important;
  opacity: 1 !important;
  text-shadow: none !important;
  font-weight: 600;
  letter-spacing: 0;
  padding: 0.9rem 0.4rem;
  border: 0 !important;
  border-radius: 0;
  transform: none !important;
  filter: none !important;
}
.site-header.is-stuck .nav-list a::after{
  background: linear-gradient(90deg, transparent, var(--brand), var(--brand-dark), transparent);
  box-shadow:0 0 10px color-mix(in oklab, var(--brand) 50%, transparent);
}
.site-header .nav-list a::after{
  background: linear-gradient(90deg, transparent, var(--brand), var(--brand-dark), transparent) !important;
  box-shadow:0 0 10px color-mix(in oklab, var(--brand) 50%, transparent);
}
.site-header.is-stuck .nav-list a::before{
  filter: blur(14px) saturate(1.1);
  opacity:.55;
}

.site-header {
  position: sticky; top: 0;
  background: #fff;
  border-bottom: 1px solid #e6e9ef;
  z-index: 50;
}
.site-header .inner {
  max-width: 1400px;
  margin: 0 auto;
  padding: 18px 24px;
  display: flex;
  align-items: center;
  gap: 24px;
}

.nav-list {
  display: flex;
  align-items: center;
  gap: 28px;
  margin-left: 8px;
}

.nav-list li.has-sub > a::after {
  content: "▾";
  margin-left: 6px;
  font-size: .8em;
}

.header-cta {
  display: flex; align-items: center; margin-top:auto; padding-bottom:15px;
}

.button-outline {
  display: inline-flex; align-items: center; justify-content: center;
  height: 44px; padding: 0 18px;
  border: 2px solid #0e2642;
  border-radius: 999px;
  background: #fff; color: #0e2642;
  font-weight: 700;
  text-decoration: none;
  line-height: 1;
}

@media (prefers-reduced-motion:reduce){
  .nav-list a{ transition:none }
  .nav-list a::after{ transition:none; animation:none }
  .nav-list a::before{ transition:none; animation:none }
}

li a {
    border-width:1px;
    border-style:solid;
    border-color:white;
}
.menu-btn {
    margin-left:auto;
    margin-right:30px;
}





.mainnv {
    margin-top:auto;
    padding-bottom:15px;
}

html { scroll-behavior: auto !important; }
html:focus-within { scroll-behavior: auto !important; }

.site-header {
  position: sticky !important;
  top: 0 !important;
  inset: auto !important;
  background: var(--header-bg, #fff);
  border-bottom: 1px solid #e6e9ef;
  z-index: 50;
  contain: none !important;
}

.panel {
  content-visibility: visible !important;
  contain-intrinsic-size: auto !important;
}

.card {
  content-visibility: visible !important;
}

.hero {
  contain: layout style !important;
}

.panel { scroll-margin-top: 0 !important; }

.site-header.is-stuck { backdrop-filter: none !important; }

.site-header.is-stuck .nav-list a {
  transition: color .22s, opacity .22s;
  transform: none !important;
  filter: none !important;
}
.site-header.is-stuck .nav-list a::after {
  transition: opacity .18s, transform .32s;
}

html, body {
  max-width: 100%;
  overflow-x: clip;
}

  .contactbanner {
      width:100%;
      min-height:100px;
      background:var(--contact-clr);
      color:white;
      padding:15px;
  }
  
  .contactbanner h2 {
      color:white;
      text-align:center;
  }
  
  .contactbanner h3 {
      font-weight:500;
      font-size:32px;
      text-align:center;
  }
  
  .banner-cta {
    gap:30px;
    justify-content: center;
    display: flex;
    align-items: center;
    margin-top: auto;
    padding-bottom: 15px;
}

.banner-button-outline {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 44px;
    padding: 0 18px;
    border: 2px solid #0e2642;
    border-radius: 999px;
    background: #fff;
    color: #0e2642;
    font-weight: 700;
    text-decoration: none;
    line-height: 1;
}

.grid .btn {
    margin: 0 auto;
}






/* --- modal --- */
  .cf-modal {
    position: fixed; inset: 0;
    display: none;
    align-items: center; justify-content: center;
    z-index: 9999999 !important;
  }
  .cf-modal[aria-hidden="false"] { display: flex; }

  .cf-modal__backdrop {
    position: absolute; inset: 0;
    background: rgba(15, 23, 42, 0.55);
    backdrop-filter: blur(6px);
    opacity: 0; transition: opacity .2s ease-out;
  }

  .cf-modal__panel {
    position: relative;
    width: min(92vw, 520px);
    margin: 24px;
    border-radius: 20px;
    background: linear-gradient(180deg, rgba(255,255,255,0.82), rgba(255,255,255,0.92));
    box-shadow: 0 20px 60px rgba(2, 6, 23, 0.35);
    border: 1px solid rgba(226, 232, 240, 0.8);
    padding: 24px 24px 20px;
    transform: translateY(10px) scale(.985);
    opacity: 0;
    transition: transform .25s ease, opacity .25s ease;
    will-change: transform, opacity;
  }

  .cf-modal[aria-hidden="false"] .cf-modal__backdrop { opacity: 1; }
  .cf-modal[aria-hidden="false"] .cf-modal__panel {
    opacity: 1; transform: translateY(0) scale(1);
  }

  @media (prefers-reduced-motion: reduce) {
    /*.cf-modal__backdrop, .cf-modal__panel { transition: none !important; }*/
  }

  /* --- panel --- */
  .cf-modal__close {
    position: absolute; top: 10px; right: 10px;
    width: 38px; height: 38px;
    border-radius: 12px; border: 1px solid #e2e8f0;
    background: white; color: #0f172a;
    display: grid; place-items: center;
    cursor: pointer;
  }
  .cf-modal__close:hover { background: #f8fafc; }

  .cf-modal__header { padding-right: 40px; }
  .cf-modal__header h2 {
    margin: 6px 0 2px; font-size: 1.35rem; line-height: 1.2;
    color: #0f172a;
  }
  .cf-modal__sub {
    margin: 0; color: #475569;
    font-size: .95rem;
  }

  .cf-modal__form { display: grid; gap: 16px; margin-top: 16px; }
  .cf-field { display: grid; gap: 6px; }
  .cf-label { font-weight: 600; color: #0f172a; font-size: .95rem; }

  .cf-input {
    width: 100%; padding: 12px 14px; border-radius: 12px;
    border: 1px solid #cbd5e1; background: white; color: #0f172a;
    outline: none;
  }
  .cf-input:focus { border-color: #38bdf8; box-shadow: 0 0 0 4px rgba(56,189,248,.25); }
  .cf-input::placeholder { color: #94a3b8; }

  .cf-submit { width: fit-content; }
  .cf-modal__note {
    margin: 4px 0 0; font-size: .85rem; color: #64748b;
  }
  .cf-link { color: #0ea5e9; text-decoration: none; }
  .cf-link:hover { text-decoration: underline; }

  .cf-modal__status {
    margin-top: 6px; min-height: 1em; font-size: .9rem;
    color: #0f172a;
  }
  
  html.lenis {
      height: auto !important;
    }
    .lenis.lenis-smooth {
      scroll-behavior: auto !important;
    }
    .lenis.lenis-smooth [data-lenis-prevent] {
      overscroll-behavior: contain !important;
    }
    .lenis.lenis-stopped {
      overflow: hidden !important;
    }
  img {pointer-events:none;}
  video {pointer-events:none;}
  
  .hero,
.hero-video,
.site-header,
.contactbanner,
.leaf { will-change: transform; transform: translateZ(0); }
.leaf{contain: layout paint;}

html.scrolling, html.scrolling body { cursor: pointer !important; }
/* If your ripple library renders a visible element, you can hide it too: */
html.scrolling #pointer-ripple-canvas { display:none !important; opacity: 0 !important; pointer-events: none !important; }
html.scrolling #pointer-halo { display:none !important; opacity: 0 !important; pointer-events: none !important; }
html.scrolling #pointer-halo-icon { display:none !important; opacity: 0 !important; pointer-events: none !important; }
html.scrolling #pointer-outline { display:none !important; opacity: 0 !important; pointer-events: none !important; }



/* Massive cut in main-thread work while scrolling */
html.scrolling :where(.hero, .hero *, .cb-reveal) {
  animation-play-state: paused !important;
  transition: none !important;
}

/* Skip rendering below-the-fold big sections during scroll (Chrome/Edge/Opera) */
.stage, .contactbanner {
  content-visibility: auto;
  contain-intrinsic-size: 800px 600px; /* fallback size to prevent jumps */
}

.hero.panel {
  max-height: clamp(300px,50vh,60vh);      /* no more than 2/3 of screen */
  overflow: hidden;      /* crop if anything spills */
  display: flex;
  align-items: center;   /* vertical centering */
  position: relative;
  min-height: max-content;
}

.hero-media {
  position: absolute;
  inset: 0;              /* top:0; right:0; bottom:0; left:0 */
  z-index: -1;           /* sit behind the content */
}

.hero-media img,
.hero-media video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.hero.panel .content {
  position: relative;    /* ensure it’s above the background */
  z-index: 1;
  margin: 0 auto;
  padding: 0rem 1.5rem;  /* tweak to taste */
}

.site-header .nav-list a {
  font-weight: 600;
  letter-spacing: 0;
  padding: 0.9rem 0.4rem;
  border: 0 !important;
  transform: none !important;
  filter: none !important;
}
