:root{
  --ink:#12151c;
  --ink-soft:#1c212b;
  --ink-line:#2a303c;
  --paper:#f4f1ea;
  --paper-soft:#e9e3d4;
  --paper-line:#d8d1bd;
  --lime:#cdfb4a;
  --lime-soft:#e4ffa0;
  --lime-dark:#9fce2a;
  --ink-tint-70: rgba(18,21,28,.7);
  --ink-tint-40: rgba(18,21,28,.4);
  --radius-sm:8px;
  --radius-md:18px;
  --radius-lg:32px;
  --shadow-float: 0 10px 30px -10px rgba(18,21,28,.45), 0 3px 8px -3px rgba(18,21,28,.3);
  --shadow-soft: 0 6px 18px -8px rgba(18,21,28,.25);
  --ease: cubic-bezier(.22,1,.36,1);
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:'Space Grotesk', sans-serif;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;display:block;object-fit:cover;border-radius:var(--radius-md);}
a{color:inherit;text-decoration:none;}
h1,h2,h3,h4{margin:0;font-weight:700;letter-spacing:-0.02em;}
p{margin:0;}
ul{margin:0;padding:0;list-style:none;}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit;}
input,textarea{font-family:inherit;}

.Reveal{opacity:0;transform:translateY(28px);transition:opacity .8s var(--ease), transform .8s var(--ease);}
.Reveal.is-visible{opacity:1;transform:translateY(0);}


.CookieBar{background:var(--ink);color:var(--paper);border-bottom:1px solid var(--ink-line);}
.CookieBar[hidden]{display:none;}
.CookieBar-inner{max-width:1280px;margin:0 auto;padding:.6rem 1.5rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;}
.CookieBar-text{font-size:.8rem;color:var(--paper-soft);max-width:820px;}
.CookieBar-text a{color:var(--lime);text-decoration:underline;}
.CookieBar-actions{display:flex;gap:.5rem;flex-shrink:0;}
.CookieBar-btn{padding:.5rem 1rem;border-radius:var(--radius-sm);font-size:.8rem;font-weight:600;transition:all .25s var(--ease);min-height:36px;}
.CookieBar-btn--solid{background:var(--lime);color:var(--ink);}
.CookieBar-btn--solid:hover{background:var(--lime-soft);transform:translateY(-2px);}
.CookieBar-btn--ghost{background:transparent;color:var(--paper);border:1px solid var(--ink-line);}
.CookieBar-btn--ghost:hover{background:var(--ink-soft);border-color:var(--paper);}


.SiteHeader{
  background:var(--paper);
  border-bottom:1px solid var(--paper-line);
  position:sticky;top:0;z-index:100;
  transition:transform .5s var(--ease), opacity .4s var(--ease);
}
.SiteHeader.is-collapsed{transform:translateY(-110%);opacity:0;pointer-events:none;}
.SiteHeader-inner{
  max-width:1280px;margin:0 auto;padding:1.1rem 1.5rem;
  display:flex;align-items:center;justify-content:space-between;gap:1.5rem;
}
.SiteHeader-logo img{height:32px;width:auto;border-radius:0;}
.SiteHeader-nav{display:none;gap:2rem;align-items:center;}
.SiteHeader-nav a{font-size:.95rem;font-weight:500;color:var(--ink-tint-70);position:relative;padding:.3rem 0;transition:color .3s var(--ease);}
.SiteHeader-nav a::after{content:'';position:absolute;left:0;bottom:0;width:0;height:2px;background:var(--lime-dark);transition:width .3s var(--ease);}
.SiteHeader-nav a:hover,.SiteHeader-nav a.is-active{color:var(--ink);}
.SiteHeader-nav a:hover::after,.SiteHeader-nav a.is-active::after{width:100%;}
.SiteHeader-cta{
  display:none;
  background:var(--ink);color:var(--paper);
  padding:.7rem 1.4rem;border-radius:var(--radius-sm);
  font-weight:600;font-size:.9rem;
  transition:background .3s var(--ease), transform .3s var(--ease);
}
.SiteHeader-cta:hover{background:var(--lime-dark);color:var(--ink);transform:translateY(-2px);}
.SiteHeader-burger{
  width:46px;height:46px;display:flex;align-items:center;justify-content:center;
  border-radius:var(--radius-sm);background:var(--ink);color:var(--paper);font-size:1.1rem;
  transition:background .3s var(--ease);
}
.SiteHeader-burger:hover{background:var(--lime-dark);color:var(--ink);}

