:root{
  --bg: #FBFCFB;
  --surface: #FFFFFF;
  --surface-2: #F4F7F4;

  --text: #0F1C16;
  --muted: #496158;

  --green-900: #194630;
  --green-700: #5C6B28;
  --gold-600: #B29A1F;
  --yellow-500: #FFDB21;
  --mint-200: #D1E5D2;
  --sage-400: #7C958A;

  --border: rgba(25, 70, 48, 0.14);
  --shadow: 0 10px 30px rgba(15, 28, 22, 0.08);

  --radius: 18px;
  --radius-sm: 14px;

  --container: 1120px;

  --font-body: "Nunito", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  --font-head: "Libre Baskerville", Georgia, "Times New Roman", serif;

  --ease: cubic-bezier(.2,.8,.2,1);
}

*{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
body{
  margin: 0;
  font-family: var(--font-body);
  color: var(--text);
  background: radial-gradient(1200px 600px at 50% -100px, rgba(255,219,33,0.14), transparent 60%),
              radial-gradient(900px 600px at 90% 20%, rgba(209,229,210,0.45), transparent 55%),
              var(--bg);
}
img{ max-width: 100%; display: block; }
a{ color: inherit; text-decoration: none; }

.container{
  width: min(var(--container), calc(100% - 40px));
  margin-inline: auto;
}

.mt-16{ margin-top: 16px; }
.muted{ color: var(--muted); }
.lead{
  font-size: 1.06rem;
  line-height: 1.65;
  max-width: 60ch;
}

.badge{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  border: 1px solid var(--border);
  background: rgba(255,255,255,0.7);
  border-radius: 999px;
  backdrop-filter: blur(8px);
  font-size: 0.9rem;
}

.h1,.h2,.h3,.h4{
  font-family: var(--font-head);
  letter-spacing: 0.2px;
  margin: 0 0 10px;
}
.h1{ font-size: clamp(2.1rem, 3.4vw, 3.15rem); line-height: 1.08; }
.h2{ font-size: clamp(1.6rem, 2.2vw, 2.05rem); line-height: 1.15; }
.h3{ font-size: 1.25rem; line-height: 1.3; }
.h4{ font-size: 1.05rem; line-height: 1.35; }
.accent{ color: var(--green-900); }

.btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  border-radius: 999px;
  border: 1px solid transparent;
  padding: 12px 18px;
  font-weight: 700;
  letter-spacing: 0.3px;
  transition: transform 200ms var(--ease), box-shadow 200ms var(--ease), background 200ms var(--ease), border-color 200ms var(--ease);
  cursor: pointer;
  user-select: none;
}
.btn--small{ padding: 10px 14px; font-size: 0.92rem; }
.btn--primary{
  background: linear-gradient(180deg, var(--yellow-500), rgba(255,219,33,0.88));
  color: #1D2B22;
  border-color: rgba(178,154,31,0.45);
  box-shadow: 0 10px 22px rgba(255,219,33,0.12);
  background-size: 220% 220%;
  background-position: 0% 50%;
}
.btn--primary:hover{
  transform: translateY(-1px);
  box-shadow: 0 16px 30px rgba(255,219,33,0.18);
  animation: btnShimmer 700ms ease-out 1;
}
.btn--ghost{
  background: rgba(255,255,255,0.68);
  border-color: var(--border);
}
.btn--ghost:hover{ transform: translateY(-1px); box-shadow: var(--shadow); }

.link{
  display: inline-flex;
  gap: 6px;
  align-items: center;
  font-weight: 700;
  color: var(--green-900);
}
.link:hover{ text-decoration: underline; }

.section{ padding: 84px 0; }
.section--alt{
  background: linear-gradient(180deg, rgba(209,229,210,0.30), rgba(255,255,255,0));
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}
.section__head{
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 26px;
}
.section__head p{ margin: 0; }

/* ==========================================
   HERO
========================================== */

.hero{
  position: relative;
  isolation: isolate;
  padding: 140px 0 160px;
  padding-bottom: 140px;
  min-height: 74vh;
  overflow: clip;

  background:
    radial-gradient(900px 520px at 18% 16%, rgba(255,219,33,0.28), transparent 62%),
    radial-gradient(900px 520px at 82% 58%, rgba(25,70,48,0.08), transparent 60%),
    linear-gradient(180deg, rgba(255,255,255,0.92), rgba(255,255,255,1));
}

.hero::before{
  content:"";
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;

  background:
    radial-gradient(1200px 700px at 22% 0%, rgba(255,219,33,0.12), transparent 65%),
    radial-gradient(900px 600px at 92% 20%, rgba(25,70,48,0.05), transparent 60%);
  opacity: 0.9;

  animation: heroAmbient 7.2s ease-in-out infinite;
}

.hero::after{
  content:"";
  position:absolute;
  inset:-120px -180px -120px auto;
  width: 720px;
  pointer-events:none;
  z-index: 2;
  background:
    radial-gradient(420px 320px at 55% 38%, rgba(255,219,33,0.22), transparent 70%),
    radial-gradient(520px 420px at 55% 72%, rgba(25,70,48,0.10), transparent 72%),
    linear-gradient(135deg, rgba(25,70,48,0.10), rgba(25,70,48,0.00) 55%);

  transform: rotate(-12deg);
  border-radius: 48px;
  filter: blur(0px);
  opacity: 0.95;
  /* NO animation here */
}

.hero__grid{
  position: relative; 
  display: grid;
  grid-template-columns: 1.1fr 0.9fr; 
  gap: 28px;
  align-items: center;               
}

