/* ============================================================
   FIETSENMAKER (FietsVakwerk Voorbeeld) — client-premium
   Palette: Deep workshop charcoal + teal + burnt orange
   Fonts: Barlow Condensed (display) + Outfit (body)
   ============================================================ */

:root{--color-bg:#1C2127;--color-text:#E8EAD3;--color-primary:#E8652E;--color-accent:#2A9D8F;--color-white:#E8EAD3;--color-black:#1C2127;--page-bg:var(--color-bg);--logo-bg:var(--color-primary);--logo-fg:var(--color-text);--footer-bg:var(--color-text);--footer-text:var(--color-bg);--footer-accent:var(--color-accent);--sp-1:.3125rem;--sp-2:.625rem;--sp-3:.9375rem;--sp-4:1.25rem;--sp-5:1.875rem;--sp-6:2.5rem;--sp-7:5rem;--sp-8:6.25rem;--sp-9:9.375rem;--sp-10:12.5rem;--grid-gap:1.25rem;--grid-bleed:1.25rem;--font-display:'Barlow Condensed',sans-serif;--font-body:'Outfit',sans-serif;--zoom-amount:.6}

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}html{font-size:max(16px,calc(16px + var(--zoom-amount)*16*(100vw - 1440px)/1440));scroll-behavior:auto}body{font-family:var(--font-body);font-weight:500;color:var(--color-text);background-color:var(--color-bg);overflow-x:hidden;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}ul,ol{list-style:none}img,video{display:block;max-width:100%;height:auto}::selection{background-color:var(--color-primary);color:var(--color-text)}

html.lenis{height:auto}html.lenis.lenis-smooth{scroll-behavior:auto}html.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}html.lenis.lenis-stopped{overflow:hidden}html.lenis.lenis-scrolling iframe{pointer-events:none}

.text-xxs{font-size:.875rem;line-height:130%}.text-xs{font-size:1.125rem;line-height:130%}.text-s{font-size:1.375rem;line-height:130%}.text-m{font-size:1.875rem;line-height:110%}.text-l{font-size:2.8125rem;line-height:110%}.text-xl{font-size:4.375rem;line-height:100%}.text-xxl{font-size:7rem;line-height:90%}.text-label{font-size:.75rem;line-height:100%}
@media(min-width:768px){.md-text-l{font-size:2.8125rem;line-height:110%}.md-text-xl{font-size:4.375rem;line-height:100%}.md-text-xxl{font-size:10rem;line-height:90%}}
.font-display{font-family:var(--font-display);font-weight:900;text-transform:uppercase}.font-body{font-family:var(--font-body);font-weight:500}

.page-wrapper{position:relative;z-index:10;margin-bottom:50vh;overflow:hidden}@media(min-width:768px){.page-wrapper{margin-bottom:28rem}}.page-bg{min-height:100vh;background-color:var(--page-bg);transition:background-color .5s ease-in-out}.section-padding{padding-left:var(--sp-3);padding-right:var(--sp-3)}@media(min-width:768px){.section-padding{padding-left:var(--sp-4);padding-right:var(--sp-4)}}.grid-2{display:grid;grid-template-columns:1fr;gap:var(--grid-gap)}@media(min-width:768px){.grid-2{grid-template-columns:1fr 1fr}}.grid-3{display:grid;grid-template-columns:1fr;gap:var(--grid-gap);row-gap:5rem}@media(min-width:768px){.grid-3{grid-template-columns:repeat(3,1fr)}}

