/* ===== Base ===== */

body{
font-family: "Inter", sans-serif;
}


*{ box-sizing:border-box; }
html{
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  background-color:#111111;
  position: relative;

  overflow-x:hidden;
}
body{ margin:0; min-height:100%; }
a{ text-decoration:none; color:inherit; }
img{ vertical-align: top; border:0; }
ul{ margin:0; padding:0; }
ul li{ list-style:none; }
.preserve-whitespace{ white-space: pre-wrap; }
.cfix:after{ clear:both; content:' '; display:block; height:0; overflow:hidden; }

/* ===== Layout width ===== */
.site-wrap, .site-container{ position:relative; width:100%; }
.site-content{
  margin-left:4%;
  margin-right:4%;
  width:92%;
}

/* ===== Header ===== */
.site-header{
  display:flex;
  align-items:center;
  height:160px;
  padding-left:4%;
  padding-right:4%;
  padding-top:0;
  padding-bottom:10px;
  position:fixed;
  top:0;
  left:0;
  width:100%;
  z-index:50;
  background:#111111;
}
.site-wrap{
  padding-top:160px;
}
nav{
  float:left;
  width:30%;
  max-width:100%;
  text-align:left;
  padding-left:0%;
  padding-right:0%;
}
nav .gallery-title, nav .page-title{
  display:inline-block;
  vertical-align:middle;
  padding-left:0px;
  padding-right:20px;
}
nav .gallery-title a,
nav .page-title a{
  color:#AEAEAE;
  font-family:"Clash Display", sans-serif;
  font-size:20px;
  line-height:20px;
  font-weight:500;
  text-transform:uppercase;
}
nav .gallery-title a:hover,
nav .page-title a:hover{ color:#DB1009; }
nav .gallery-title a.active{ color:#DB1009; }
nav .page-title a.active{
  color:#DB1009;
}

.logo-wrap{
  flex:1;
  width:40%;
  max-width:100%;
  margin-left:auto;
  margin-right:auto;
  padding:0;
}
.logo-text{
  margin-left:auto;
  margin-right:auto;
  text-align:center;
}
.logo{
  font-family:"Clash Display", sans-serif;
  font-size:40px;
  line-height:40px;
  font-weight:600;
  padding-left:5%;
  padding-right:5%;
  text-transform:uppercase;
  letter-spacing:0.04em;
}
.logo, .logo a{ color:#fff; }
.logo a:hover{ color:#fff; }

.pf-nav-social{
  width:30%;
  display:flex;
  justify-content:center;
  align-items:center;
}

.pf-nav-social ul{
  display:flex;
  align-items:center;
  gap:22px;
}

.pf-nav-social li{
  display:flex;
}

.pf-nav-social a{
  display:flex;
  align-items:center;
  justify-content:center;
  width:26px;
  height:26px;
}

.pf-nav-social i{
  font-size:24px;
  color:#CCCCCC;
  transition:color .2s ease, transform .2s ease;
}

.pf-nav-social a:hover i{
  color:#DB1009;
  transform:scale(1.08);
}

/* hamburger like theme */
.hamburger-click-area{
  transform: translateY(-50%);
  cursor:pointer;
  display:none;
  padding:30px 5%;
  position:absolute;
  right:0;
  top:50%;
  -webkit-tap-highlight-color: transparent;
}
.hamburger{ position:relative; width:24px; }
.hamburger i{ display:block; height:2px; margin-bottom:4px; background:#fff; }
.hamburger i:last-child{ margin-bottom:0; }

/* ===== Responsive nav overlay ===== */
.responsive-nav{
  display:none;
  opacity:0;
  visibility:hidden;
}
@media (max-width: 932px){
  nav{ display:none; width:100%; padding:0; }
  .site-header{
    padding-left:5%;
    padding-right:5%;
    position:fixed;
    top:0;
    left:0;
    width:100%;
    z-index:50;
    background:#111111;
  }
  .pf-nav-social{ display:none; }
  .logo-wrap{ width:100%; padding:0; }
  .logo{ max-width:100%; padding:0 39px 0 0; }
  .logo-text{ font-size:33px; line-height:33px; padding-left:39px; }
  .hamburger-click-area{ display:block; }

  .responsive-nav{
    background-color:#111111;
    bottom:0; left:0; right:0; top:0;
    display:flex;
    height:100%;
    overflow:auto;
    -webkit-overflow-scrolling: touch;
    padding:50px 5% 0;
    position:fixed;
    text-align:center;
    z-index:99999;
    transition: visibility 0s ease .2s, opacity .2s ease 0s;
  }
  .responsive-nav nav{
    display:block;
    float:none;
    margin:auto;
    width:100%;
  }
  .responsive-nav .gallery-title,
  .responsive-nav .page-title{
    display:block;
    padding: 0 0 30px;
    text-align:center;
  }
  .responsive-nav .gallery-title a,
  .responsive-nav .page-title a{
    font-size:22px;
    line-height:32px;
  }

  .close-responsive-click-area{
    cursor:pointer;
    padding:50px 6%;
    position:fixed;
    right:0;
    top:0;
    -webkit-tap-highlight-color: transparent;
  }
  .close-responsive-button{
    height:20px;
    position:fixed;
    right:5%;
    width:20px;
    top:40px;
  }
  .close-responsive-button:before,
  .close-responsive-button:after{
    background-color:#fff;
    content:'';
    display:block;
    height:20px;
    left:50%;
    position:absolute;
    width:2px;
  }
  .close-responsive-button:before{ transform: rotate(45deg); }
  .close-responsive-button:after{ transform: rotate(-45deg); }

  body.show-responsive-nav{ overflow:hidden; }
  body.show-responsive-nav .responsive-nav{ opacity:1; visibility:visible; transition: visibility 0s ease 0s, opacity .2s ease 0s; }
}

@media (max-width:540px){
  .logo{
    font-family:"Clash Display", sans-serif;
    font-size:26px;
    line-height:26px;
    font-weight:600;
  }
}

/* ===== Project covers ===== */
.project-covers{
  display:flex;
  flex-wrap:wrap;
  padding-top:0;
  padding-bottom:0;

  /* ✅ NIEUW: spacing in alle richtingen */
  gap: 5px;
}

.project-cover{
  display:block;
  position:relative;

  /* ✅ AANGEPAST: geen margin-right meer, gap doet dit nu */
  margin: 0;

  /* ✅ 2 kolommen met gap=5px (zelfde look als Adobe) */
  width: calc(50% - 2.5px);
}

/* hold-space 16:9 */
.project-cover.hold-space .cover-image:before{
  content:'';
  display:block;
  width:100%;
  padding-bottom:56.25%;
}
.project-cover .cover-image-wrap{ overflow:hidden; position:relative; }
.project-cover .cover-image{
  position:relative;
  transform: translateZ(0);
  width:100%;
  margin-left:auto;
  margin-right:auto;
}
.project-cover .cover-image:after{
  content:'';
  display:block;
  position:absolute;
  inset:0;
  background-color:#111111;
  opacity:0;
  transition: background-color .2s ease, opacity .2s ease;
}
.project-cover:hover .cover-image:after{
  opacity:0.0;
}

.project-cover .cover{
  display:block;
  position:absolute;
  left:0; top:0;
  width:100%;
  min-height:100%;
  overflow:hidden;
  background-position:center center;
  background-repeat:no-repeat;
  background-size:cover;
}
.project-cover .cover__img{
  height: calc(100% + 2px);
  width: calc(100% + 2px);
  position:absolute;
  left:50%; top:50%;
  transform: translate(-50%, -50%);
  object-fit: cover;
  font-family: 'object-fit: cover;';
}

/* details (hidden until hover) */
.project-cover .details-wrap{
  opacity:0;
  position:absolute;
  top:0;
  left:50%;
  transform: translateX(-50%);
  width:100%;
  height:100%;
  padding-top:8%;
  padding-bottom:8%;
  transition: opacity .15s ease;
  -webkit-backface-visibility:hidden;
}
.project-cover:hover .details-wrap{ opacity:1; }

.project-cover .details{
  display:flex;
  height:100%;
  width:100%;
  align-items:center;
  background: rgba(255,255,255,0);
}
.project-cover .details-inner{
  width:100%;
  padding-left:8%;
  padding-right:8%;
  text-align:center;
}

.project-cover .title{
  color:#FFFFFF;
  font-family: "Clash Display", sans-serif;
  font-size:28px;
  line-height:32px;
  font-weight:600;
  text-transform:uppercase;
  padding-bottom:3px;
}

.project-cover .date{
  color:#999999;
  font-family: shzc, sans-serif;
  font-size:16px;
  line-height:20px;
  font-weight:400;
  padding-top:5px;
}

/* responsive title sizes */
@media (max-width: 932px){
  .project-cover .title{ font-size:18px; line-height:21px; padding-bottom:5px; }
  .project-cover .date{ font-size:14px; line-height:20px; }
}

@media (max-width:540px){
  .project-cover{
    width:100%;
  }
}

/* ===== Back to top fixed ===== */
.back-to-top{ display:none; }
.back-to-top-fixed{
  position:fixed;
  z-index:3;
  right:40px;
  bottom:40px;
  width:60px;
  height:60px;
  border-radius:60px;
  background: rgba(255,255,255,0.15);
  display:block;
}
.back-to-top-fixed:hover{
  background:#fff;
}
.icon-back-to-top{
  fill:#fff;
  opacity:0.7;
  width:24px;
  height:24px;
  position:absolute;
  left:50%;
  top:50%;
  transform: translateX(-50%) translateY(-50%);
}
.back-to-top-fixed:hover .icon-back-to-top{
  fill:#111111;
  opacity:1;
}
@media (max-width: 932px){
  .back-to-top-fixed{ display:none; }
}

/* ===== Footer ===== */
.site-footer{
  font-family: shzc, sans-serif;
  font-size:18px;
  line-height:20px;
  padding-top:60px;
  padding-bottom:100px;
  text-align:center;
  width:100%;
  color:#999999;
}
.site-footer a{ color:#999999; }
@media (max-width:932px){
  .site-footer{ font-size:14px; line-height:16px; padding-top:28px; padding-bottom:40px; }
}
@media (max-width:540px){
  .site-footer{ font-size:14px; line-height:20px; padding-top:25px; padding-bottom:34px; }
}

/* ===== Project detail page ===== */
.project-page-header{
  padding-top: 10px;
  padding-bottom: 30px;
  text-align: center;
}

.project-back{
  display: inline-block;
  margin: 10px 0 25px;
  color: #999;
  font-family: shzc, sans-serif;
  font-size: 16px;
  text-transform: uppercase;
}
.project-back:hover{ color:#fff; }

.project-title{
  margin:0;
  color:#fff;
  font-family:"Clash Display", sans-serif;
  font-weight:600;
  text-transform:uppercase;
  font-size:48px;
  line-height:52px;
}

.project-meta{
  margin: 12px 0 0;
  color: #999;
  font-family: shzc, sans-serif;
  font-size: 16px;
}

.project-video{
  margin: 0 auto;
  max-width: 1100px;
}

.video-embed{
  position: relative;
  width: 100%;
  padding-bottom: 56.25%; /* 16:9 */
  background: rgba(255,255,255,0.06);
  overflow: hidden;
}
.video-embed iframe{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.project-info{
  margin: 35px auto 0;
  max-width: 900px;
  color: #AEAEAE;
  font-family: shzc, sans-serif;
  font-size: 18px;
  line-height: 28px;
}
.project-info h2{
  margin: 28px 0 10px;
  color: #fff;
  font-weight: 400;
  text-transform: uppercase;
  font-size: 20px;
  line-height: 24px;
}
.project-info p{ margin: 0 0 14px; }

@media (max-width: 932px){
  .project-title{ font-size: 26px; line-height: 30px; }
  .project-info{ font-size: 16px; line-height: 26px; padding: 0 5%; }
  .project-video{ padding: 0 5%; }
}





/* ===== About page (Adobe-like centered stack) ===== */

.about{
  position:relative;
  z-index:2;
  margin-top:calc(75vh + 120px);
  padding-bottom:60px;
  
}


  


.about-stack{
  max-width: 900px;          /* breedte zoals Adobe tekstblok */
  margin: 0 auto;
  text-align: center;
}

.about-content h1{
  font-family:"Clash Display", sans-serif;
  font-weight:600;
  font-size:48px;
  line-height:52px;
  margin-bottom:30px;
  color:#DB1009;
}

.about-content h2{
  margin: 28px 0 10px;
  color: #fff;
  font-family: shzc, sans-serif;
  font-weight: 400;
  text-transform: uppercase;
  font-size: 20px;
  line-height: 24px;
}

.about-content p,
.about-content li{
  color: #AEAEAE;
  font-family: shzc, sans-serif;
  font-size: 18px;
  line-height: 28px;
}

/* ✅ lijst onder elkaar, maar gecentreerd zoals Adobe */
.about-content ul{
  margin: 0 auto;
  padding: 0;
  display: inline-block;  /* maakt de lijst “centred” */
  text-align: center;
}
.about-content li{
  list-style: none;
  margin: 0 0 8px;
}

/* links zoals Adobe (subtiel) */
.about-link{
  color: #fff;
  text-decoration: underline;
}
.about-sep{
  opacity: .5;
  padding: 0 10px;
}

/* ✅ foto onderaan, gecentreerd, Adobe-like grootte */
.about-media{
  margin-top: 40px;
  display: flex;
  justify-content: center;
}
.about-media img{
  width: 100%;
  max-width: 520px;     /* pas dit aan als je groter/kleiner wil */
  height: auto;
  display: block;
}

/* responsive */
@media (max-width: 932px){
  .about-hero{
    top:160px;
    height:60vh;
  }

  .about{
    margin-top:calc(60vh + 30px);
  }


  .about-stack{
    max-width:92%;
  }

  .about-content p,
  .about-content li{
    font-size:16px;
    line-height:26px;
  }

  .about-content h1{
    font-size:26px;
    line-height:30px;
  }

  .about-section-title{
    font-size:26px;
    line-height:30px;
    margin-top:-20px;
  }

  .about-media img{
    max-width:520px;
  }
}

@media (max-width: 540px){
  .about-hero{
    top:160px;
    height:50vh;
  }

  .about{
    margin-top:calc(50vh + 70px);
  }
}

@media (max-width: 540px){
  .about-section-title{
    font-size:26px;
    line-height:30px;
    margin-top:-14px;
  }
}



/* icons */
.about-icons{
  margin-top: 22px;
  display:flex;
  justify-content:center;
  gap: 22px;
}

.about-icon{
  width:28px;
  height:28px;
  display:flex;
  align-items:center;
  justify-content:center;
}

.about-icons{
  margin-top:22px;
  display:flex;
  justify-content:center;
  gap:24px;
}

.about-icons i{
  font-size:26px;
  color:#CCCCCC;
  transition:color .2s ease, transform .2s ease;
}

.about-icons a:hover i{
  color:#DB1009;
  transform:scale(1.08);
}

.about-icon:hover svg{
  opacity:1;
  transform: scale(1.08);
}




/* ===== Contact page ===== */
.contact{
  padding-top: 10px;
  padding-bottom: 80px;
}

.contact-wrap{
  max-width: 420px;
  margin: 0 auto;
  text-align: center;
}

.contact-title{
  margin: 0 0 26px;
  color: #fff;
  font-family: shzc, sans-serif;
  font-weight: 400;
  text-transform: uppercase;
  font-size: 22px;
  line-height: 26px;
  letter-spacing: .02em;
}

.contact-form{
  text-align: left;
}

.contact-label{
  display: block;
  margin: 14px 0 6px;
  color: #fff;
  font-family: shzc, sans-serif;
  font-size: 11px;
  line-height: 14px;
  text-transform: uppercase;
  letter-spacing: .06em;
}

.contact-input,
.contact-textarea{
  width: 100%;
  border: 0;
  outline: none;
  background: rgba(255,255,255,0.14);
  color: #fff;
  font-family: shzc, sans-serif;
  font-size: 13px;
  line-height: 18px;
  padding: 10px 12px;
  border-radius: 2px;
}

.contact-input::placeholder,
.contact-textarea::placeholder{
  color: rgba(255,255,255,0.45);
  text-transform: uppercase;
  font-size: 10px;
  letter-spacing: .06em;
}

.contact-textarea{
  min-height: 120px;
  resize: vertical;
  padding-top: 10px;
}

.contact-input:focus,
.contact-textarea:focus{
  background: rgba(255,255,255,0.18);
}

.contact-submit{
  margin: 24px auto 0;
  display:block;
  border: 0;
  cursor: pointer;
  background: #fff;
  color: #111;
  font-family: "Clash Display", sans-serif;
  font-size: 11px;
  letter-spacing: .06em;
  text-transform: uppercase;
  padding: 10px 22px;
  border-radius: 999px;
}

.contact-submit:hover{
  opacity: .9;
}

@media (max-width: 540px){
  .contact-wrap{
    max-width: 92%;
  }
}




.cover__video{
  height: calc(100% + 2px);
  width: calc(100% + 2px);
  position:absolute;
  left:50%;
  top:50%;
  transform: translate(-50%, -50%);
  object-fit: cover;
}

/* hover zwart wit */
.project-cover:hover .cover__video{
  filter: grayscale(100%);
  transition: filter .4s ease;
}




.cover-media{
  position:absolute;
  inset:0;
  overflow:hidden;
}

.cover__video{
  height: calc(100% + 2px);
  width: calc(100% + 2px);
  position:absolute;
  left:50%;
  top:50%;
  transform: translate(-50%, -50%);
  object-fit: cover;
  transition: opacity .25s ease;
}

.cover__video--base{
  opacity:1;
}

.cover__video--hover{
  opacity:0;
}

.cover__video--base{ opacity: 1; }
.cover__video--hover{ opacity: 0; }

.project-cover.is-hover .cover__video--base{ opacity: 0; }
.project-cover.is-hover .cover__video--hover{ opacity: 1; }


.project-cover .title{
letter-spacing:0.04em;
}


.about-section-title{
  font-family:"Clash Display", sans-serif;
  font-weight:600;
  font-size:48px;
  line-height:52px;
  color:#DB1009;
  margin-top:0;
  margin-bottom:30px;
  text-align:center;
  position:relative;
  z-index:3;
}

.offer-grid{
  display:flex;
  flex-wrap:wrap;
  gap:5px;
  width:100%;
  max-width:100%;
  margin:0 auto 40px auto;
}

.offer-card{
  display:block;
  width:calc(50% - 2.5px);
  background:#181818;
  overflow:hidden;
}

.offer-card__image{
  position:relative;
  width:100%;
  overflow:hidden;
}

.offer-card__image::before{
  content:'';
  display:block;
  padding-bottom:56.25%;
}

.offer-card__image img{
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.offer-card__content{
  padding:22px 22px 24px;
  text-align:center;
}

.offer-card__content h3{
  margin:0 0 10px;
  font-family:"Clash Display", sans-serif;
  font-size:24px;
  line-height:28px;
  font-weight:600;
  color:#FFFFFF;
  text-transform:uppercase;
  letter-spacing:0.04em;
}

.offer-card__content p{
  margin:0;
  font-family:"Inter", sans-serif;
  color:#AEAEAE;
  font-size:17px;
  line-height:26px;
}

.about-hero{
  position:fixed;
  top:160px;
  left:0;
  width:100%;
  height:75vh;
  overflow:hidden;
  z-index:1;
  pointer-events:none;
  opacity:1;
  transition:opacity .15s linear;
}



.about-hero img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

@media (max-width: 932px){
  .site-wrap{
    padding-top:160px;
  }
}

.about-break{
  position:relative;
  z-index:2;
  height:calc(75vh + 40px);
  background:#111111;

  /* full width buiten de content margins */
  width:100vw;
  left:50%;
  margin-left:-50vw;
  margin-right:-50vw;
}

.about-break-hero{
  position:sticky;
  top:160px;
  height:75vh;
  overflow:hidden;
  opacity:1;
  transition:opacity .15s linear;
  width:100%;
}

.about-break-hero img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.about-break + .about{
  margin-top:40px;
}

@media (max-width: 932px){
  .about-break{
    height:calc(60vh + 30px);
  }

  .about-break-hero{
    top:160px;
    height:60vh;
  }

  .about-break + .about{
    margin-top:30px;
  }
}

@media (max-width: 540px){
  .about-break{
    height:calc(50vh + 24px);
  }

  .about-break-hero{
    top:160px;
    height:50vh;
  }

  .about-break + .about{
    margin-top:24px;
  }
}

.about-break + .about{
  margin-top:-60px;
  position:relative;
  z-index:3;
}

@media (max-width: 932px){
  .offer-card__content{
    padding:18px 18px 20px;
  }

  .offer-card__content h3{
    font-size:20px;
    line-height:24px;
  }

  .offer-card__content p{
    font-size:16px;
    line-height:24px;
  }
}

@media (max-width: 540px){
  .offer-card{
    width:100%;
  }
}

@media (max-width: 932px){
  .about-break + .about{
    margin-top:-40px;
  }
}

@media (max-width: 540px){
  .about-break + .about{
    margin-top:-24px;
  }
}