.hero__grid::before,
.hero__grid::after{
  -webkit-clip-path: polygon(0 0, 72% 0, 60% 100%, 0 100%);
  clip-path: polygon(0 0, 72% 0, 60% 100%, 0 100%);
}

.hero__grid::before{
  content:"";
  position:absolute;
  inset:-30% -45%;
  pointer-events:none;
  z-index: 1;
  opacity: 0;

  background: linear-gradient(
    115deg,
    transparent 0%,
    rgba(255,255,255,0) 34%,
    rgba(255,255,255,0.88) 46%,
    rgba(255,219,33,0.58) 50%,
    rgba(255,255,255,0.78) 54%,
    rgba(255,255,255,0) 66%,
    transparent 100%
  );

  mix-blend-mode: screen;
  filter: blur(1.1px);
  transform: translateX(-78%) skewX(-12deg);
  will-change: transform, opacity;

  animation: heroSweep 2.2s linear infinite;
}

.hero__grid::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  z-index: 1;
  opacity: 0;

  background: radial-gradient(
    900px 520px at 30% 35%,
    rgba(255,255,255,0.62),
    rgba(255,255,255,0) 60%
  );

  mix-blend-mode: screen;
  will-change: opacity;

  animation: heroFlash 3.0s ease-in-out infinite;
}

.hero__copy{
  position: relative;
  z-index: 3;
}

.hero__actions{
  display: flex;
  gap: 10px;
  margin-top: 18px;
  flex-wrap: wrap;
}

.hero__media{
  position: relative;
  z-index: 3;

  display: grid;
  place-items: center;

  align-self: center;
  justify-self: end;

  width: min(500px, 100%);
  min-height: 520px; 
}

.hero__img{
  display: none !important;
  width: min(400px, 100%);
  height: auto;
  object-fit: contain;
  filter: drop-shadow(0 20px 60px rgba(10,20,15,0.18));
  transform: translateY(-8px);
}

.hero__stats{
  margin-top: 22px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 10px;
}

.stat{
  border: 1px solid var(--border);
  background: rgba(255,255,255,0.65);
  border-radius: var(--radius-sm);
  padding: 14px;
  backdrop-filter: blur(8px);
}

.stat__num{ font-weight: 900; color: var(--green-900); }
.stat__label{ font-size: 0.92rem; color: var(--muted); margin-top: 4px; }

.hero__card .card{ position: sticky; top: 96px; }

.hero__glow{
  position: absolute;
  inset: -200px -200px auto -200px;
  height: 520px;
  background: radial-gradient(closest-side, rgba(255,219,33,0.22), transparent 70%);
  pointer-events: none;
  z-index: 0;
  animation: glowPulse 4.2s ease-in-out infinite;
}

.hero__copy .h1,
.hero__copy .lead,
.hero__actions{
  opacity: 0;
  transform: translateY(10px);
  animation: heroReveal 850ms cubic-bezier(.2,.8,.2,1) forwards;
}
.hero__copy .lead{ animation-delay: 120ms; }
.hero__actions{    animation-delay: 220ms; }

/* ==========================================
   INTRO VIDEO
========================================== */
html, body{
  font-family: var(--font-body);
}
.h1,.h2,.h3,.h4{
  font-family: var(--font-head);
}

#introVideo.introVideo::before{
  content:"";
  position:absolute;
  inset:0;
  z-index: 1;           
  pointer-events: auto; 
  background: transparent;
}

#introVideo .introVideo__video{
  z-index: 2;
}

#introVideo.introVideo{
  position: fixed;
  inset: 0;
  z-index: 999999;

  width: 100vw;
  height: 100vh;

  background: #fff;
  overflow: hidden;

  opacity: 1;
  visibility: visible;
  transition: opacity 420ms ease, visibility 420ms ease;
}

#introVideo .introVideo__video{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;

  object-fit: cover;
  object-position: center;

  background: transparent;
  transform: translateZ(0);
  will-change: transform, filter, clip-path, opacity;
}

#introVideo.introVideo--glitch .introVideo__video{
  animation:
    introGlitchJitter 520ms steps(2, end) 1,
    introGlitchClip   520ms steps(2, end) 1;
  filter:
    contrast(1.25)
    saturate(1.35)
    drop-shadow(3px 0 rgba(0,255,255,0.55))
    drop-shadow(-3px 0 rgba(255,0,255,0.45));
}

#introVideo.introVideo--hide{
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

@keyframes introGlitchJitter{
  0%   { transform: translate3d(0,0,0) skewX(0deg); }
  12%  { transform: translate3d(-8px,2px,0) skewX(2deg); }
  24%  { transform: translate3d(10px,-3px,0) skewX(-2deg); }
  36%  { transform: translate3d(-12px,3px,0) skewX(3deg); }
  48%  { transform: translate3d(8px,-2px,0) skewX(-3deg); }
  60%  { transform: translate3d(-6px,1px,0) skewX(2deg); }
  72%  { transform: translate3d(10px,0,0) skewX(-2deg); }
  100% { transform: translate3d(0,0,0) skewX(0deg); }
}

@keyframes introGlitchClip{
  0%   { clip-path: inset(0 0 0 0); opacity: 1; }
  10%  { clip-path: inset(8% 0 72% 0); opacity: .95; }
  20%  { clip-path: inset(55% 0 18% 0); opacity: 1; }
  30%  { clip-path: inset(18% 0 58% 0); opacity: .9; }
  40%  { clip-path: inset(65% 0 12% 0); opacity: 1; }
  55%  { clip-path: inset(10% 0 75% 0); opacity: .92; }
  70%  { clip-path: inset(40% 0 35% 0); opacity: 1; }
  100% { clip-path: inset(0 0 0 0); opacity: 1; }
}