.SiteHeader-pill{
  position:fixed;top:1rem;right:1.2rem;z-index:110;
  width:52px;height:52px;border-radius:50%;
  background:var(--lime);color:var(--ink);
  display:flex;align-items:center;justify-content:center;font-size:1.15rem;
  box-shadow:var(--shadow-float);
  transform:translateY(-140%);opacity:0;
  transition:transform .45s var(--ease), opacity .35s var(--ease), background .3s var(--ease);
}
.SiteHeader-pill.is-shown{transform:translateY(0);opacity:1;}
.SiteHeader-pill:hover{background:var(--lime-soft);}
.SiteHeader-pill[hidden]{display:none;}

@media(min-width:960px){
  .SiteHeader-nav{display:flex;}
  .SiteHeader-cta{display:inline-flex;align-items:center;gap:.4rem;}
  .SiteHeader-burger{display:none;}
}


.MobileMenu{position:fixed;inset:0;z-index:200;pointer-events:none;}
.MobileMenu-overlay{
  position:absolute;inset:0;background:rgba(18,21,28,.6);
  opacity:0;transition:opacity .4s var(--ease);
}
.MobileMenu-panel{
  position:absolute;top:0;right:0;height:100vh;width:min(360px,86vw);
  background:var(--ink);color:var(--paper);
  padding:2rem 2rem;display:flex;flex-direction:column;
  transform:translateX(100%);
  transition:transform .5s var(--ease);
  box-shadow:var(--shadow-float);
}
.MobileMenu.is-open{pointer-events:auto;}
.MobileMenu.is-open .MobileMenu-overlay{opacity:1;}
.MobileMenu.is-open .MobileMenu-panel{transform:translateX(0);}
.MobileMenu-close{
  align-self:flex-end;width:44px;height:44px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:var(--ink-soft);color:var(--paper);font-size:1.1rem;
  transition:background .3s var(--ease), transform .3s var(--ease);
}
.MobileMenu-close:hover{background:var(--lime);color:var(--ink);transform:rotate(90deg);}
.MobileMenu-nav{display:flex;flex-direction:column;gap:1.6rem;margin-top:3rem;}
.MobileMenu-nav a{font-size:1.5rem;font-weight:600;color:var(--paper);transition:color .3s var(--ease), padding-left .3s var(--ease);}
.MobileMenu-nav a:hover{color:var(--lime);padding-left:.5rem;}
.MobileMenu-cta{
  margin-top:auto;background:var(--lime);color:var(--ink);text-align:center;
  padding:1rem;border-radius:var(--radius-sm);font-weight:700;
  transition:background .3s var(--ease);
}
.MobileMenu-cta:hover{background:var(--lime-soft);}


.Btn{
  display:inline-flex;align-items:center;gap:.6rem;
  padding:.9rem 1.7rem;border-radius:var(--radius-sm);
  font-weight:700;font-size:.95rem;min-height:48px;
  transition:transform .3s var(--ease), background .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease);
}
.Btn i{transition:transform .3s var(--ease);}
.Btn--lime{background:var(--lime);color:var(--ink);}
.Btn--lime:hover{background:var(--lime-dark);transform:translateY(-3px);}
.Btn--lime:hover i{transform:translateX(4px);}
.Btn--ghost{background:transparent;border:1.5px solid var(--ink-tint-40);color:var(--ink);}
.Btn--ghost:hover{border-color:var(--ink);background:var(--ink);color:var(--paper);}

.Link-arrow{display:inline-flex;align-items:center;gap:.5rem;font-weight:600;margin-top:1rem;color:var(--ink);border-bottom:2px solid var(--lime-dark);padding-bottom:.15rem;transition:gap .3s var(--ease), color .3s var(--ease);}
.Link-arrow:hover{gap:.9rem;}
.Link-arrow--light{color:var(--paper);border-color:var(--lime);}


.PageHero{
  max-width:1280px;margin:0 auto;padding:3.5rem 1.5rem 4rem;
  display:grid;gap:2.5rem;
}
.PageHero-eyebrow{font-size:.85rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--lime-dark);margin-bottom:1rem;}
.PageHero-heading{font-size:clamp(2.4rem,6vw,4.6rem);line-height:1.02;color:var(--ink);}
.PageHero-heading .word{display:inline-block;}
.PageHero-heading .char{
  display:inline-block;opacity:0;transform:translateY(40px) rotate(4deg);
  animation:charIn .7s var(--ease) forwards;
  animation-delay:calc(var(--char-index) * 28ms);
}
@keyframes charIn{to{opacity:1;transform:translateY(0) rotate(0);}}
.PageHero-sub{margin-top:1.5rem;font-size:1.1rem;color:var(--ink-tint-70);max-width:640px;}
.PageHero-actions{margin-top:2.2rem;display:flex;gap:1rem;flex-wrap:wrap;}
.PageHero-media img{width:100%;height:auto;border-radius:var(--radius-lg);}
.PageHero--simple{padding-bottom:2rem;}
.PageHero--simple .PageHero-inner{max-width:760px;}