.bg-strip{position:fixed;top:0;left:0;width:100%;height:30vh;background-color:var(--color-bg);z-index:0}
.header{position:fixed;top:0;left:0;z-index:50;display:flex;align-items:flex-start;justify-content:space-between;width:100%;padding:var(--sp-4);pointer-events:none}.header a,.header button,.header nav{pointer-events:auto}.header-logo{width:5rem;height:auto;opacity:0;transform:translateY(-100%);transition:opacity .5s ease,transform .5s ease}.header-logo.visible{opacity:1;transform:translateY(0)}.header-logo svg{width:100%;height:auto;fill:var(--logo-fg)}
.nav-list{display:none;gap:var(--sp-4)}@media(min-width:768px){.nav-list{display:flex}}.nav-list a{font-family:var(--font-display);font-weight:900;text-transform:uppercase;font-size:1.125rem;transition:color .3s ease}.nav-list a:hover,.nav-list a.active{color:var(--color-primary)}
.menu-btn{display:flex;align-items:center;background:none;border:none;color:var(--color-text);font-family:var(--font-display);font-weight:900;text-transform:uppercase;font-size:1.125rem;cursor:pointer;position:relative;overflow:hidden;height:1.5rem}@media(min-width:768px){.menu-btn{display:none}}.menu-btn span{display:flex;transition:transform .5s ease-in-out}.menu-btn .label-open{transform:translateY(0)}.menu-btn .label-close{position:absolute;top:0;right:0;transform:translateY(100%)}.menu-btn.is-open .label-open{transform:translateY(-100%)}.menu-btn.is-open .label-close{transform:translateY(0)}
.mobile-menu{position:fixed;inset:0;z-index:40;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .3s ease-out}.mobile-menu.is-open{opacity:1;pointer-events:auto}.mobile-menu-backdrop{position:absolute;inset:0;backdrop-filter:blur(37.5px);-webkit-backdrop-filter:blur(37.5px);background:rgba(28,33,39,.75)}.mobile-menu-panel{position:relative;z-index:1;background:var(--color-text);padding:var(--sp-7) var(--sp-6);transform:skewX(-6deg) skewY(-6deg) scale(.9);opacity:0;transition:all .7s ease-out}.mobile-menu.is-open .mobile-menu-panel{transform:skewX(-6deg) skewY(-6deg) scale(1);opacity:1}.mobile-menu-nav{display:flex;flex-direction:column;gap:var(--sp-4)}.mobile-menu-nav a{font-family:var(--font-display);font-weight:900;text-transform:uppercase;font-size:2.8125rem;color:var(--color-bg);display:block;opacity:0;transform:skewX(6deg) skewY(6deg) translateY(20px);transition:all .5s ease-out}.mobile-menu.is-open .mobile-menu-nav a{opacity:1;transform:skewX(6deg) skewY(6deg) translateY(0)}.mobile-menu.is-open .mobile-menu-nav a:nth-child(1){transition-delay:.1s}.mobile-menu.is-open .mobile-menu-nav a:nth-child(2){transition-delay:.2s}.mobile-menu.is-open .mobile-menu-nav a:nth-child(3){transition-delay:.3s}.mobile-menu.is-open .mobile-menu-nav a:nth-child(4){transition-delay:.4s}.mobile-menu-nav a:hover{color:var(--color-primary)}

.intro-banner{min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding:var(--sp-9) var(--sp-3) var(--sp-7);position:relative;overflow:hidden}@media(min-width:768px){.intro-banner{padding:var(--sp-9) var(--sp-4) var(--sp-7)}}.intro-blocks{display:flex;flex-direction:column;gap:.5rem;align-items:flex-start}.intro-block{display:inline-block;background:var(--color-primary);color:var(--color-bg);font-family:var(--font-display);font-weight:900;text-transform:uppercase;padding:.15em .3em;line-height:1;position:relative;will-change:transform,opacity}.intro-block--hello{font-size:clamp(3rem,8vw,6rem)}.intro-block--weare{font-size:clamp(3rem,8vw,6rem);margin-left:clamp(3rem,10vw,8rem)}.intro-block--brand{font-size:clamp(4rem,12vw,9rem);transform-origin:top left}.intro-block--hello::after{content:'';position:absolute;bottom:-.6em;right:1em;width:0;height:0;border-left:.5em solid transparent;border-right:.5em solid transparent;border-top:.7em solid var(--color-primary)}.intro-tagline{max-width:35rem;margin-top:var(--sp-6);margin-left:auto;font-size:clamp(1.125rem,2vw,1.5rem);line-height:1.4;will-change:transform,opacity}

.angled-banner{padding:var(--sp-9) 0;overflow:hidden;position:relative}.angled-strip{display:inline-flex;align-items:center;background:var(--color-primary);padding:.2em .5em;transform:rotate(-4deg);margin-left:-2%;white-space:nowrap;margin-bottom:.3rem}.angled-strip:nth-child(2){transform:rotate(-4deg) translateX(10%)}.angled-strip span{font-family:var(--font-display);font-weight:900;text-transform:uppercase;font-size:clamp(2.5rem,7vw,6rem);line-height:1.1;color:var(--color-bg)}.angled-strip .highlight{color:var(--color-text)}