@media (prefers-reduced-motion: reduce){
  #introVideo{ display: none !important; }
}

/* Mobile: cover the whole screen */
@media (max-width: 520px){
  #introVideo.introVideo{
    height: 100vh;
    height: 100dvh;
  }
  #introVideo .introVideo__video{
    object-fit: cover;
    object-position: 50% 55%;
  }
}

@keyframes heroSweep{
  0%   { transform: translateX(-78%) skewX(-12deg); opacity: 0; }
  10%  { opacity: 0.62; }
  30%  { opacity: 0.62; }
  46%  { opacity: 0.14; }
  62%  { opacity: 0; }
  100% { transform: translateX(150%) skewX(-12deg); opacity: 0; }
}

@keyframes heroFlash{
  0%, 55%, 100% { opacity: 0; }
  62%           { opacity: 0.30; }
  68%           { opacity: 0.10; }
  74%           { opacity: 0.26; }
  82%           { opacity: 0; }
}

@keyframes heroAmbient{
  0%,100% { opacity: 0.84; }
  50%     { opacity: 1; }
}

@keyframes glowPulse{
  0%,100% { opacity: 0.72; transform: translateY(0) scale(1); }
  50%     { opacity: 1;    transform: translateY(10px) scale(1.04); }
}

@keyframes heroReveal{
  to{ opacity: 1; transform: translateY(0); }
}

@keyframes btnShimmer{
  0%   { background-position: 0% 50%; }
  100% { background-position: 100% 50%; }
}

@media (prefers-reduced-motion: reduce){
  .hero__grid::before,
  .hero__grid::after,
  .hero::before,
  .hero__glow,
  .hero__copy .h1,
  .hero__copy .lead,
  .hero__actions,
  .btn--primary:hover{
    animation: none !important;
    transform: none !important;
    opacity: 1 !important;
  }
}

/* ==========================================
   RESPONSIVE
========================================== */
@media (max-width: 981px){
  .hero__copy{
    transform: translateY(60px);
    width: min(520px, 92%);
    margin: 0 auto;            
    text-align: left;         
  }

  .hero__copy .lead{
    margin-left: 0;
    margin-right: 0;
  }

  .hero__actions{
    justify-content: flex-start;
  }

  .hero__grid::before,
  .hero__grid::after{
    -webkit-clip-path: polygon(0 0, 70% 0, 58% 100%, 0 100%);
    clip-path: polygon(0 0, 70% 0, 58% 100%, 0 100%);
  }
}