@media(min-width:900px){
  .PageHero{grid-template-columns:1.1fr .9fr;align-items:center;padding-top:5rem;padding-bottom:6rem;}
}


.Section{padding:5rem 1.5rem;}
.Section--paper{background:var(--paper);}
.Section--ink{background:var(--ink);color:var(--paper);}
.Section--lime{background:var(--lime);color:var(--ink);}
.Section-inner{max-width:1280px;margin:0 auto;}
.Section-inner--split{display:grid;gap:2.5rem;align-items:center;}
@media(min-width:900px){
  .Section-inner--split{grid-template-columns:1fr 1fr;gap:4rem;}
}
.Section-eyebrow{font-size:.8rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-tint-70);margin-bottom:.9rem;}
.Section-eyebrow--lime{color:var(--lime);}
.Section-heading{font-size:clamp(1.7rem,3.4vw,2.6rem);line-height:1.15;margin-bottom:1.2rem;}
.Section-heading--light{color:var(--paper);}
.Section-text{color:var(--ink-tint-70);font-size:1.02rem;margin-bottom:1.1rem;max-width:600px;}
.Section-text--light{color:var(--paper-soft);}
.Section-text--wide{max-width:760px;margin-left:auto;margin-right:auto;text-align:center;}
.Section-media img{width:100%;}
.Section--cta{text-align:center;}
.Section--cta .Section-text--wide{margin-bottom:2rem;}


.Cascade{max-width:1280px;margin:3.5rem auto 0;padding:0 0;}
.CascadeCard{
  border-radius:var(--radius-lg);
  padding:2.4rem 2.2rem;
  position:relative;
  transition:transform .5s var(--ease), box-shadow .5s var(--ease);
}
.CascadeCard-index{font-size:.8rem;font-weight:700;letter-spacing:.1em;opacity:.55;}
.CascadeCard-title{font-size:1.4rem;margin:.9rem 0;}
.CascadeCard-body{color:inherit;opacity:.85;font-size:.98rem;max-width:520px;}
.CascadeCard--01{background:var(--paper);color:var(--ink);}
.CascadeCard--02{background:var(--lime);color:var(--ink);}
.CascadeCard--03{background:var(--paper);color:var(--ink);}
.CascadeCard--04{background:var(--lime);color:var(--ink);}
.CascadeCard:hover{transform:translateY(-8px);box-shadow:var(--shadow-float);}

@media(min-width:900px){
  .Cascade{padding:0 4rem;}
  .CascadeCard{max-width:640px;}
  .CascadeCard--01{margin-left:0;z-index:1;}
  .CascadeCard--02{margin-left:8%;margin-top:-2.5rem;z-index:2;}
  .CascadeCard--03{margin-left:16%;margin-top:-2.5rem;z-index:3;}
  .CascadeCard--04{margin-left:24%;margin-top:-2.5rem;z-index:4;}
}
@media(max-width:899px){
  .CascadeCard{margin-top:1.4rem;}
}


.TeamGrid{max-width:1280px;margin:3rem auto 0;display:grid;gap:1.8rem;grid-template-columns:repeat(2,1fr);}
@media(min-width:900px){.TeamGrid{grid-template-columns:repeat(4,1fr);}}
.TeamCard{background:var(--ink-soft);border-radius:var(--radius-md);padding:1.2rem;text-align:center;transition:transform .4s var(--ease);}
.TeamCard:hover{transform:translateY(-6px);}
.TeamCard-photo{border-radius:var(--radius-md);overflow:hidden;margin-bottom:1rem;aspect-ratio:4/5;}
.TeamCard-photo img{width:100%;height:100%;border-radius:0;}
.TeamCard-name{font-size:1.05rem;color:var(--paper);}
.TeamCard-role{font-size:.85rem;color:var(--lime);margin-top:.3rem;}


