*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Familjen Grotesk',system-ui,sans-serif;color:#233749;background:#eeeeec;-webkit-font-smoothing:antialiased;line-height:1.6;overflow-x:hidden}
::selection{background:#233749;color:#eeeeec}
input,select,textarea,button{font-family:inherit}
img{max-width:100%}
a{color:inherit}

/* ---------- keyframes ---------- */
@keyframes fv-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}}
@keyframes fv-float2{0%,100%{transform:translateY(0)}50%{transform:translateY(10px)}}
@keyframes fv-flow{to{stroke-dashoffset:-40}}
@keyframes fv-sheen{0%{transform:translateX(-260px) rotate(16deg)}55%,100%{transform:translateX(760px) rotate(16deg)}}
@keyframes fv-up{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@keyframes fv-pulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.18);opacity:.7}}
@keyframes fv-wipe{0%{transform:scaleY(0)}45%{transform:scaleY(1)}55%{transform:scaleY(1)}100%{transform:scaleY(0)}}
@keyframes fv-mark{0%,100%{opacity:0;transform:translate(-50%,-50%) scale(.55)}40%,55%{opacity:1;transform:translate(-50%,-50%) scale(1)}}
@keyframes fv-drift{0%,100%{transform:translate(0,0)}50%{transform:translate(14px,-16px)}}
@keyframes fv-cta-pulse{0%,100%{box-shadow:0 0 0 0 rgba(213,225,222,.5)}70%,100%{box-shadow:0 0 0 18px rgba(213,225,222,0)}}
@keyframes fv-shine{0%{left:-60%}22%{left:130%}100%{left:130%}}

/* ---------- reveal on scroll ---------- */
.fv-reveal{opacity:0}
.fv-reveal.fv-shown{opacity:1}

/* ---------- buttons / links ---------- */
.fv-btn{transition:transform .32s cubic-bezier(.22,1,.36,1),box-shadow .32s,background .3s,border-color .3s}
.fv-btn2{position:relative}
.fv-btn2::after{content:'→';display:inline-block;margin-left:8px;transition:transform .32s cubic-bezier(.22,1,.36,1)}
.fv-btn2:hover{background:rgba(35,55,73,.06);border-color:rgba(35,55,73,.55);transform:translateY(-3px)}
.fv-btn2:hover::after{transform:translateX(6px)}