@media (max-width: 520px){
  .hero{ padding-top: 72px; }

  .hero__copy{
    transform: translateY(30px);
    width: min(460px, 92%);
    margin: 0 auto;           
    text-align: left;         
  }

  .hero__actions{
    justify-content: flex-start;
  }
  
  .hero__grid::before,
  .hero__grid::after{
    -webkit-clip-path: polygon(0 0, 66% 0, 56% 100%, 0 100%);
    clip-path: polygon(0 0, 66% 0, 56% 100%, 0 100%);
  }
}
/* =========================
   Clients 
========================= */
.clients{
  position: relative;
  padding: 50px 0 70px;
  background:
    radial-gradient(520px 320px at 80% 25%, rgba(255,219,33,0.16), transparent 60%),
    radial-gradient(520px 320px at 18% 70%, rgba(209,229,210,0.18), transparent 62%),
    linear-gradient(180deg, #0F211A, #07110D);
  overflow: hidden;
  border-top: 1px solid rgba(255,255,255,0.06);
  border-bottom: 1px solid rgba(255,255,255,0.06);
}

.clients__title{
  margin: 0 0 24px;
  font-family: var(--font-head);
  font-weight: 700;
  letter-spacing: 0.2px;
  color: rgba(255,255,255,0.92);
  font-size: clamp(1.4rem, 2.2vw, 2rem);
  text-align: center;
  width: 100%;
}

.clients__grid{
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 18px;
  align-items: center;
  justify-items: center;
  margin-top: 10px;
}

.client-logo{
  width: 100%;
  max-width: 170px;
  height: 58px;
  display: grid;
  place-items: center;
  padding: 10px 12px;

  color: rgba(255,255,255,0.82);
  border: 1px solid rgba(255,219,33,0.55);
  border-radius: 14px;
  background: rgba(255,255,255,0.03);
  backdrop-filter: blur(8px);

  font-weight: 800;
  letter-spacing: 0.8px;
  text-transform: uppercase;

  font-size: 0.78rem;
  line-height: 1.15;
  text-align: center;
  word-break: break-word;

  opacity: 1;
  transform: none;
  transition: none !important;
  animation: none !important;

  position: relative;
  overflow: hidden;
}

.client-logo::after{
  content: "";
  position: absolute;
  top: -40%;
  left: -60%;
  width: 70%;
  height: 180%;
  transform: rotate(18deg);
  background: linear-gradient(
    90deg,
    transparent,
    rgba(255, 255, 255, 0.18),
    rgba(255, 219, 33, 0.18),
    transparent
  );
  opacity: 0;
  pointer-events: none;

  animation: clientShine 2200ms ease-in-out infinite;
  animation-delay: 900ms;
}

@keyframes clientShine{
  0%, 60%{ opacity: 0; transform: translateX(0) rotate(18deg); }
  70%{ opacity: 0.45; }
  100%{ opacity: 0; transform: translateX(260%) rotate(18deg); }
}

.client-logo:hover{
  border-color: rgba(255,219,33,0.55);
  background: rgba(255,255,255,0.03);
}

@media (max-width: 980px){
  .clients__grid{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .client-logo{
    max-width: 190px;
  }
}

@media (max-width: 520px){
  .clients{
    padding: 56px 0;
  }

  .clients__grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
  }

  .client-logo{
    max-width: 100%;
    height: 64px;
    padding: 10px 10px;
    font-size: 0.72rem;
    letter-spacing: 0.6px;
    border-radius: 14px;
  }
}

@media (max-width: 360px){
  .client-logo{
    font-size: 0.68rem;
    height: 62px;
  }
}

@media (prefers-reduced-motion: reduce){
  .client-logo::after{
    animation: none !important;
    opacity: 0 !important;
  }
}

/* Cards */
.card{
  border: 1px solid var(--border);
  background: rgba(255,255,255,0.78);
  border-radius: var(--radius);
  padding: 18px;
  box-shadow: var(--shadow);
  backdrop-filter: blur(10px);
  transition: transform 250ms var(--ease), box-shadow 250ms var(--ease);
}
.card:hover{ transform: translateY(-2px); box-shadow: 0 16px 40px rgba(15,28,22,0.12); }
.card--tight{ padding: 18px; }
.card__top{
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 10px;
}
.chip{
  font-size: 0.82rem;
  font-weight: 900;
  letter-spacing: 0.4px;
  color: var(--green-900);
  background: rgba(209,229,210,0.45);
  border: 1px solid var(--border);
  padding: 6px 10px;
  border-radius: 999px;
}
.dotrow{ display: inline-flex; gap: 6px; }
.dot{
  width: 9px; height: 9px; border-radius: 999px;
  border: 1px solid rgba(25,70,48,0.25);
  background: rgba(255,219,33,0.35);
}
.list{
  margin: 12px 0 12px;
  padding-left: 18px;
  color: var(--muted);
}
.list li{ margin: 8px 0; }

/* Grids */
.grid-4{
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}
.grid-3{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}
.grid-2{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

/* Portfolio */
.portfolio-grid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.p-card{
  position: relative;
  border-radius: 18px;
  overflow: hidden;
  border: 1px solid var(--border);
  background: rgba(255,255,255,0.6);
  min-height: 260px;
  cursor: pointer;
  transition: transform 250ms var(--ease), box-shadow 250ms var(--ease);
}

.p-card:hover{ transform: translateY(-2px); box-shadow: var(--shadow); }

.p-media{
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  transform: scale(1.02);
  transition: transform 450ms var(--ease), filter 450ms var(--ease);
}

.p-media--one{
  background:
    radial-gradient(600px 320px at 20% 30%, rgba(255,219,33,0.30), transparent 60%),
    linear-gradient(135deg, rgba(25,70,48,0.18), rgba(124,149,138,0.10)),
    linear-gradient(180deg, rgba(209,229,210,0.35), rgba(255,255,255,0.0));
}
.p-media--two{
  background:
    radial-gradient(420px 320px at 50% 40%, rgba(255,219,33,0.22), transparent 60%),
    linear-gradient(135deg, rgba(92,107,40,0.20), rgba(25,70,48,0.12));
}
.p-media--three{
  background:
    radial-gradient(520px 320px at 75% 35%, rgba(209,229,210,0.40), transparent 62%),
    linear-gradient(135deg, rgba(25,70,48,0.18), rgba(178,154,31,0.14));
}
.p-media--four{
  background:
    radial-gradient(520px 320px at 25% 35%, rgba(255,219,33,0.26), transparent 62%),
    linear-gradient(135deg, rgba(124,149,138,0.20), rgba(25,70,48,0.14));
}
.p-media--five{
  background:
    radial-gradient(520px 320px at 70% 35%, rgba(178,154,31,0.22), transparent 62%),
    linear-gradient(135deg, rgba(25,70,48,0.18), rgba(92,107,40,0.14));
}
.p-media--six{
  background:
    radial-gradient(520px 320px at 30% 40%, rgba(209,229,210,0.40), transparent 62%),
    linear-gradient(135deg, rgba(25,70,48,0.16), rgba(178,154,31,0.12));
}

.p-overlay{
  position: absolute;
  inset: 0;
  padding: 22px;
  display: grid;
  align-content: center;
  gap: 10px;

  opacity: 0;
  transform: translateY(10px);
  transition: opacity 250ms var(--ease), transform 250ms var(--ease);
  background: linear-gradient(180deg, rgba(25,70,48,0.86), rgba(15,28,22,0.86));
  color: rgba(255,255,255,0.92);
}

.p-title{
  font-family: var(--font-head);
  font-weight: 700;
  margin: 0;
  font-size: 1.35rem;
  letter-spacing: 0.2px;
}

.p-desc{
  margin: 0;
  font-family: var(--font-body);
  font-size: 0.98rem;
  line-height: 1.55;
  color: rgba(255,255,255,0.82);
  max-width: 44ch;
}

.p-tag{
  display: inline-flex;
  justify-self: start;
  padding: 8px 12px;
  border-radius: 999px;
  font-weight: 800;
  font-size: 0.82rem;
  letter-spacing: 0.4px;
  color: #1D2B22;
  background: rgba(255,219,33,0.92);
  border: 1px solid rgba(255,219,33,0.35);
}

.p-card:hover .p-overlay{ opacity: 1; transform: translateY(0); }
.p-card:hover .p-media{ transform: scale(1.07); filter: saturate(1.02) contrast(1.05); }

@media (max-width: 980px){
  .portfolio-grid{ grid-template-columns: 1fr; }
  .p-card{ min-height: 300px; }
}

/* Services */
.service{
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: rgba(255,255,255,0.68);
  padding: 18px;
  transition: transform 250ms var(--ease), box-shadow 250ms var(--ease), border-color 250ms var(--ease);
}
.service:hover{
  transform: translateY(-2px);
  box-shadow: var(--shadow);
  border-color: rgba(178,154,31,0.35);
}
.service__icon{
  width: 46px; height: 46px;
  border-radius: 14px;
  display: grid; place-items: center;
  font-weight: 900;
  color: var(--green-900);
  background: linear-gradient(180deg, rgba(255,219,33,0.55), rgba(209,229,210,0.4));
  border: 1px solid rgba(25,70,48,0.16);
  margin-bottom: 10px;
}

.servicesV2{
  padding: 90px 0;
  background:
    radial-gradient(900px 420px at 20% 20%, rgba(255,219,33,0.12), transparent 60%),
    radial-gradient(900px 420px at 85% 70%, rgba(209,229,210,0.25), transparent 60%),
    linear-gradient(180deg, #0B1913, #07110D);
  border-top: 1px solid rgba(255,255,255,0.08);
  border-bottom: 1px solid rgba(255,255,255,0.08);
}

.servicesV2__grid{
  display: grid;
  grid-template-columns: 420px 1fr; 
  gap: 28px;
  align-items: center; 
}

/* Left card */
.solutionsCard{
  border-radius: 22px;
  padding: 34px 28px;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,219,33,0.28);
  box-shadow: 0 18px 60px rgba(0,0,0,0.30);
  backdrop-filter: blur(10px);
}

.solutionsCard__kicker{
  margin: 0 0 12px;
  font-family: var(--font-body);
  font-weight: 800;
  letter-spacing: 0.18em;
  font-size: 0.72rem;
  color: rgba(255,219,33,0.82);
  text-transform: uppercase;
}

.solutionsCard__title{
  margin: 0 0 14px;
  font-family: var(--font-head);
  font-weight: 700;
  font-size: 2.5rem;
  line-height: 1;
  color: rgba(255,255,255,0.95);
}

.solutionsCard__desc{
  margin: 0 0 22px;
  font-family: var(--font-body);
  color: rgba(255,255,255,0.78);
  line-height: 1.75;
  font-size: 0.98rem;
  max-width: 52ch;
}

.solutionsCard__btn{
  background: rgba(255,219,33,0.92);
  border-color: rgba(255,219,33,0.35);
  color: #1D2B22;
  font-weight: 900;
}

/* Right lists */
.servicesList{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr)); 
  gap: 16px;
  align-content: start;
  align-items: start;

  padding: 16px 18px;
  border-radius: 18px;
  border: 1px solid rgba(209,229,210,0.16);
  background: rgba(255,255,255,0.03);
  transition: transform 220ms var(--ease), border-color 220ms var(--ease), background 220ms var(--ease);
}