.ValueGrid{max-width:1280px;margin:3rem auto 0;display:grid;gap:1.6rem;grid-template-columns:1fr;}
@media(min-width:700px){.ValueGrid{grid-template-columns:repeat(2,1fr);}}
.ValueCard{background:var(--ink-soft);border:1px solid var(--ink-line);border-radius:var(--radius-md);padding:2.2rem;transition:transform .4s var(--ease), border-color .4s var(--ease);}
.ValueCard:hover{transform:translateY(-6px);border-color:var(--lime);}
.ValueCard-icon{width:52px;height:52px;border-radius:50%;background:var(--lime);color:var(--ink);display:flex;align-items:center;justify-content:center;font-size:1.2rem;margin-bottom:1.2rem;}
.ValueCard-title{color:var(--paper);font-size:1.2rem;margin-bottom:.7rem;}
.ValueCard-body{color:var(--paper-soft);font-size:.95rem;}


.SolutionRow{display:flex;gap:1.6rem;padding:2.4rem 0;border-bottom:1px solid var(--paper-line);}
.SolutionRow:first-child{padding-top:0;}
.SolutionRow-num{font-size:2.2rem;font-weight:700;color:var(--lime-dark);min-width:70px;}
.SolutionRow-title{font-size:1.35rem;margin-bottom:.6rem;}
.SolutionRow-body{color:var(--ink-tint-70);max-width:700px;}


.Timeline{display:flex;flex-direction:column;gap:2.6rem;position:relative;}
.TimelineStep{display:flex;gap:1.6rem;}
.TimelineStep-marker{
  width:52px;height:52px;flex-shrink:0;border-radius:50%;
  background:var(--ink);color:var(--lime);
  display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.2rem;
}
.TimelineStep-title{font-size:1.3rem;margin-bottom:.5rem;}
.TimelineStep-body{color:var(--ink-tint-70);max-width:640px;}


.ContactForm-wrap{background:var(--ink);color:var(--paper);border-radius:var(--radius-lg);padding:2.4rem 2rem;}
.FormProgress{display:flex;align-items:center;gap:.8rem;margin-bottom:2rem;}
.FormProgress-step{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--paper-soft);opacity:.5;transition:opacity .3s var(--ease);}
.FormProgress-step.is-active{opacity:1;color:var(--paper);}
.FormProgress-num{width:28px;height:28px;border-radius:50%;background:var(--ink-soft);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.85rem;}
.FormProgress-step.is-active .FormProgress-num{background:var(--lime);color:var(--ink);}
.FormProgress-line{flex:1;height:2px;background:var(--ink-line);}

.ContactForm-step{display:none;flex-direction:column;gap:.4rem;}
.ContactForm-step.is-active{display:flex;animation:stepIn .5s var(--ease);}
@keyframes stepIn{from{opacity:0;transform:translateX(16px);}to{opacity:1;transform:translateX(0);}}
.ContactForm-label{font-size:.85rem;font-weight:600;margin-top:1rem;color:var(--paper-soft);}
.ContactForm-input{
  background:var(--ink-soft);border:1.5px solid var(--ink-line);color:var(--paper);
  padding:.9rem 1rem;border-radius:var(--radius-sm);font-size:1rem;
  transition:border-color .3s var(--ease);
}
.ContactForm-input:focus{outline:none;border-color:var(--lime);}
.ContactForm-textarea{resize:vertical;min-height:140px;}
.ContactForm-checkbox{display:flex;align-items:flex-start;gap:.7rem;margin-top:1.3rem;font-size:.85rem;color:var(--paper-soft);}
.ContactForm-checkbox input{margin-top:.25rem;width:20px;height:20px;flex-shrink:0;accent-color:var(--lime);}
.ContactForm-checkbox a{color:var(--lime);text-decoration:underline;}
.ContactForm-next{margin-top:1.8rem;align-self:flex-start;}
.ContactForm-actions{display:flex;gap:1rem;margin-top:1.8rem;flex-wrap:wrap;}
.ContactForm-actions .Btn--ghost{border-color:var(--ink-line);color:var(--paper);}
.ContactForm-actions .Btn--ghost:hover{background:var(--ink-soft);border-color:var(--paper);color:var(--paper);}

.ContactInfo{margin-top:1.6rem;display:flex;flex-direction:column;gap:.6rem;font-size:.95rem;color:var(--ink-tint-70);}
.ContactInfo i{color:var(--lime-dark);margin-right:.5rem;}
.ContactInfo a:hover{color:var(--ink);}

.MapFrame{margin-top:1.5rem;border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--ink-line);}
.MapFrame iframe{display:block;filter:grayscale(.2) contrast(1.05);}