.fv-cta{position:relative;overflow:hidden;transition:transform .3s cubic-bezier(.22,1,.36,1),box-shadow .3s,background .3s}
.fv-cta::before{content:'';position:absolute;top:0;left:-60%;width:45%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.42),transparent);transform:skewX(-18deg);pointer-events:none;animation:fv-shine 5s ease-in-out infinite}
.fv-cta:hover{transform:translateY(-3px) scale(1.02);box-shadow:0 16px 34px rgba(0,0,0,.22)}
.fv-cta.fv-cta-dark:hover{background:#16273a}
.fv-cta.fv-cta-mint:hover{background:#fff}

.fv-cta-big{transition:transform .3s cubic-bezier(.22,1,.36,1);animation:fv-cta-pulse 2.6s ease-out infinite}
.fv-cta-big:hover{transform:translateY(-4px) scale(1.03)}
.fv-cta-big:hover span{transform:translateX(6px)}
.fv-cta-big span{transition:transform .3s cubic-bezier(.22,1,.36,1);display:inline-block}

.fv-contact-link{transition:color .2s}
.fv-contact-link:hover{color:#fff}

/* ---------- logo ---------- */
.fv-logo{transition:transform .55s cubic-bezier(.34,1.45,.5,1);cursor:pointer}
.fv-logo:hover{transform:scale(.82)}

/* ---------- responsive ---------- */
@media(max-width:860px){
  .fv-navlinks{display:none!important}
  .fv-hero{grid-template-columns:1fr!important}
  .fv-herovis{display:none!important}
  .fv-2col{grid-template-columns:1fr!important}
}
@media(max-width:560px){
  .fv-hidesm{display:none!important}
  header nav{padding:12px 16px;gap:10px}
  .fv-navcta{padding:9px 14px!important;font-size:12.5px!important}
}

/* ---------- section interactions ---------- */
.fv-serv{transition:transform .4s cubic-bezier(.22,1,.36,1),box-shadow .4s,border-color .4s;will-change:transform}
.fv-serv:hover{transform:translateY(-10px);box-shadow:0 24px 50px rgba(35,55,73,.16)}
.fv-pill{transition:transform .35s cubic-bezier(.34,1.4,.5,1)}
.fv-serv:hover .fv-pill{transform:scale(1.12) rotate(-3deg)}

.fv-prob{transition:border-color .4s}
.fv-prob:hover{border-color:rgba(213,225,222,.75)}
.fv-num{transition:transform .4s cubic-bezier(.22,1,.36,1),color .4s}
.fv-prob:hover .fv-num{transform:translateX(10px);color:#d5e1de}

.fv-why{transition:transform .4s cubic-bezier(.22,1,.36,1),box-shadow .4s}
.fv-why:hover{transform:translateY(-8px);box-shadow:0 20px 44px rgba(35,55,73,.12)}
.fv-dot{transition:transform .55s cubic-bezier(.34,1.4,.5,1)}
.fv-why:hover .fv-dot{transform:scale(.5)}

.fv-resnum{display:inline-block;transition:transform .45s cubic-bezier(.34,1.5,.5,1)}
.fv-resnum:hover{transform:scale(1.16) translateY(-4px)}

.fv-plan{transition:transform .4s cubic-bezier(.22,1,.36,1),box-shadow .4s,border-color .4s,background .4s}
.fv-plan:hover{transform:translateY(-10px);box-shadow:0 30px 60px rgba(0,0,0,.34);border-color:rgba(213,225,222,.55)!important}

.fv-faqq{transition:color .2s}
.fv-faqrow:hover .fv-faqq{color:#6f857e}

.fv-navlinks a{position:relative}
.fv-navlinks a::after{content:'';position:absolute;left:0;bottom:-5px;width:0;height:2px;background:#6f857e;transition:width .28s}
.fv-navlinks a:hover::after{width:100%}

/* ---------- page transition curtain ---------- */
#fv-curtain{position:fixed;inset:0;z-index:2000;pointer-events:none;transform:scaleY(0);transform-origin:top}
#fv-curtain.fv-go{animation:fv-wipe .82s cubic-bezier(.76,0,.24,1) forwards}
#fv-curtain::before{content:'';position:absolute;inset:0;background:#133234}
#fv-curtain span{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) scale(.6);opacity:0}
#fv-curtain.fv-go span{animation:fv-mark .82s ease forwards}

/* ---------- lang toggle ---------- */
.fv-langtoggle{display:flex;align-items:center;border:1px solid rgba(35,55,73,.25);border-radius:999px;overflow:hidden;font-size:12px;font-weight:600;flex-shrink:0}
.fv-langbtn{padding:6px 13px;border:none;cursor:pointer;white-space:nowrap;background:transparent;color:#3c4c58;font-weight:600;font-size:12px}
.fv-langbtn.fv-active{background:#233749;color:#eeeeec}

/* ---------- faq ---------- */
.fv-faq-toggle{width:100%;background:none;border:none;cursor:pointer;text-align:left;padding:24px 0;display:flex;justify-content:space-between;align-items:flex-start;gap:20px}
.fv-faq-icon{font-size:26px;color:#6f857e;line-height:1;flex-shrink:0;transition:transform .25s;transform:rotate(0deg)}
.fv-faqrow.fv-open .fv-faq-icon{transform:rotate(45deg)}
.fv-faq-panel{max-height:0;overflow:hidden;transition:max-height .35s ease}
.fv-faqrow.fv-open .fv-faq-panel{max-height:240px}
.fv-faq-panel p{font-family:'Newsreader',serif;font-size:17px;line-height:1.55;color:#4a5a67;padding-bottom:26px;max-width:60ch}