.hero-video{margin-top:var(--sp-6);border-radius:.5rem;overflow:hidden;aspect-ratio:16/9;background:rgba(255,255,255,.15);opacity:0;transform:translateY(40px);transition:all 1s cubic-bezier(.55,.01,0,1) .6s;position:relative}.hero-video.revealed{opacity:1;transform:translateY(0)}.hero-video video,.hero-video img{width:100%;height:100%;object-fit:cover}
.text-reveal-section{padding:var(--sp-9) var(--sp-3);position:relative}@media(min-width:768px){.text-reveal-section{padding:var(--sp-9) var(--sp-4)}}.text-reveal-content{font-size:clamp(1.8rem,4vw,3rem);line-height:1.25;max-width:55rem;font-weight:500}.text-reveal-content .word{display:inline;margin-right:0}.text-reveal-content .word::after{content:' '}.text-reveal-content .char{display:inline;opacity:.15;transition:opacity .05s ease}.text-reveal-content .char.revealed{opacity:1}.text-reveal-media{margin-top:var(--sp-6);border-radius:.5rem;overflow:hidden;aspect-ratio:1/1;max-width:25rem}

.divider{width:100%;height:1px;background:rgba(232,234,211,.4);margin:var(--sp-5) 0}
.services-section{padding:var(--sp-7) var(--sp-3) var(--sp-8)}@media(min-width:768px){.services-section{padding:var(--sp-7) var(--sp-4) var(--sp-8)}}.services-heading{font-family:var(--font-display);font-weight:900;text-transform:uppercase;font-size:clamp(2.5rem,6vw,5.5rem);letter-spacing:-.02em;margin-bottom:var(--sp-6)}.services-grid{display:grid;grid-template-columns:1fr;gap:var(--grid-gap)}@media(min-width:768px){.services-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:1024px){.services-grid{grid-template-columns:repeat(3,1fr)}}.service-item{opacity:0;transform:translateY(30px)}.service-item.revealed{opacity:1;transform:translateY(0);transition:all .7s ease-out}.service-title{font-family:var(--font-display);font-weight:900;text-transform:uppercase;font-size:clamp(1.25rem,2vw,1.5rem);letter-spacing:-.01em;position:relative;padding-left:1.5em;margin-bottom:var(--sp-3);padding-bottom:var(--sp-3);border-bottom:1px solid rgba(232,234,211,.3)}.service-title::before{content:'';position:absolute;left:0;top:.2em;width:.6em;height:.6em;background:var(--color-primary);border-radius:50%}.service-desc{font-size:.95rem;line-height:1.6;opacity:.85}.service-desc p{margin-bottom:.75rem}

.work-section{padding:var(--sp-7) var(--sp-3) var(--sp-8)}@media(min-width:768px){.work-section{padding:var(--sp-7) var(--sp-4) var(--sp-8)}}.work-heading{font-family:var(--font-display);font-weight:900;text-transform:uppercase;font-size:clamp(2.5rem,6vw,5.5rem);letter-spacing:-.02em;margin-bottom:var(--sp-6)}
.carousel{overflow:visible;position:relative}.carousel-track{display:flex;backface-visibility:hidden;gap:var(--grid-gap);cursor:grab}.carousel-track.is-dragging{cursor:grabbing}.carousel-slide{flex:0 0 75%;min-width:0}@media(min-width:1024px){.carousel-slide{flex:0 0 40%}}
.case-card{display:block;position:relative}.case-card-image{overflow:hidden;border-radius:.5rem;aspect-ratio:16/9;background:rgba(255,255,255,.08)}.case-card-image img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}@media(min-width:768px){.case-card:hover .case-card-image img{transform:scale(1.05)}}.case-card-info{display:flex;justify-content:space-between;margin-top:var(--sp-1);font-size:.875rem;transition:color .3s ease}@media(min-width:768px){.case-card:hover .case-card-info{color:var(--color-primary)}}
.see-all-btn{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--font-display);font-weight:900;text-transform:uppercase;font-size:1.125rem;margin-top:var(--sp-6);padding:.75rem 1.5rem;border:1px solid rgba(232,234,211,.4);border-radius:.25rem;background:none;color:var(--color-text);cursor:pointer;transition:transform .3s ease-out}.see-all-btn:hover{transform:skewY(-6deg) scale(1.02) translateY(-2%)}