.servicesList__col{
  display: grid;
  gap: 18px;
}

.serviceLine{
  display: flex;
  align-items: center;
  gap: 16px;
  min-height: 78px;
  padding: 14px 16px;
  border-radius: 16px;
  border: 1px solid rgba(209,229,210,0.14);
  background: rgba(255,255,255,0.02);
  transition: transform 220ms var(--ease), border-color 220ms var(--ease), background 220ms var(--ease);
}

.serviceLine:hover{
  transform: translateY(-2px);
  border-color: rgba(255,219,33,0.40);
  background: rgba(255,219,33,0.06);
}

.serviceLine__icon{
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  border-radius: 14px;
  border: 1px solid rgba(255,219,33,0.22);
  background: rgba(255,219,33,0.08);
  color: rgba(255,255,255,0.92);
  flex: 0 0 46px;
}

.sIcon{ width: 22px; height: 22px; display: block; }

.serviceLine__text{
  font-family: var(--font-body);
  font-weight: 800;
  font-size: 1.02rem; 
  color: rgba(255,255,255,0.92);
  letter-spacing: 0.15px;
}

@media (max-width: 980px){
  .servicesV2__grid{ grid-template-columns: 1fr; align-items: start; }
  .servicesList{ grid-template-columns: 1fr; }
}

/* Global */
.global{
  padding: 90px 0;
  background: transparent;
  border-top: 0;
  border-bottom: 0;
  color: var(--text);
}

.global__grid{ display: grid; gap: 48px; }

.global__kicker{
  margin: 0 0 10px;
  font-family: var(--font-body);
  font-weight: 900;
  letter-spacing: 0.18em;
  font-size: 0.78rem;
  color: var(--gold-600);
  text-transform: uppercase;
}

.global__headlineRow{
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 18px;
  align-items: start;
}

.global__title{
  margin: 0;
  font-family: var(--font-head);
  font-weight: 700;
  letter-spacing: 0.2px;
  font-size: clamp(1.6rem, 2.4vw, 2.35rem);
  line-height: 1.15;
  color: var(--text);
}

.global__cta{
  align-self: start;
  background: rgba(255,255,255,0.70);
  border-color: var(--border);
  color: var(--green-900);
}

.global__cta:hover{
  background: rgba(255,219,33,0.14);
  border-color: rgba(178,154,31,0.45);
}

.global__cols{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 36px;
  align-items: start;
  margin-top: 18px;
}

.global__para{
  margin: 0;
  font-family: var(--font-body);
  color: var(--muted);
  line-height: 1.8;
  font-size: 0.98rem;
  max-width: 52ch;
  text-align: justify;
  text-justify: inter-word;
}

.global__bottom{
  display: grid;
  grid-template-columns: 1.15fr 0.85fr; 
  gap: 32px;
  align-items: center;
}