.SiteFooter{background:var(--ink);color:var(--paper);padding:4rem 1.5rem 2.4rem;margin-top:auto;}
.SiteFooter-inner{max-width:760px;margin:0 auto;text-align:center;display:flex;flex-direction:column;align-items:center;gap:1.2rem;}
.SiteFooter-logo{height:28px;width:auto;}
.SiteFooter-tagline{color:var(--paper-soft);font-size:.95rem;max-width:460px;}
.SiteFooter-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:1.4rem;margin-top:.6rem;}
.SiteFooter-nav a{font-size:.9rem;color:var(--paper-soft);transition:color .3s var(--ease);}
.SiteFooter-nav a:hover{color:var(--lime);}
.SiteFooter-contact{display:flex;flex-wrap:wrap;justify-content:center;gap:1.4rem;font-size:.85rem;color:var(--paper-soft);margin-top:.4rem;}
.SiteFooter-contact a:hover{color:var(--lime);}
.SiteFooter-legal{display:flex;flex-wrap:wrap;justify-content:center;gap:1.2rem;margin-top:1.4rem;padding-top:1.4rem;border-top:1px solid var(--ink-line);width:100%;}
.SiteFooter-legal a{font-size:.8rem;color:var(--paper-soft);transition:color .3s var(--ease);}
.SiteFooter-legal a:hover{color:var(--lime);}
.SiteFooter-copy{font-size:.78rem;color:var(--ink-line);margin-top:.6rem;}

body{display:flex;flex-direction:column;min-height:100vh;}
main{flex:1;}


.BackToTop{
  position:fixed;bottom:1.6rem;right:1.6rem;z-index:90;
  width:52px;height:52px;border-radius:50%;
  background:var(--ink);color:var(--lime);font-size:1.1rem;
  display:flex;align-items:center;justify-content:center;
  box-shadow:var(--shadow-float);
  opacity:0;transform:translateY(20px);pointer-events:none;
  transition:opacity .35s var(--ease), transform .35s var(--ease), background .3s var(--ease);
}
.BackToTop.is-visible{opacity:1;transform:translateY(0);pointer-events:auto;}
.BackToTop:hover{background:var(--lime);color:var(--ink);}


.LegalPage{padding:4.5rem 1.5rem 6rem;background:var(--paper);}
.LegalPage-inner{max-width:820px;margin:0 auto;}
.LegalPage-updated{display:inline-block;background:var(--lime);color:var(--ink);font-weight:700;font-size:.8rem;padding:.4rem .9rem;border-radius:var(--radius-sm);margin-bottom:1.2rem;}
.LegalPage-heading{font-size:clamp(2rem,4vw,3rem);margin-bottom:1.4rem;}
.LegalPage-intro{color:var(--ink-tint-70);font-size:1.05rem;margin-bottom:3rem;}
.LegalSection{padding:2rem 0;border-top:1px solid var(--paper-line);}
.LegalSection:first-of-type{border-top:1px solid var(--paper-line);}
.LegalSection-summary{
  display:inline-block;background:var(--ink);color:var(--lime);font-weight:600;font-size:.85rem;
  padding:.7rem 1.1rem;border-radius:var(--radius-sm);margin-bottom:1.1rem;
}
.LegalSection-title{font-size:1.25rem;margin-bottom:.8rem;}
.LegalSection-body{color:var(--ink-tint-70);font-size:.98rem;}
.LegalSection-body a{color:var(--lime-dark);text-decoration:underline;}

.CookieTable{border:1px solid var(--paper-line);border-radius:var(--radius-md);overflow:hidden;margin-top:1rem;}
.CookieTable-row{display:grid;grid-template-columns:1fr 2fr 1fr;gap:1rem;padding:.9rem 1.1rem;font-size:.88rem;border-bottom:1px solid var(--paper-line);}
.CookieTable-row:last-child{border-bottom:none;}
.CookieTable-row--head{background:var(--ink);color:var(--paper);font-weight:700;}
.CookieTable-row:not(.CookieTable-row--head):nth-child(even){background:var(--paper-soft);}


.ThanksPage{min-height:60vh;display:flex;align-items:center;justify-content:center;padding:6rem 1.5rem;}
.ThanksPage-inner{max-width:640px;text-align:center;}
.ThanksPage-heading{font-size:clamp(2.4rem,6vw,4rem);margin-bottom:1.4rem;}
.ThanksPage-sub{color:var(--ink-tint-70);font-size:1.1rem;margin-bottom:2rem;}

@media(max-width:640px){
  .Section{padding:3.5rem 1.2rem;}
  .PageHero{padding:2.6rem 1.2rem 3rem;}
  .SolutionRow{flex-direction:column;gap:.7rem;}
}