.filters{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-bottom:var(--sp-6)}.filter-btn{position:relative;display:flex;align-items:center;padding:.75rem .5rem;border:1px solid rgba(232,234,211,.25);border-radius:.25rem;background:none;color:var(--color-text);font-family:var(--font-body);font-size:.75rem;cursor:pointer;transition:all .3s ease}.filter-btn.active{border-color:var(--color-text);padding-left:1.25rem}.filter-btn.active::before{content:'';position:absolute;left:.5rem;width:.4rem;height:.4rem;background:var(--color-primary);border-radius:50%;animation:filterDotIn .5s ease forwards}@keyframes filterDotIn{from{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}

.work-grid{opacity:0;transition:opacity .7s ease .7s}.work-grid.revealed{opacity:1}.grid-item-enter{opacity:0;transform:scale(.95);transition:all .5s ease-out}.grid-item-enter.visible{opacity:1;transform:scale(1)}
.footer-logo-wrap{width:100%;padding:0 var(--sp-3);aspect-ratio:1440/675;display:flex;align-items:center}@media(min-width:768px){.footer-logo-wrap{padding:0 var(--sp-4)}}.footer-logo-wrap svg{width:100%;height:auto}
.footer{position:fixed;bottom:0;left:0;width:100%;z-index:-10;background:var(--footer-bg);color:var(--footer-text);padding:var(--sp-7) var(--sp-3) var(--sp-6);min-height:50vh;display:flex;flex-direction:column;justify-content:center}@media(min-width:768px){.footer{padding:var(--sp-8) var(--sp-4) var(--sp-7);min-height:28rem}}.footer-heading{font-family:var(--font-display);font-weight:900;text-transform:uppercase;font-size:clamp(2.5rem,7vw,6rem);line-height:.95;letter-spacing:-.02em;margin-bottom:var(--sp-6)}.footer-heading .accent{color:var(--footer-accent)}.footer-contact{display:flex;flex-direction:column;gap:var(--sp-2);font-size:1.125rem}.footer-contact a{transition:color .3s ease}.footer-contact a:hover{color:var(--color-primary)}.footer-bottom{display:flex;justify-content:space-between;align-items:flex-end;margin-top:var(--sp-7);font-size:.875rem;opacity:.6}

.contact-section{min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding:var(--sp-9) var(--sp-3) var(--sp-8)}@media(min-width:768px){.contact-section{padding:var(--sp-9) var(--sp-4) var(--sp-8)}}.contact-heading{font-family:var(--font-display);font-weight:900;text-transform:uppercase;font-size:clamp(2.5rem,8vw,7rem);line-height:.95;margin-bottom:var(--sp-7)}.contact-form{max-width:40rem}.form-group{margin-bottom:var(--sp-5)}.form-label{display:block;font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;opacity:.5;margin-bottom:var(--sp-2)}.form-input,.form-textarea{width:100%;background:none;border:none;border-bottom:1px solid rgba(232,234,211,.4);color:var(--color-text);font-family:var(--font-body);font-size:1.125rem;padding:var(--sp-2) 0;outline:none;transition:border-color .3s ease}.form-input:focus,.form-textarea:focus{border-color:var(--color-primary)}.form-textarea{resize:vertical;min-height:6rem}.form-submit{display:inline-flex;align-items:center;gap:.75rem;font-family:var(--font-display);font-weight:900;text-transform:uppercase;font-size:1.125rem;padding:1rem 2rem;border:1px solid var(--color-text);border-radius:.25rem;background:none;color:var(--color-text);cursor:pointer;transition:all .3s ease-out}.form-submit:hover{background:var(--color-primary);border-color:var(--color-primary);transform:skewY(-3deg) scale(1.02)}

.ticker-wrap{overflow:hidden;white-space:nowrap;padding:var(--sp-5) 0}.ticker{display:inline-flex;animation:ticker var(--duration,30s) infinite linear}.ticker-item{font-family:var(--font-display);font-weight:900;text-transform:uppercase;font-size:clamp(3rem,8vw,7rem);line-height:1;padding-right:var(--sp-6);white-space:nowrap}.ticker-item em{font-style:italic;opacity:.5}.ticker-dot{display:inline-block;width:.4em;height:.4em;background:var(--color-primary);border-radius:50%;margin:0 var(--sp-4);vertical-align:middle}@keyframes ticker{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}

.section-reveal{opacity:0;transition:opacity .7s ease .2s}.section-reveal.revealed{opacity:1}
.team-block{padding-bottom:var(--sp-8);opacity:0;transform:translateY(40px)}.team-block.revealed{opacity:1;transform:translateY(0);transition:all .8s ease-out}.team-image{width:100%;overflow:hidden;border-radius:.5rem;aspect-ratio:1/1}.team-name{font-size:clamp(1.875rem,3vw,2.8125rem);margin-bottom:var(--sp-6)}.team-role{font-size:1.375rem;opacity:.5;margin-bottom:var(--sp-3)}.team-bio{font-size:1.375rem;line-height:1.5}

.page-404{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--sp-6) var(--sp-3);text-align:center}.page-404 h1{font-family:var(--font-display);font-weight:900;font-size:clamp(5rem,15vw,12rem);color:var(--color-primary);line-height:1}.page-404 p{font-size:1.375rem;margin:var(--sp-4) 0 var(--sp-6);max-width:30rem;opacity:.8}.game-canvas{border:2px solid rgba(232,234,211,.3);border-radius:.5rem;max-width:100%;margin-bottom:var(--sp-5)}.game-info{display:flex;gap:var(--sp-5);font-family:var(--font-display);font-weight:900;text-transform:uppercase;font-size:1.125rem;margin-bottom:var(--sp-4)}.game-info .accent{color:var(--color-primary)}.back-home-btn{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--font-display);font-weight:900;text-transform:uppercase;font-size:1rem;padding:.75rem 1.5rem;border:1px solid rgba(232,234,211,.4);border-radius:.25rem;color:var(--color-text);transition:all .3s ease-out}.back-home-btn:hover{background:var(--color-primary);border-color:var(--color-primary);transform:skewY(-3deg) scale(1.02)}