.global__map{
  width: 100%;             
  max-width: 720px;     
  aspect-ratio: 16 / 9;          
  justify-self: start;

  height: auto;
  min-height: 0;

  border-radius: 22px;

  border: 1px solid rgba(255,219,33,0.48);
  box-shadow:
    0 18px 40px rgba(255,219,33,0.14),
    0 0 0 2px rgba(255,219,33,0.12),
    0 0 34px rgba(255,219,33,0.16);

  position: relative;
  overflow: hidden;

  background:
    radial-gradient(700px 460px at 30% 50%, rgba(255,219,33,0.10), transparent 60%),
    radial-gradient(700px 460px at 70% 60%, rgba(209,229,210,0.10), transparent 62%),
    linear-gradient(180deg, rgba(255,255,255,0.05), rgba(255,255,255,0.03));
}

.global__video{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;

  /* keep logo safe */
  object-fit: cover;
  object-position: center 70%;

  background: rgba(255,255,255,0.55);
  z-index: 1;

  border-radius: 22px;
}

.global__map::before{
  content: "";
  position: absolute;
  inset: -40px;
  background:
    radial-gradient(circle at 20% 40%, rgba(209,229,210,0.08), transparent 40%),
    radial-gradient(circle at 35% 60%, rgba(255,219,33,0.08), transparent 42%),
    radial-gradient(circle at 55% 45%, rgba(209,229,210,0.06), transparent 40%),
    radial-gradient(circle at 75% 55%, rgba(255,219,33,0.06), transparent 42%);
  opacity: 0.40;
  pointer-events: none;
  z-index: 2;
}

.global__map::after{
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 22px;
  pointer-events: none;
  z-index: 3;

  background:
    linear-gradient(
      135deg,
      rgba(255,255,255,0.00) 35%,
      rgba(255,219,33,0.20) 50%,
      rgba(255,255,255,0.00) 65%
    ),
    linear-gradient(180deg, rgba(255,255,255,0.06), rgba(255,255,255,0.00) 55%);

  opacity: 0.55;
  mix-blend-mode: screen;
}

.global__label{
  margin: 0 0 10px;
  font-family: var(--font-body);
  font-weight: 900;
  letter-spacing: 0.18em;
  font-size: 0.78rem;
  color: var(--gold-600);
  text-transform: uppercase;
}

.global__big{
  margin: 0 0 12px;
  font-family: var(--font-head);
  font-weight: 700;
  font-size: clamp(1.6rem, 2.4vw, 2.35rem);
  line-height: 1.18;
  color: var(--text);
}

.global__regions{
  margin-top: 18px;
  background: rgba(255,255,255,0.70);
  border-color: var(--border);
  color: var(--green-900);
}

.global__regions:hover{
  background: rgba(255,219,33,0.14);
  border-color: rgba(178,154,31,0.45);
}

.global .btn--ghost{
  background: linear-gradient(180deg, rgba(255,219,33,0.95), rgba(255,219,33,0.82));
  border-color: rgba(178,154,31,0.55);
  color: #1D2B22;
  box-shadow: 0 10px 22px rgba(255,219,33,0.18);
}

.global .btn--ghost:hover{
  transform: translateY(-1px);
  box-shadow: 0 16px 30px rgba(255,219,33,0.24);
}

.global__cta.btn--ghost{
  background: rgba(255,219,33,0.12);
  color: var(--green-900);
  border-color: rgba(178,154,31,0.55);
  box-shadow: none;
}
.global__cta.btn--ghost:hover{ background: rgba(255,219,33,0.18); }

@media (max-width: 980px){
  .global__headlineRow{ grid-template-columns: 1fr; }
  .global__cols{ grid-template-columns: 1fr; }
  .global__para{ max-width: 60ch; }

  .global__bottom{ grid-template-columns: 1fr; }

  .global__map{
    max-width: 820px;
    aspect-ratio: 16 / 9;
  }
}

/* Testimonials */
.testimonials{
  padding: 92px 0;
  background:
    radial-gradient(900px 460px at 18% 25%, rgba(255,219,33,0.16), transparent 60%),
    radial-gradient(900px 460px at 85% 70%, rgba(209,229,210,0.35), transparent 62%),
    linear-gradient(180deg, #0F211A, #07110D);
  border-top: 1px solid rgba(255,255,255,0.08);
  border-bottom: 1px solid rgba(255,255,255,0.08);
}

.testimonials__kicker{
  margin: 0 0 10px;
  text-align: center;
  font-family: var(--font-body);
  font-weight: 900;
  letter-spacing: 0.22em;
  font-size: 0.75rem;
  color: rgba(255,219,33,0.92);
  text-transform: uppercase;
}

.testimonials__title{
  margin: 0 0 30px;
  text-align: center;
  font-family: var(--font-head);
  font-weight: 700;
  letter-spacing: 0.2px;
  color: rgba(255,255,255,0.92);
  font-size: clamp(1.6rem, 2.4vw, 2.3rem);
}

.testimonials__grid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 18px;
}

.tCard{
  border-radius: 18px;
  padding: 24px 22px;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(209,229,210,0.14);
  backdrop-filter: blur(10px);
  box-shadow: 0 18px 60px rgba(0,0,0,0.22);
  transition: transform 220ms var(--ease), border-color 220ms var(--ease), background 220ms var(--ease);
  min-height: 260px;
  display: grid;
  align-content: space-between;
}

.tCard:hover{
  transform: translateY(-2px);
  border-color: rgba(255,219,33,0.35);
  background: rgba(255,219,33,0.06);
}