.blog-grid{row-gap:var(--sp-6)}.cluster-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--grid-gap)}@media(min-width:768px){.cluster-grid{grid-template-columns:repeat(4,1fr)}}.cluster-card{display:flex;flex-direction:column;align-items:center;text-align:center;padding:var(--sp-5) var(--sp-3);background:rgba(255,255,255,.06);border:1px solid rgba(232,234,211,.1);border-radius:.5rem;transition:all .3s ease;cursor:pointer}.cluster-card:hover{background:rgba(255,255,255,.1);border-color:rgba(232,234,211,.3);transform:translateY(-4px)}.cluster-icon{color:var(--color-primary);margin-bottom:var(--sp-3)}.cluster-title{font-family:var(--font-display);font-weight:900;text-transform:uppercase;font-size:1.25rem;margin-bottom:var(--sp-1)}.cluster-count{font-size:.875rem;opacity:.5}
.blog-card{display:block;height:100%;transition:transform .3s ease}.blog-card:hover{transform:translateY(-4px)}.blog-card-image{position:relative;overflow:hidden;border-radius:.5rem;aspect-ratio:16/9;background:rgba(255,255,255,.08)}.blog-card-image img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}.blog-card:hover .blog-card-image img{transform:scale(1.05)}.blog-badge{position:absolute;top:var(--sp-2);right:var(--sp-2);background:var(--color-bg);color:var(--color-text);font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:.4rem .65rem;border-radius:.25rem}.blog-badge--pillar{background:var(--color-primary)}.blog-card-body{padding:var(--sp-3) 0}.blog-card-meta{display:flex;align-items:center;gap:var(--sp-2);font-size:.8rem;opacity:.5;margin-bottom:var(--sp-2)}.blog-cluster-tag{color:var(--color-primary);font-weight:600;text-transform:uppercase;letter-spacing:.05em;opacity:1}.blog-card-title{font-family:var(--font-display);font-weight:900;text-transform:uppercase;font-size:1.25rem;line-height:1.15;margin-bottom:var(--sp-2);transition:color .3s ease}.blog-card:hover .blog-card-title{color:var(--color-primary)}.blog-card-title--large{font-size:clamp(1.5rem,3vw,2.5rem)}.blog-card-excerpt{font-size:.95rem;line-height:1.5;opacity:.7}.blog-item--pillar{grid-column:span 1}@media(min-width:768px){.blog-item--pillar{grid-column:span 2}}

.placeholder-img{width:100%;height:100%;background:linear-gradient(135deg,rgba(255,255,255,.08) 0%,rgba(255,255,255,.03) 100%);display:flex;align-items:center;justify-content:center;font-size:.875rem;opacity:.4;text-transform:uppercase;letter-spacing:.1em}
.hidden{display:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.opacity-50{opacity:.5}.text-primary{color:var(--color-primary)}

@media(max-width:768px){.header-nav{display:none}.grid-2{grid-template-columns:1fr}.footer-logo-wrap{aspect-ratio:auto}}