.tCard__quote{
  margin: 0 0 18px;
  font-family: var(--font-body);
  font-size: 1.02rem;
  line-height: 1.75;
  color: rgba(255,255,255,0.88);
  text-align: center;
}

.tCard__who{
  text-align: center;
  display: grid;
  gap: 6px;
}

.tCard__who strong{
  font-family: var(--font-body);
  font-weight: 900;
  color: rgba(255,255,255,0.92);
}

.tCard__who span{
  font-family: var(--font-body);
  color: rgba(255,255,255,0.72);
  font-weight: 700;
}

@media (max-width: 980px){
  .testimonials__grid{ grid-template-columns: 1fr; }
  .tCard{ min-height: auto; }
}

/* Work CTA */
.workCta{
  padding: 86px 0;
  background: transparent !important;
  border-top: 0 !important;
  border-bottom: 0 !important;
  overflow: hidden;
}

.workCta__grid{
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 34px;
  align-items: center;
}

.workCta__kicker{
  margin: 0 0 14px;
  font-weight: 900;
  letter-spacing: 0.18em;
  font-size: 0.72rem;
  text-transform: uppercase;
  color: var(--gold-600) !important;
}

.workCta__title{
  margin: 0 0 14px;
  font-family: var(--font-head);
  font-weight: 700;
  letter-spacing: 0.2px;
  font-size: clamp(1.9rem, 3vw, 2.6rem);
  line-height: 1.12;
  color: var(--text) !important;
}

.workCta__desc{
  margin: 0;
  color: var(--muted) !important;
  line-height: 1.8;
  max-width: 70ch;
}

.workCta__actions{
  margin-top: 20px;
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}

.workCta__btnGhost{
  background: rgba(255,255,255,0.8) !important;
  border-color: var(--border) !important;
  color: var(--green-900) !important;
}
.workCta__btnGhost:hover{
  background: rgba(255,219,33,0.14) !important;
  border-color: rgba(178,154,31,0.45) !important;
}

.workCta__media{
  position: relative;
  min-height: 260px;
  display: grid;
  place-items: center;
}

.workCta__mock{
  width: min(520px, 100%);
  aspect-ratio: 16 / 9;
  border-radius: 22px;
  border: 1px solid rgba(209,229,210,0.16);
  background:
    radial-gradient(600px 320px at 25% 35%, rgba(255,219,33,0.18), transparent 60%),
    radial-gradient(520px 320px at 70% 55%, rgba(209,229,210,0.22), transparent 62%),
    linear-gradient(135deg, rgba(255,255,255,0.06), rgba(255,255,255,0.02));
  box-shadow: 0 30px 90px rgba(0,0,0,0.35);
  transform: translateY(-2px);

  position: relative;
  overflow: hidden;
}

.workCta__mock img,
.workCta__img{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 22px;
}

.workCta__img--soft{ opacity: 0.92; }

@media (max-width: 980px){
  .workCta__grid{ grid-template-columns: 1fr; }

  .workCta__copy{ order: 1; }
  .workCta__media{ order: 2; }

  .workCta__media{ min-height: 220px; }
}
/* =========================
   CONTACT BAND + CONTACT FORM 
   ========================= */

.contactBand{
  padding-top: 60px;
  padding-bottom: 110px;
  background:
    radial-gradient(900px 520px at 20% 20%, rgba(255,219,33,0.22), transparent 60%),
    radial-gradient(900px 520px at 85% 70%, rgba(124,149,138,0.22), transparent 60%),
    linear-gradient(180deg, #F4FAF4, #EAF4EA);
  border-top: 1px solid rgba(25,70,48,0.12);
  color: rgba(15,28,22,0.92);
}

.contactBand__grid{
  display: grid;
  grid-template-columns: minmax(720px, 1fr) 380px;
  gap: 52px;
  align-items: start;
}

.contactBand__left{ min-width: 0; }

.contactBand__title{
  margin: 0 0 10px;
  font-family: "Libre Baskerville", serif;
  font-weight: 800;
  font-size: clamp(1.55rem, 2.0vw, 2.15rem);
  line-height: 1.05;
  color: rgba(15,28,22,0.92);
  max-width: 560px;
}

.contactBand__formWrap{ margin-top: 25px; }

/* =========================
   FORM CARD
   ========================= */
#contactBandForm.contactForm{
  --card-radius: 28px;
  --outer-stroke: rgba(35, 79, 63, 0.22);
  --inner-stroke: rgba(35, 79, 63, 0.14);

  width: 650px;
  max-width: 100%;

  position: relative;
  overflow: hidden;

  padding: 38px 38px 32px;
  border-radius: var(--card-radius);

  border: 5px solid var(--outer-stroke);
  background: rgba(255,255,255,0.95);
  box-shadow: 0 26px 60px rgba(15,28,22,0.10);

  display: grid;
  gap: 18px;
}

#contactBandForm.contactForm::after{
  content:"";
  position: absolute;
  inset: 12px;
  border-radius: calc(var(--card-radius) - 12px);
  border: 1px solid var(--inner-stroke);
  pointer-events: none;
}

#contactBandForm .contactForm__field{
  display: grid;
  gap: 10px;
}

#contactBandForm .contactForm__field span{
  font-family: var(--font-body);
  font-weight: 800;
  font-size: 0.95rem;
  color: rgba(15,28,22,0.92);
}

#contactBandForm input,
#contactBandForm textarea{
  width: 100%;
  padding: 14px 16px;

  border-radius: 14px;
  border: 1.6px solid rgba(15,28,22,0.28);
  background: #fff;

  font-family: var(--font-body);
  font-size: 1rem;
  color: rgba(15,28,22,0.90);

  outline: none;
  transition: border-color 180ms var(--ease), box-shadow 180ms var(--ease);
}

#contactBandForm input::placeholder,
#contactBandForm textarea::placeholder{
  color: rgba(15,28,22,0.45);
}

#contactBandForm input:focus,
#contactBandForm textarea:focus{
  border-color: rgba(178,154,31,0.70);
  box-shadow: 0 0 0 4px rgba(178,154,31,0.16);
}

#contactBandForm textarea{
  min-height: 210px;
  resize: vertical;
}

#contactBandForm .contactForm__submit{
  justify-self: end;
  margin-top: 10px;

  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;

  padding: 14px 34px;
  border-radius: 999px;

  font-family: var(--font-body);
  font-weight: 900;
  font-size: 0.95rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;

  background: #234f3f;
  border: 1px solid rgba(35,79,63,0.25);
  color: rgba(255,255,255,0.98);

  box-shadow: 0 14px 30px rgba(15,28,22,0.12);
  cursor: pointer;

  transition: transform 160ms var(--ease), box-shadow 160ms var(--ease), filter 160ms var(--ease), opacity 160ms var(--ease);
}

#contactBandForm .contactForm__submit:hover{
  transform: translateY(-1px);
  box-shadow: 0 18px 40px rgba(15,28,22,0.16);
  filter: brightness(1.03);
}

#contactBandForm .contactForm__submit:active{ transform: translateY(0); }

#contactBandForm .contactForm__submit:disabled{
  opacity: .78;
  cursor: not-allowed;
  transform: none;
}

#contactBandForm .btnSpin{
  width: 16px;
  height: 16px;
  border-radius: 999px;
  border: 2px solid rgba(255,255,255,0.45);
  border-top-color: rgba(255,255,255,1);
  animation: btnspin .7s linear infinite;
}
@keyframes btnspin{ to{ transform: rotate(360deg); } }

/* =========================
   RIGHT SIDE INFO BLOCKS
   ========================= */
.contactBand__grid > .contactBand__right{ align-self: center; }

.contactBand__right{
  display: grid;
  gap: 26px;
  justify-content: end;
  text-align: left;
}

.contactBand__block{
  max-width: 340px;
  padding-left: 18px;
  border-left: 2px solid rgba(178,154,31,0.75);
}

.contactBand__label{
  margin: 0 0 8px;
  font-size: 12px;
  letter-spacing: 0.18em;
  font-weight: 900;
  color: rgba(15,28,22,0.55);
  text-transform: uppercase;
}

.contactBand__value{
  margin: 0;
  font-size: 1.05rem;
  line-height: 1.55;
  font-weight: 800;
  color: rgba(15,28,22,0.82);
}

/* =========================
   TOAST (FIXED
   ========================= */
.toastWrap{
  position: fixed;
  top: 16px;
  right: 16px;
  z-index: 999999;
  display: grid;
  gap: 10px;
  width: min(360px, calc(100vw - 32px));
  pointer-events: none;
}

.toast{
  pointer-events: auto;

  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(15, 23, 42, 0.12);
  border-radius: 14px;
  padding: 12px 12px;
  box-shadow: 0 10px 30px rgba(2, 6, 23, 0.12);

  display: grid;
  grid-template-columns: 10px 1fr 28px;
  gap: 10px;
  align-items: start;

  opacity: 0;
  transform: translateY(-8px);
  transition: opacity .18s ease, transform .18s ease;
}

.toast.is-show{
  opacity: 1;
  transform: translateY(0);
}

.toast__dot{
  width: 10px;
  height: 10px;
  border-radius: 999px;
  margin-top: 4px;
}

.toast__title{
  margin: 0;
  font-weight: 800;
  font-size: 13px;
  color: #0f172a;
  font-family: var(--font-body);
}

.toast__msg{
  margin: 2px 0 0;
  font-size: 12.5px;
  color: rgba(15, 23, 42, 0.7);
  line-height: 1.35;
  font-family: var(--font-body);
}

.toast__x{
  width: 28px;
  height: 28px;
  border-radius: 10px;
  border: 1px solid rgba(15, 23, 42, 0.12);
  background: rgba(255,255,255,0.7);
  cursor: pointer;
  font-size: 18px;
  line-height: 0;
  display: grid;
  place-items: center;
  color: rgba(15, 23, 42, 0.65);
}

.toast--info .toast__dot{ background: #3b82f6; }
.toast--success .toast__dot{ background: #22c55e; }
.toast--error .toast__dot{ background: #ef4444; }

/* =========================
   Responsive
   ========================= */
@media (max-width: 980px){
  .contactBand{ padding: 90px 0; }

  .contactBand__grid{
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .contactBand__right{ justify-content: start; }

  .contactBand__block{
    border-left: 0;
    padding-left: 0;
    border-top: 1px solid rgba(15,28,22,0.10);
    padding-top: 14px;
  }

  #contactBandForm.contactForm{
    width: 100%;
    max-width: 100%;
  }
}

@media (max-width: 520px){
  #contactBandForm.contactForm{
    padding: 26px 18px 20px;
    border-radius: 24px;
  }

  #contactBandForm.contactForm::after{
    inset: 10px;
    border-radius: 14px;
  }

  #contactBandForm textarea{
    min-height: 180px;
  }

  #contactBandForm .contactForm__submit{
    width: 100%;
    justify-self: stretch;
  }
}

html, body { 
  font-family: var(--font-body) !important; 
}

.h1, .h2, .h3, .h4 { 
  font-family: var(--font-head) !important; 
}

.header,
.header a,
.nav,
.nav a {
  font-family: var(--font-body) !important;
}