/* ======================================== */
/* == FONTS                              == */
/* ======================================== */


@font-face {
	font-family: 'Haas';
	src: url('fonts/NeueHaasGroteskDisplay-55Roman-Web.woff2') format('woff2');
	font-weight: 400;
	font-style: normal;
}

@font-face {
	font-family: 'EditorialNew';
	src: url('fonts/PPEditorialNew-Regular.woff2') format('woff2');
	font-weight: 400;
	font-style: normal;
}


/* ======================================== */
/* == GLOBAL STYLES & VARIABLES          == */
/* ======================================== */

:root {
  --body-font: "Haas", sans-serif;
  --font-secondary: "Poppins", sans-serif;
  --noise-bg-url: none;
  --text-color: #ffffff;
  --background-color: #171717;
  --accent-color: #f32e01;
  --footer-height: auto;
  --footer-bg-color: #242424;
  --footer-text-color: #dfdfd2;
}

html {
  overflow-x: hidden;
}

body {
  font-family: var(--body-font);
  margin: 0;
  background-color: var(--background-color);
  color: var(--text-color);
  overflow-x: hidden;
  position: relative;
}

body.mobile-nav-active {
  overflow: hidden;
}

body::before {
  content: "";
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100vw;
  height: 100vh;
  background-image: var(--noise-bg-url);
  opacity: 0.1;
  z-index: -1;
  pointer-events: none;
}

body.noise-active::before {
  opacity: 0.3;
  z-index: 100;
}

h2 {
  font-family: var(--body-font);
  font-weight: normal;
  line-height: 1;
  letter-spacing: -0.05em;
  margin-bottom: 10px;
  padding-top: 50px;
}

h3 {
  font-family: "Haas", sans-serif;
  font-weight: normal;
}

.mobile-intro-text {
  display: none;
}

/* ======================================== */
/* == UTILITY & COMMON CLASSES           == */
/* ======================================== */

.page-wrapper {
  position: relative;
  z-index: 2;
}

.section-title-style {
  grid-column: 1 / -1;
  font-family: "EditorialNew", sans-serif;
  font-size: clamp(2rem, 8vw, 4rem);
  text-align: left;
  margin-bottom: 0;
  margin-top: 100px;
}

#section-title {
  /* Visual styling is in .section-title-style */
}

.line {
  width: calc(100vw - 40px);
  max-width: calc(1600px - 40px);
  height: 1px;
  background-color: rgba(255, 255, 255, 0.28);
  margin: 20px auto;
  grid-column: 1 / -1;
}

.line-separator {
  width: 100%;
  height: 1px;
  background-color: #dfdfd26e;
  margin-bottom: 25px;
}

.vimeo-embed-block {
  position: relative;
}

.vimeo-play-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.3);
  display: flex;
  justify-content: center;
  align-items: center;
  cursor: pointer;
  z-index: 1;
  opacity: 1;
  transition: opacity 0.3s ease-in-out;
}

.vimeo-play-overlay:hover svg {
  opacity: 1;
  transform: scale(1.1);
}

.vimeo-play-overlay svg {
  width: 70px;
  height: 70px;
  fill: white;
  opacity: 0.7;
  transition: opacity 0.3s ease, transform 0.3s ease;
  filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.5));
}

/* ======================================== */
/* == HEADER & NAVIGATION                == */
/* ======================================== */

.fixed-header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 70px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 20px;
  z-index: 500;
  box-sizing: border-box;
  mix-blend-mode: difference;
  color: #f8f8e9;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.3s ease-in-out, visibility 0.3s ease-in-out;
}

.fixed-header.visible {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transition: opacity 0.3s ease-in-out, visibility 0.3s ease-in-out;
}

.menu-links-container {
  display: flex;
  align-items: center;
  gap: 75px;
}

.menu-link {
  text-decoration: none;
  color: var(--text-color);
  font-family: "Haas", sans-serif;
  white-space: nowrap;
  position: relative;
  padding-bottom: 2px;
 
}

.menu-link .underline {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 105%;
  height: 1px;
  background-color: var(--text-color);
}

.menu-link:hover .underline {
  transform: scaleX(1);
}

.menu-work,
.menu-services,
.menu-about,
.menu-blog {
  /* Styles for individual menu links */
}

.menu-logo {
  display: flex;
  justify-content: center;
  align-items: center;
}

.menu-logo img {
  height: 18px;
  display: block;

}

.hamburger-icon {
  display: none; /* Display block in mobile query */
  background: none;
  border: none;
  cursor: pointer;
  padding: 10px;
  z-index: 1010;
  width: 30px;
  height: 22px;
  position: relative;
  transform: rotate(0deg);
  transition: 0.5s ease-in-out;
}

.hamburger-bar {
  display: block;
  position: absolute;
  height: 3px;
  width: 100%;
  background: #ffffff;
  border-radius: 3px;
  opacity: 1;
  left: 0;
  transform: rotate(0deg);
  transition: 0.25s ease-in-out;
}

.hamburger-bar:nth-child(1) {
  top: 0px;
}
.hamburger-bar:nth-child(2) {
  top: 9px;
}
.hamburger-bar:nth-child(3) {
  top: 18px;
}

.hamburger-icon.active .hamburger-bar:nth-child(1) {
  top: 9px;
  transform: rotate(135deg);
}
.hamburger-icon.active .hamburger-bar:nth-child(2) {
  opacity: 0;
  left: -30px;
}
.hamburger-icon.active .hamburger-bar:nth-child(3) {
  top: 9px;
  transform: rotate(-135deg);
}

.mobile-nav {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  background-color: var(--accent-color);
  z-index: 1000;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  visibility: hidden; /* Controlled by JS and potentially media queries */
  transform: translateX(100%); /* Initial state for animation */
}

.mobile-nav-link {
  color: var(--background-color);
  text-decoration: none;
  font-size: 44px;
  margin: 10px 0;
  font-family: "EditorialNew";
  opacity: 0;
  transform: translateY(20px);
}

.mobile-nav-close {
  position: absolute;
  top: 20px;
  right: 20px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 10px;
  width: 30px;
  height: 30px;
  z-index: 1011;
}

.close-bar {
  display: block;
  position: absolute;
  height: 3px;
  width: 100%;
  background: var(--background-color);
  border-radius: 3px;
  left: 0;
  top: 50%;
}

.close-bar-1 {
  transform: translateY(-50%) rotate(45deg);
}
.close-bar-2 {
  transform: translateY(-50%) rotate(-45deg);
}

/* ======================================== */
/* == INITIAL OVERLAY & SEQUENCE         == */
/* ======================================== */

#image-sequence-container {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  z-index: 100;
  background-color: #000;
  opacity: 0;
  pointer-events: none;
}

.sequence-image {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
}

#initial-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  z-index: 101;
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: transparent;
  overflow: hidden;
  transition: background-color 0.1s ease;
  pointer-events: none;
}

#initial-overlay .image-container {
  width: 90vw;
  max-width: 900px;
  height: auto;
  overflow: hidden;
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
}

#initial-overlay .image-container img#logo {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}

#segments-container {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  z-index: 102;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-template-rows: repeat(2, 1fr);
  pointer-events: none;
  visibility: hidden;
}

.segment {
  position: relative;
  overflow: hidden;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

/* ============================================================= */
/* == PARALLAX & INTRO ELEMENTS                               == */
/* ============================================================= */

.parallax-container.intro-parallax {
  position: relative;
  margin-top: 100px;
  z-index: 1;
  width: 100%;
  height: 1100px;
}

.parallax-element {
  position: absolute;
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  transform: translateY(0px);
  will-change: transform;
  overflow: hidden;
  text-align: center;
}

.parallax-element video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover; /* Ensures the video fills the container without being distorted */
    -webkit-transform: scaleX(-1);
  transform: scaleX(-1);
}

.parallax-element img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover; /* Ensures the video fills the container without being distorted */
}

.central-text.intro-text {
  font-family: "Bootzy", sans-serif;
  font-size: 160px;
  text-align: center;
  line-height: 0.8em;
  color: var(--text-color);
  letter-spacing: 0.015em;
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 80%;
  max-width: 800px;
  z-index: 10;
  pointer-events: none;
}

.parallax-text-first {
  font-family: "EditorialNew", sans-serif;
  text-align: center;
  display: inline-block;
  position: relative;
  font-size: 200px;
  line-height: 1em;

  letter-spacing: -0.03em;
  /* text-transform: uppercase; */
  
}

/* .parallax-text-first::after {
  content: "";
  background-image: url("images/illustrations/1-landing/underline-1.png");
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center bottom;
  position: absolute;
  left: 140px;
  width: 100%;
  height: 0.12em;
  bottom: -0.3em;
  top: 210px;
  z-index: 1;
} */

.parallax-text {
  font-family: "MonumentExtendedBlack", sans-serif;
  font-size: 70px;
  text-align: center;
  line-height: 0.85em;
  letter-spacing: -0.045em;
  display: inline-block;
}

/* ======================================== */
/* == ABOUT SECTION                        == */
/* ======================================== */

.about-section {
  color: var(--text-color);
  position: relative;
  z-index: 1;
  font-family: var(--body-font);
}

.about-container {
  display: grid;
  grid-template-columns: repeat(8, 1fr);
  column-gap: 20px;
  row-gap: 20px;
  max-width: 900px;
  margin: 50px auto;
  box-sizing: border-box;
  padding: 50px;
  color: var(--text-color);
}

.about-section .about-main-title {
  margin-bottom: 20px;
}

.about-content-column {
  font-family: var(--body-font);
  font-size: calc(20px + 5 * (100vw - 480px) / 740);
  line-height: 1.15;
  letter-spacing: -0.0105em;
  align-self: start;
  grid-row: 3;
  margin: 0 60px;
}

.about-content-column p {
  margin: 0 0 1em 0;
}
.about-content-column p:last-child {
  margin-bottom: 0;
}
.about-content-column a {
  transition: opacity 0.3s ease-in-out;
}
.about-content-column a img {
  width: 400px;
  vertical-align: middle;
  margin-right: 10px;
}
.about-content-column a:hover {
  opacity: 0.5;
  transition: 0.3s ease-in-out;
}

.about-container > .line {
  grid-row: 2;
}

.about-container .about-content-column:nth-of-type(1) {
  grid-column: 1 / span 8;
  grid-row: 1;
}
.about-container .about-content-column:nth-of-type(2) {
  grid-column: 1 / span 8;
  grid-row: 2;
  margin-top: 20px;
}
.about-container .about-content-column:nth-of-type(3) {
  grid-column: 1 / span 5;
  grid-row: 3;
  margin-top: 40px;
  margin-bottom: 20px;
  font-size: 20px;
  color: var(
    --background-color
  ); /* This might be a typo and intended to be var(--text-color) or similar */
}

.clients {
  font-size: calc(40px + 5 * (100vw - 480px) / 740);
  margin-left: 40px;
  margin-top: 100px;
}

#team-section-title {
  margin-bottom: 14px;
}

/* ======================================== */
/* == PROJECTS SECTION (Homepage)        == */
/* ======================================== */

.projects-section {
  color: var(--text-color);
  position: relative;
  z-index: 2;
  margin-top: 80px;
}

.projects-title-container {
  max-width: 1600px;
  margin: 0 auto;
  padding: 0 20px;
  box-sizing: border-box;
  margin-bottom: 20px;
}

/* h2.projects-title {
  font-family: "MonumentExtendedBlack", sans-serif;
  padding-bottom: 15px;
  font-size: clamp(2rem, 8vw, 4rem);
  text-align: left;
  margin-bottom: 0;
  margin-top: 10px;
  position: relative;
  display: inline-block;
}

h2.projects-title::after {
  content: "";
  background-image: url("images/illustrations/3-clients/our-work-underline.png");
  background-repeat: no-repeat;
  background-size: contain;
  background-position: left bottom;
  position: absolute;
  left: 0;
  width: 100%;
  height: 1em;
  bottom: -0.25em;
  transform: rotate(2deg);
  z-index: 0;
} */

.projects-horizontal-scroll {
  display: flex;
  height: 100vh;
  padding-left: 60px;
  padding-right: 0;
  gap: 0;
}

.work-scroll-title-item,
.project-item-link,
.see-more-projects-scroll-parent {
  width: 75vw;
  height: 100vh;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
  box-sizing: border-box;
}

/* .work-scroll-title-heading {
  font-family: "MonumentExtendedBlack", sans-serif;
  font-size: clamp(2rem, 5vw, 3rem);
  color: var(--text-color);
  margin: 0;
  text-align: center;
  margin-left: -200px;
  position: relative;
  display: inline-block;
  padding: 20px;
}

.work-scroll-title-heading::after {
  content: "";
  background-image: url("images/illustrations/3-clients/our-work-underline.png");
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center bottom;
  position: absolute;
  left: 50%;
  transform: translateX(-50%) rotate(1deg);
  width: 100%;
  max-width: 400px;
  height: 0.8em;
  bottom: -0.15em;
  z-index: -1;
} */

.project-item-link {
  text-decoration: none;
  color: inherit;
  display: flex;
}

.project-item {
  width: 100%;
  height: 80%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  background-size: cover;
  background-position: center;
  padding: 40px;
  box-sizing: border-box;
  margin-right: 40px;
}

.project-item-title-overlay {
  font-family: "EditorialNew", sans-serif;
  font-size: calc(40px + 5 * (100vw - 480px) / 740);
  line-height: 1.2;
  letter-spacing: -0.0em;
  color: var(--text-color);
  margin: 0;
  position: relative;
  z-index: 2;
  opacity: 0;
  text-align: center;
}

.project-item:hover .project-item-title-overlay {
  opacity: 1;
  transition: opacity 0.3s ease-in-out;
}

.see-more-projects-scroll-parent {
  width: 20vw;
}

.see-more-projects-scroll-item {
  font-family: var(--body-font);
  font-size: calc(20px + 5 * (100vw - 480px) / 740);
  letter-spacing: -0.0105em;
  color: var(--text-color);
  text-decoration: none;
  margin-left: -400px;
  text-align: left;
  transition: background-color 0.3s, color 0.3s;
  border-radius: 0px;
}

.see-more-projects-scroll-item:hover {
  border-bottom: 1px solid var(--text-color);
}

/* ======================================== */
/* == CONTACT PAGE STYLES (Full Width, 20px Margins, Dark Theme) == */
/* ======================================== */

.contact-page-section {
  background-color: var(--background-color);
  color: var(--text-color);
  /* Section's top/bottom padding. Left/Right padding removed, handled by wrapper's margin. */
  padding: 100px 0 60px 0; 
  font-family: var(--body-font);
  min-height: calc(100vh - 70px); /* Adjust 70px based on actual fixed header height */
  box-sizing: border-box;
  /* No flex justification needed here as wrapper will define its own margins */
}

.contact-content-wrapper {
  background-color: var(--background-color); /* Or a subtle border if a "box" is desired */
  /* border: 1px solid rgba(223, 223, 210, 0.08); /* Optional: if you want a subtle box effect */
  color: var(--text-color);
  
  /* --- KEY CHANGES FOR FULL WIDTH --- */
  max-width: none; /* Remove max-width to allow full width */
  width: auto; /* Allow margin to dictate width effectively */
  margin-left: 20px; /* 20px margin on the left */
  margin-right: 20px; /* 20px margin on the right */
  /* --- END KEY CHANGES --- */

  
  box-sizing: border-box; 
}

.contact-main-layout {
  display: flex;
  flex-wrap: wrap; 
  gap: 20px; 
}

.contact-sidebar-info { /* Left 1/3 column */
  flex: 1; /* This will be 1 part of the flex ratio */
  min-width: 800px; 
  display: flex;
  flex-direction: column; 
  /* Removed padding-right, spacing now managed by overall layout padding and gap */
  box-sizing: border-box;
}

.contact-header {
  margin-bottom: 30px;
}

.contact-main-title {
  font-family: "EditorialNew", sans-serif; 
  font-size: clamp(2.2rem, 5vw, 3.5rem);
  
  color: var(--text-color);
  line-height: 1.1;
  margin: 0 0 10px 0;
}

.contact-subtitle {
  font-size: calc(13px + 5 * (100vw - 480px) / 740);
  line-height: 1.2;
  color: var(--text-color);
  max-width: 700px;
}

.contact-social-navigation {
  margin-bottom: auto; 
  padding-top: 0px; 
  display: flex;
  flex-direction: column;
  gap: 8px; 
  max-width: 100px;
}

.contact-social-navigation a {
  font-size: calc(13px + 5 * (100vw - 480px) / 740);
  color: var(--text-color);
  text-decoration: none;
  transition: color 0.2s ease;
}

.contact-social-navigation a:hover {
  text-decoration: underline;
}

.contact-social-navigation a:hover {
  color: var(--text-color);
}

.contact-page-copyright {
  padding-top: 15px; 
  font-size: calc(13px + 5 * (100vw - 480px) / 740);
  color: rgba(223, 223, 210, 0.5);
}


.contact-details-panel { /* Right 2/3 column */
  flex: 2; /* This will be 2 parts of the flex ratio, creating the 1/3 vs 2/3 split */
  min-width: 300px; 
}

.contact-items-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); 
  gap: 10px 20px; 
  margin-bottom: 40px;
}
@media (min-width: 768px) { /* Enforce 2 columns for the items grid on larger screens */
    .contact-items-grid {
        grid-template-columns: 1fr 1fr;
    }
}

.contact-item {
  /* No specific styling */
}

.contact-category {
  font-family: "HaasLight", sans-serif;
  font-size: calc(13px + 5 * (100vw - 480px) / 740);
  color: rgba(223, 223, 210, 0.6);
  text-transform: lowercase;
  margin-bottom: 0px;
  letter-spacing: 0.02em;
}

.contact-info {
  font-size: calc(13px + 5 * (100vw - 480px) / 740);
  line-height: 1.5;
  color: var(--text-color);
  margin: 0;
}
.contact-info address {
    font-style: normal;
}
.contact-info a {
  color: var(--text-color);
  text-decoration: none;
  transition: color 0.2s ease;
}
.contact-info a:hover {
  text-decoration: underline;
}

.contact-image-area {
  width: 100%;
  margin-bottom: 40px; 
  background-color: rgba(223, 223, 210, 0.03); 
}

.contact-image-area img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 350px; 
  object-fit: cover;
}

.contact-general-fallback {
  padding-top: 20px;
}


/* Responsive Adjustments */
@media (max-width: 991px) { 
  .contact-content-wrapper {
    /* padding: 30px; /* Keep internal padding consistent or adjust */
    /* Margins will still apply */
  }
}

@media (max-width: 767px) { /* Mobile - stack main columns */
  .contact-page-section {
    padding-top: 80px; /* Adjust top padding for mobile if header height changes or for aesthetics */
    padding-bottom: 40px;
    /* Left/Right 0 is still fine as wrapper has margins */
  }
  .contact-content-wrapper {
    margin-left: 15px; /* Slightly reduce margins for very small screens */
    margin-right: 15px;
    padding: 0px; /* Reduce internal padding on small screens */
  }
  .contact-main-layout {
    flex-direction: column; 
    gap: 30px;
  }
  .contact-sidebar-info,
  .contact-details-panel {
    flex-basis: auto; 
    min-width: 100%;
    flex-grow: 0; /* Prevent uneven growing when stacked */
  }
  .contact-social-navigation {
    margin-top: 30px; 
    align-items: flex-start; 
    font-size: 16px;
  }
  .contact-items-grid {
    grid-template-columns: 1fr; /* Force single column for items on small mobile */
    gap: 25px;
  }
  .contact-main-title {
    font-size: clamp(1.8rem, 5vw, 2.5rem);
  }

  .contact-subtitle {
    font-size: 20px;
  }

  .contact-social-navigation a {
    font-size: 16px;
  }

  .contact-info {
    font-size: 16px;
  }

  .contact-category {
    font-size: 16px;
  }

  .contact-header {
    margin-bottom: 0px; /* Reduce spacing for mobile */
  }

  .contact-items-grid {
    margin-bottom: 0px;;
  }

  .contact-general-fallback {
    padding-top: 0px; /* Reduce padding for mobile */
  }
}
/* ======================================== */
/* == SERVICES SECTION                     == */
/* ======================================== */

.services-section {
  color: var(--text-color);

  position: relative;
  z-index: 1;
  font-family: var(--body-font);
  margin-bottom: 150px;
}

.services-container {
  display: grid;
  grid-template-columns: repeat(8, 1fr);
  column-gap: 20px;
  row-gap: 40px;
  max-width: 1600px;
  margin: 0 auto;
  padding: 0 20px;
  box-sizing: border-box;
}

.services-section .services-title {
  margin-bottom: 40px;
}

/* .services-title::after {
  content: "";
  background-image: url("images/illustrations/4-services/pijl-naar-beneden.png");
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center bottom;
  position: fixed;
  left: 0px;
  width: 20%;
  height: 1.1em;
  bottom: -0.3em;
  top: 80px;
  z-index: 1;
} */

.services-intro{
  grid-column: 1 / span 8;
  padding-top: -100px;
}

.service-category {
  grid-column: 1 / span 3;
  font-size: calc(13px + 5 * (100vw - 480px) / 740);
  line-height: 1.25;
  font-weight: 400;
  align-self: start;
  letter-spacing: 0.02em;
}

.service-description {
  grid-column: 5 / span 4;
  font-size: calc(13px + 5 * (100vw - 480px) / 740);
  line-height: 1.25;
  align-self: start;
  letter-spacing: 0.02em;
  font-family: var(--body-font);
}

.service-description p {
  margin: 0 0 1em 0;
}
.service-description p:last-child {
  margin-bottom: 0;
}

/* ======================================== */
/* == CLIENT LOGO CAROUSEL               == */
/* ======================================== */

.client-logos-section {
  text-align: center;
  margin-bottom: 200px;
}

.client-logos-section h2 {
  margin-bottom: 40px;
  font-size: 2rem;
  color: #333; /* Consider var(--text-color) or similar */
}

.logo-carousel-container {
  width: 100%;
  overflow: hidden;
  position: relative;
  background-color: transparent;
  border-radius: 8px;
  margin: 0 auto;
}

.logo-carousel-container::before,
.logo-carousel-container::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  width: 60px;
  z-index: 2;
}

.logo-carousel-container::before {
  left: 0;
  background: linear-gradient(
    to right,
    var(--background-color) 20%,
    transparent
  );
}

.logo-carousel-container::after {
  right: 0;
  background: linear-gradient(
    to left,
    var(--background-color) 20%,
    transparent
  );
}

.logo-carousel-track {
  display: flex;
  width: fit-content;
  animation-duration: 200s;
  animation-timing-function: linear;
  animation-iteration-count: infinite;
  margin-bottom: 20px;
}

.logo-carousel-track:last-child {
  margin-bottom: 0;
}
#logo-track-r1 {
  animation-name: scrollClientLogosR1;
}
#logo-track-r2.logo-carousel-track-reverse {
  animation-name: scrollClientLogosR2;
}

.client-logo-item {
  flex-shrink: 0;
  height: 80px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 160px;
  margin: 0 30px;
}

.logo-separator-item {
  width: 10px;
  margin: 0 10px;
}

.client-logo-item img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}

.client-logo-item:not(.logo-separator-item) img {
  filter: grayscale(100%);
  opacity: 0.65;
  transition: filter 0.3s ease, opacity 0.3s ease;
}

img.logo-separator-image {
  max-width: 10px;
  max-height: 10px;
  filter: none;
  opacity: 0.7;
}

@keyframes scrollClientLogosR1 {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(calc(-1 * var(--original-track-width-r1)));
  }
}

@keyframes scrollClientLogosR2 {
  0% {
    transform: translateX(calc(-1 * var(--original-track-width-r2)));
  }
  100% {
    transform: translateX(0);
  }
}

/* ======================================== */
/* == FOOTER                             == */
/* ======================================== */

.site-footer {
  font-family: "Haas", sans-serif;
  padding: 70px 0 40px 0;
  position: relative;
  width: 100%;
  z-index: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  overflow: hidden;
  box-sizing: border-box;
  background-color: var(--accent-color);
}

.site-footer .footer-parallax-bg {
  position: absolute;
  left: 0;
  width: 100%;
  height: 150%;
  top: -25%;
  /* background-image: url(...); */
  /* background-size: cover; */
  /* z-index: -1; */
}

.site-footer .footer-content-wrapper {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 1600px;
  margin: 0 auto;
  padding: 0 40px;
  box-sizing: border-box;
}

.footer-grid-container {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  column-gap: 20px;
  row-gap: 50px;
  align-items: start;
}

.footer-callout-main-text-container {
  grid-column: 1 / span 8;
  grid-row: 1;
  display: flex;
  align-items: baseline;
  flex-wrap: nowrap;
}

.footer-callout-main-text {
  font-family: "EditorialNew", sans-serif;
  font-size: clamp(4rem, 12vw, 9rem);
  font-weight: normal;
  line-height: 0.9;
  color: var(--background-color);
  margin: 0;
  padding-right: 15px;
  letter-spacing: -0.03em;
  white-space: nowrap;
}

.footer-callout-icon {
  height: clamp(0.8rem, 2.5vw, 2rem);
  width: auto;
  margin-left: 8px;
  flex-shrink: 0;
}

.footer-callout-tagline {
  font-family: "EditorialNew", sans-serif;
  font-size: clamp(1rem, 2.5vw, 1.5rem);
  color: var(--background-color);
  line-height: 1;
  margin: 0;
  align-self: flex-end;
  padding-bottom: 1rem;
}

.footer-column {
  font-size: 16px;
  line-height: 1.6;
  color: var(--background-color);
}

.footer-column h4 {
  font-family: "Haas", sans-serif;
  font-size: 16px;
  font-weight: normal;
  margin-top: 0;
  margin-bottom: 15px;
}

.footer-column p {
  margin-top: 0;
  margin-bottom: 5px;
}
.footer-column p:last-child {
  margin-bottom: 0;
}

.footer-column a {
  color: var(--background-color);
  text-decoration: none;
}
.footer-column a:hover {
  text-decoration: underline;
}

.footer-column-brand {
  grid-column: 1 / span 4;
  grid-row: 2;
  align-self: end;
}
.footer-column-address {
  grid-column: 7 / span 2;
  grid-row: 2;
}
.footer-column-contact {
  grid-column: 9 / span 2;
  grid-row: 2;
}
.footer-column-social {
  grid-column: 11 / span 2;
  grid-row: 2;
  justify-self: start;
}

.footer-column-contact p,
.footer-column-social .social-icons p {
  margin-bottom: 0;
}

.social-icons a {
  display: block;
}

.social-icons a img {
  width: 20px; /* Adjust size as needed */
  height: auto;
  margin-right: 5px;
  vertical-align: middle;
}

.footer-gif-background {
  width: 100%;              /* Take full width of the container */
  text-align: right;        /* Align inner content to the right */
  margin-top: 10px;         /* Optional spacing */
}

.footer-gif-background img {
  width: 50vw;              /* Control size */
  height: auto;             /* Keep aspect ratio */
}

/* ======================================== */
/* == PROJECT DETAIL PAGE                == */
/* ======================================== */

.project-detail-page .page-wrapper {
  padding-top: 100px;
  opacity: 0;
}

.project-content-section {
  background-color: var(--background-color);
  color: var(--text-color);
  padding: 0;
  position: relative;
  z-index: 1;
}

.project-detail-container {
  display: grid;
  grid-template-columns: repeat(8, 1fr);
  column-gap: 80px;
  row-gap: 80px;
  max-width: 1600px;
  margin: 0 auto;
  padding: 0 20px;
  box-sizing: border-box;
}

.project-main-title {
  grid-column: 1 / -1;
  font-family: "EditorialNew", sans-serif;
  font-size: clamp(1.8rem, 5vw, 4rem);
  font-weight: normal;
  line-height: 1;
  letter-spacing: -0.04em;
  text-align: left;
  margin-bottom: -200px;

}

.project-meta-info {
  grid-column: 1 / span 2;
  align-self: start;
  font-family: var(--body-font);
  font-size: calc(13px + 5 * (100vw - 480px) / 740);
  line-height: 1.25;
  color: var(--text-color);
}

.project-meta-heading {
  font-family: "Haas", sans-serif;
  font-size: calc(13px + 5 * (100vw - 480px) / 740);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: rgba(223, 223, 210, 0.7);
  margin-top: 0;
  margin-bottom: 0px;
}

.project-meta-info .project-meta-heading:not(:first-of-type) {
  margin-top: 20px;
}

.project-categories {
  list-style: none;
  padding: 0;
  margin: 0 0 5px 0;
}

.project-categories li {
  margin-bottom: 3px;
  font-size: 1em;
}

.project-year,
.project-client {
  margin: 0;
  font-size: calc(13px + 5 * (100vw - 480px) / 740);
}

.project-main-text-content {
  grid-column: 3 / span 4;
  align-self: start;
  font-family: "Haas", var(--body-font);
  font-size: calc(13px + 5 * (100vw - 480px) / 740);
  line-height: 1.25;
  letter-spacing: 0.02em;
  color: var(--text-color);

}

.project-main-text-content p {
  margin: 0 0 1.25em 0;
}

.project-main-text-content p:last-child {
  margin-bottom: 0;
}

.project-main-text-content h3 {
  font-family: "Haas", sans-serif;
  font-size: 1.5em;
  margin-top: 1.5em;
  margin-bottom: 0.5em;
  line-height: 1.2;
}

.project-hero-media {
  grid-column: 1 / -1;
  margin-top: 20px;
  margin-bottom: 20px;
  position: relative;
  width: 100%;
  padding-bottom: 56.25%;
  height: 0;
  background-color: #181816;
  border-radius: 3px;
  overflow: hidden;
  max-height: 80vh;
}

.project-hero-media img,
.project-hero-media video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border-radius: 0;
}

.project-hero-media img {
  object-fit: cover;
}

.project-hero-media video {
  object-fit: contain;
  background-color: #000;
}

.media-wrapper {
  position: relative;
  display: block;
  width: 100%;
  background-color: #181816;
  overflow: hidden;
}

.media-wrapper.aspect-ratio-16-9 {
  padding-bottom: 56.25%;
  height: 0;
}

.media-wrapper img,
.media-wrapper video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border-radius: 0;
}

.media-wrapper img {
  object-fit: cover;
}

.media-wrapper video {
  object-fit: contain;
  background-color: #000;
}

.project-secondary-layout-grid {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(8, 1fr);
  column-gap: 20px;
  align-items: start;
  row-gap: 40px;
  margin-top: 20px;
}

.project-gallery-item {
  grid-column: span 4;
}

.project-full-width-media {
  grid-column: 1 / -1;
}

.gallery-item-caption {
  font-family: "Haas", sans-serif;
  font-size: 13px;
  color: rgba(223, 223, 210, 0.7);
  text-align: left;
  margin-top: 10px;
  line-height: 1.4;
}

.project-secondary-text-content {
  grid-column: 5 / span 4;
  font-family: "Haas", var(--body-font);
  font-size: calc(13px + 5 * (100vw - 480px) / 740);
  line-height: 1.25;
  letter-spacing: 0.02em;
  color: var(--text-color);

}

.project-secondary-text-content.full-width {
  grid-column: 1 / -1;
  max-width: 800px;
  margin-left: auto;
  margin-right: auto;
}

.project-secondary-text-content h3 {
  font-family: "Haas", sans-serif;
  font-size: 1.8em;
  margin-top: 0;
  margin-bottom: 0.75em;
  line-height: 1.2;
}

.project-secondary-text-content p {
  margin: 0 0 1.25em 0;
}

.project-secondary-text-content p:last-child {
  margin-bottom: 0;
}

.project-navigation-links {
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 60px 20px 100px 20px;
  padding-top: 40px;
  border-top: 1px solid rgba(223, 223, 210, 0.2);
}

.project-nav-link {
  font-family: "Haas", sans-serif;
  color: var(--text-color);
  text-decoration: none;
  font-size: calc(13px + 5 * (100vw - 480px) / 740);
  border-radius: 20px;
  transition: 0.3s ease, color 0.3s ease;
}

.project-nav-link:hover {
  text-decoration: underline;
  transition: 0.3s ease, color 0.3s ease;
}

.project-large-text-content {
    /* Step 1: Allow the element to occupy the full grid width area. */
    grid-column: 1 / -1;

    /* Step 2: Center the block itself within that full-width area. */
    justify-self: center;

    /* Step 3: Set a maximum width so it never gets too wide. */
    /* You can change this value to whatever you like (e.g., 80%, 900px, etc.). */
    /* '70ch' is a great unit for readability, meaning about 70 characters wide. */
    max-width: 40ch;

    /* Step 4: Ensure it's responsive and text is centered inside. */
    
    text-align: center;

    /* --- Your other styles --- */
    font-family: "EditorialNew", sans-serif;
    font-size: clamp(1.8rem, 4vw, 2.8rem);
    line-height: 1.1em;
    letter-spacing: -0.02em;
    color: var(--text-color);
    margin: 20px 0;
}

.project-large-text-content p {
    margin: 0 0 1em 0;
}


/* ======================================================== */
/* == PDP Related Work (Fully Responsive & Scaling)      == */
/* ======================================================== */

.pdp-related-work {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  /* CHANGED: Horizontal padding removed to allow the section's background to be edge-to-edge */
  padding-top: 100px;;
  color: var(--text-color);
  box-sizing: border-box;
  /* NOTE: The black background color should be applied to the <body> or a parent element if it's not already */
}

.pdp-related-work__title {
  text-align: center;
  margin-bottom: 60px;
  /* Added padding here so the title text doesn't touch the screen edges */
  padding: 0 40px;
  font-family: "EditorialNew", sans-serif;
  font-size: clamp(1.6rem, 4vw, 2.5rem);
  font-weight: normal;
  letter-spacing: -0.01em;
  
}

.pdp-related-work__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  width: 100%;
  /* Added padding here to give the grid some space from the screen edges */
  padding: 0 20px;
  box-sizing: border-box;
}

.pdp-related-work__grid .project-item-link {
  display: block;
  text-decoration: none;
  color: inherit;
  /* CHANGED: Removed the fixed 'width: 400px'. This is the key to making it responsive. */
  width: 100%; /* The link will now correctly fill its grid column */
  transition: transform 0.3s ease;
  max-height: 600px;
}

.pdp-related-work__grid .project-item-link:hover {

  opacity: 0.9;
}

.pdp-related-work__grid .project-item {
  /* === THIS BLOCK MAKES THE HEIGHT SCALE WITH THE WIDTH === */
  position: relative; /* Required for the aspect ratio technique */
  width: 100%;

  /* This creates a 4:3 aspect ratio. The height will always be 75% of the width. */
  /* You can change this value! 56.25% = 16:9 ratio. 100% = 1:1 ratio. */

}

/* Responsive adjustments for smaller screens */
@media (max-width: 1024px) {
  .pdp-related-work__grid {
    grid-template-columns: 1fr; /* Stacks the 3 images into a single column on tablet/mobile */
  }
}

@media (max-width: 768px) {
  .pdp-related-work {
    padding-top: 80px;
    padding-bottom: 80px;
  }
  .pdp-related-work__grid {
    padding: 0 0px;
    gap: 40px;
  }

  .project-large-text-content {
    margin-bottom: 140px;
  }
}

/* ======================================== */
/* == COMPANY PROFILE PAGE               == */
/* ======================================== */

.company-profile-page .page-wrapper {
  padding-top: 100px;
  opacity: 0;
}

.content-section.company-content {
  background-color: var(--background-color);
  color: var(--text-color);
  padding: 0px 0 80px 0;
  position: relative;
  z-index: 1;
}

.content-grid-container {
  display: grid;
  grid-template-columns: repeat(8, 1fr);
  column-gap: 20px;
  row-gap: 20px;
  max-width: 1600px;
  margin: 0 auto;
  padding: 0 20px;
  box-sizing: border-box;
}

.section-block {
  grid-column: 1 / -1;
  /* margin-bottom: 80px; */
}
.section-block:last-child {
  margin-bottom: 0;
}

.section-main-title {
  /* Also used on Company Profile page */
  grid-column: 1 / -1;
  font-family: "EditorialNew", sans-serif;
  font-size: clamp(1.8rem, 5vw, 4rem);
  font-weight: normal;
  line-height: 1.1;
  letter-spacing: -0.04em;
  margin-bottom: 40px;
  padding: 0;
  padding-bottom: 20px;
}

.intro-text {
  /* Company Profile Page Specific Intro Text */
  color: var(--text-color);
  max-width: 60vw;
  font-family: "Haas", var(--body-font);
  font-size: calc(17px + 5 * (100vw - 480px) / 740);
  line-height: 1.15;
  letter-spacing: -0.0105em;
  text-align: left;
  margin: 0px;
}
.intro-text p:first-child {
  font-family: "Haas", var(--body-font);
}

/* ----------  TEAM  ---------- */
.team-members-grid {
  display: grid;
  gap: 40px 30px;
  margin-top: 30px;
  /* auto-fit lets the cards wrap; min() keeps them from stretching too wide on huge screens */
  grid-template-columns: repeat(auto-fit, minmax(min(320px, 100%), 1fr));
}

.team-member {
  display: flex;
  flex-direction: column;
  overflow: hidden;       


}

/* ----- image ----- */
.team-member-image {
  aspect-ratio: 3 / 4;        /* keeps all cards the same height ratio */
  width: 100%;
}

.team-member-image img {
  width: 100%;
  height: 80%;
  object-fit: cover;          /* no stretching, fills the box */
  display: block;
}

/* ----- text ----- */
.team-member-content {
  padding-top: 40px;
}

.team-member-name {
  font-family: "EditorialNew", sans-serif;
  font-size: clamp(1.6rem, 4vw, 2.4rem);
  line-height: 1.2;
  letter-spacing: -0.02em;
  margin: 0 0 12px;
}

.team-member-bio {
  font-family: "Haas", var(--body-font);
  font-size: calc(13px + 5 * (100vw - 480px) / 740);
  line-height: 1.35;
  letter-spacing: 0.02em;
  margin: 0;
}



/* --- VALUES Section --- */
#values .section-main-title {
  position: relative;
  z-index: 5;
}
.values-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 80px;
  margin-top: 30px;
}
.value-item {
  display: grid;
  grid-template-columns: repeat(8, 1fr);
  column-gap: 20px;
  align-items: start;
  padding: 20px 0;
}
.value-item .value-name {
  grid-column: 3 / span 3;
  font-size: calc(13px + 5 * (100vw - 480px) / 740);
  line-height: 1.2;
  width: fit-content;
  padding: 10px 20px;
  color: var(--text-color);
  border: 1px solid var(--text-color);
  margin-bottom: 15px;
  letter-spacing: -0.03em;
}
.value-item img {
  grid-column: 3 / span 3;
  width: 100%;
  height: auto;
  max-width: 120px;
  margin-right: 20px;
  margin-bottom: 20px;
}
.value-item .value-description {
  grid-column: 3 / span 4;
  font-family: "Haas", var(--body-font);
  font-size: calc(13px + 5 * (100vw - 480px) / 740);
  line-height: 1.5;
  letter-spacing: 0.01em;
}
.value-item .value-description p {
  margin-bottom: 0.8em;
}
.value-item .value-description p:last-child {
  margin-bottom: 0;
}

/* --- AWARDS Section --- */
.awards-title::after{
  content: "";
  background-image: url("images/illustrations/7-awards/awards-illustration.png");
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center bottom;
  position: fixed;
  left: 50px;
  width: 100%;
  height: 1.1em;
  bottom: -0.3em;
  top: 0px;
  z-index: 1;
}

.awards-list-container {
  margin-top: 30px;
}
.award-group {
  display: flex;
  flex-direction: column;
  margin-bottom: 40px;
}
.award-group:last-child {
  margin-bottom: 0;
}
.award-content-wrapper {
  display: grid;
  grid-template-columns: repeat(8, 1fr);
  column-gap: 20px;
  align-items: baseline;
}
.award-project-name {
  grid-column: 1 / span 3;
  font-family: "Haas", sans-serif;
  width: fit-content;
  font-size: calc(13px + 3 * (100vw - 480px) / 740);
  line-height: 1.3;
  margin-bottom: 10px;
  color: var(--text-color);
}
ul.awards {
  grid-column: 4 / span 5;
  list-style: none;
  padding-left: 0;
  margin: 0;
  font-family: "Haas", var(--body-font);
  font-size: calc(13px + 3 * (100vw - 480px) / 740);
  line-height: 1.25;
  letter-spacing: 0.01em;
}
ul.awards li {
  margin-bottom: 6px;
  padding-left: 1.2em;
  position: relative;
}
ul.awards li::before {
  content: " ";
  position: absolute;
  left: 0;
}


/* ======================================== */
/* == BLOG OVERVIEW PAGE                 == */
/* ======================================== */

.blog-overview-section {
  
  padding-left: 60px;
  padding-right: 60px;
  max-width: 950px;
  margin-left: auto;
  margin-right: auto;
}
.blog-section-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.blog-section-main-title {
  font-family: "Haas", sans-serif;
  font-size: calc(13px + 0.5vw);
  color: var(--text-color);
  margin: 0;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}
.blog-see-more-link {
  font-family: "Haas", sans-serif;
  font-size: calc(13px + 5 * (100vw - 480px) / 740);
  color: var(--text-color);
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  /* border-bottom: 1px solid transparent; */
  transition: border-color 0.3s ease;
  padding-bottom: 2px;
}
.blog-posts-list-container {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
}
.blog-post-item-new {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  text-decoration: none;
  color: var(--text-color);
  /* border-bottom: 1px solid rgba(223, 223, 210, 0.1); */
  transition: background-color 0.2s ease;
  gap: 15px;
}
.blog-post-item-new:first-child {
  grid-column: 1 / -1;
  gap: 20px;
  padding-bottom: 30px;
}
.blog-post-item-new:first-child .blog-post-image-col {
  width: 100%;
  height: 400px;
}
.blog-post-item-new:first-child .blog-post-title-new {
  font-size: clamp(1.5rem, 3.2vw, 2rem);
}
.blog-post-item-new:first-child .blog-post-excerpt-new {
  font-size: clamp(0.95rem, 2.3vw, 1.1rem);
  -webkit-line-clamp: 3;
  min-height: calc(1.4em * 3);
}
.blog-post-item-new:first-child .blog-post-date-new {
  font-size: clamp(0.85rem, 2.1vw, 0.95rem);
}
.blog-post-item-new:first-child .blog-post-read-more-new {
  font-size: clamp(0.8rem, 2vw, 0.9rem);
}

.blog-post-item-new:not(:first-child) .blog-post-image-col {
  width: 100%;
  height: 220px;
}
.blog-post-image-col {
  overflow: hidden;
  padding: 0;
  background-color: #2a2a2a;
}
.blog-post-image-col img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.3s ease;
}
.blog-post-item-new:hover .blog-post-image-col img {
  transform: scale(1.03);
}
.blog-post-text-col {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  padding-top: 10px;
}
.blog-post-title-new {
  font-family: "EditorialNew", "Helvetica", sans-serif;
  font-size: calc(20px + 5 * (100vw - 480px) / 740);
  line-height: 1;
  margin: 0 0 10px 0;
  color: var(--text-color);
  transition: color 0.2s ease;
}
.blog-post-excerpt-new {
  font-family: "Haas", "Helvetica", sans-serif;
  font-size: calc(13px + 4 * (100vw - 480px) / 820);
  line-height: 1.45;
  color: rgba(223, 223, 210, 0.85);
  margin: 0 0 12px 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
  min-height: calc(1.45em * 2);
}
.blog-post-date-new {
  font-family: "HaasLight", "Helvetica", sans-serif;
  font-size: clamp(0.75rem, 1.8vw, 0.8rem);
  color: rgba(223, 223, 210, 0.7);
  text-align: left;
  line-height: 1.4;
  text-transform: uppercase;
  margin: 0 0 15px 0;
}
.blog-post-read-more-new {
  font-family: "Haas", "Helvetica", sans-serif;
  font-size: clamp(0.75rem, 1.8vw, 0.8rem);
  color: var(--text-color);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  cursor: pointer;
  align-self: flex-start;
  border-bottom: 1px solid transparent;
  margin-top: auto;
  padding-top: 10px;
  transition: color 0.2s ease, border-bottom-color 0.2s ease;
}
.blog-post-read-more-new:hover {
  border-bottom-color: var(--text-color);
  color: var(--accent-color);
}
.blog-intro {
  /* Used as a wrapper for some blog content */
  max-width: 100vw;
  margin-left: 50%;
  transform: translateX(-30%);
  margin-right: auto;
  margin-top: 200px;
}

/* .blog-intro::after {
  content: "";
  background-image: url("images/illustrations/9-blog/read-accordingly_0000_read-accordingly3.png");
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center bottom;
  position: absolute;
  left: -340px;
  width: 100%;
  height: 2em;
  bottom: -0.3em;
  top: 220px;
  z-index: 1;
} */

.blog-load-more-button {
  font-family: "Haas", sans-serif;
  font-size: clamp(0.85rem, 2vw, 1rem);
  color: var(--text-color);
  background-color: transparent;
  border: 1px solid var(--text-color);
  padding: 10px 25px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  cursor: pointer;
  transition: background-color 0.3s ease, color 0.3s ease;
}
.blog-load-more-button:hover {
  background-color: var(--text-color);
  color: var(--background-color);
}
.blog-load-more-button:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

/* ======================================== */
/* == WORK PAGE (work.html)              == */
/* ======================================== */

#work-page-projects-container {
  scroll-snap-type: y mandatory;
}
.work-project-fullscreen {
  height: 100vh;
  width: 100vw;
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  overflow: hidden;
  color: var(--text-color);
  background-color: var(--background-color);
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.project-thumbnail-fullscreen-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  z-index: 1;
}
.project-thumbnail-fullscreen-bg::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0);
  z-index: 2;
  pointer-events: none;
}
.project-info-fullscreen {
  position: relative;
  z-index: 3;
  text-align: center;
  padding: 25px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  transform: translateY(30px);
}
.project-title-fullscreen {
  font-family: "EditorialNew";
  font-size: clamp(2.5rem, 6vw, 4.5rem);
  line-height: 1.15;
  letter-spacing: -0.02em;
  color: var(--text-color);
  margin: 0;
}

/* ======================================== */
/* == MOBILE & RESPONSIVE STYLES         == */
/* ======================================== */

/* == Max-width: 1200px == */
@media (max-width: 1200px) {
  /* Footer */
  .footer-callout-main-text-container {
    grid-column: 1 / span 7;
  }
  .footer-column-address {
    grid-column: 8 / span 2;
  }
  .footer-column-contact {
    grid-column: 10 / span 1;
  }
  .footer-column-social {
    grid-column: 11 / span 2;
  }
}

/* == Max-width: 992px == */
@media (max-width: 992px) {
  /* Footer */
  .site-footer .footer-content-wrapper {
    padding: 0 20px;
  }
  .footer-grid-container {
    grid-template-columns: repeat(6, 1fr);
    row-gap: 40px;
    align-items: start;
  }
  .footer-callout-main-text-container {
    grid-column: 1 / -1;
    grid-row: 1;
    justify-content: center;
    text-align: center;
    margin-bottom: 30px;
  }
  .footer-callout-main-text {
    padding-right: 10px;
    text-align: center;
  }
  .footer-callout-tagline {
    text-align: center;
    width: 100%;
    padding-bottom: 0;
    margin-top: 5px;
  }
  .footer-column-brand {
    grid-column: 1 / -1;
    grid-row: 2;
    text-align: center;
    margin-bottom: 30px;
    align-self: center;
  }
  .footer-column-address,
  .footer-column-contact,
  .footer-column-social {
    grid-row: 3;
    text-align: left;
    margin-bottom: 20px;
    align-self: start;
  }
  .footer-column-address {
    grid-column: 1 / span 2;
  }
  .footer-column-contact {
    grid-column: 3 / span 2;
  }
  .footer-column-social {
    grid-column: 5 / span 2;
  }

  /* About Section */
  .about-container .about-content-column:nth-of-type(1) {
    grid-column: 1 / span 4;
    grid-row: 3;
  }
  .about-container .about-content-column:nth-of-type(2) {
    grid-column: 5 / span 4;
    grid-row: 3;
  }
  .about-container .about-content-column:nth-of-type(3) {
    grid-column: 1 / -1;
    grid-row: 4;
    margin-top: 20px;
  }

  /* Blog Overview Page */
  .blog-posts-list-container {
    gap: 25px;
  }
  .blog-post-item-new:first-child .blog-post-image-col {
    height: 300px;
  }
  .blog-post-item-new:not(:first-child) .blog-post-image-col {
    height: 200px;
  }
}

/* == Max-width: 900px == */
@media (max-width: 900px) {
  /* Parallax & Intro Elements */
  .central-text.intro-text {
    font-size: 4rem;
  }

  /* Header & Navigation */
  .fixed-header {
    gap: 10px;
    padding: 0 15px;
  }
  .menu-link {
    font-size: 8pt;
  } /* Consider rem/em */

  /* Projects Section (Homepage) */
  .projects-horizontal-scroll {
    padding-right: 20px;
  }

  .projects-section {
    margin-top: 0px;
  }

  /* Project Detail Page */
  .project-detail-container {
    column-gap: 20px;
    padding: 0 20px;
    row-gap: 40px;
  
  }

  .project-detail-page .page-wrapper {
    padding-top: 80px;
  }
  .project-main-title {
    font-size: clamp(2.8rem, 7vw, 4.5rem);
  }
  .project-meta-info {
    grid-column: 1 / span 3;
    font-size: 15px;
  }
  .project-main-text-content {
    grid-column: 4 / span 5;
    margin-top: -120px;
    margin-bottom: -10px;
  }

  .project-secondary-text-content {
    grid-column: 1 / span 8;
    font-size: 16px;
  }
  .project-secondary-layout-grid {
    grid-template-columns: repeat(4, 1fr);
  }
  .project-secondary-layout-grid .project-gallery-item,
  .project-secondary-layout-grid .project-secondary-text-content,
  .project-secondary-layout-grid .project-full-width-media {
    grid-column: 1 / -1;
  }

  /* Company Profile Page */
  .content-section.company-content {
    padding: 40px 0 60px 0;
  }
  .section-main-title {
    font-size: clamp(2.5rem, 6vw, 4rem);
    margin-bottom: 30px;
    padding-bottom: 15px;
  }
  .intro-text {
    grid-column: 1 / -1;
    padding: 0 5%;
    font-size: calc(13px + 3 * (100vw - 480px) / 740);
    margin-bottom: 40px;
  }
  .award-group .award-content-wrapper {
    column-gap: 15px;
  }
  .award-project-name {
    grid-column: 1 / span 3;
  }
  ul.awards {
    grid-column: 4 / span 5;
  }
  .value-item {
    column-gap: 15px;
  }
  .value-item .value-name {
    grid-column: 1 / span 3;
  }
  .value-item .value-description {
    grid-column: 4 / span 5;
  }

  
}

/* == Max-width: 768px == */
@media (max-width: 768px) {
  /* Global Styles */
  body {
    font-size: 16px;
  }
  h2.projects-title, /* This is the "Our Work" title for the projects section */
  .section-title-style { /* General title style */
    font-size: clamp(2.5rem, 8vw, 5rem);
    padding-top: 0px;
  }

  /* Header & Navigation */
  .fixed-header {
    height: 60px;
    padding: 0 15px;
    gap: 10px;
  }
  .menu-link {
    display: none;
  }
  .menu-logo img {
    height: 17px;
  }
  .hamburger-icon {
    display: block;
  }

  /* --- NEW MOBILE INTRO TEXT STYLES --- */
  .mobile-intro-text {
    display: block; /* Show the container on mobile */
    font-family: "EditorialNew", sans-serif;
    color: var(--text-color);
    text-align: center;
    padding: 40px 20px 20px 20px; /* Top, horizontal, bottom padding */
    margin-top: 80px; /* Optional: Adjust spacing from header or elements above */
  }

  .mobile-intro-text p { /* Target both <p> tags for font size */
    margin: 0;
    line-height: 0.9em;
    letter-spacing: -0.020em;
    
    font-size: 80px /* Responsive font size */
  }

  .mobile-intro-text-first {
    position: relative; /* For the ::after pseudo-element (underline) */
  }

  .mobile-intro-text-second {
    margin-top: 0.1em; /* Small gap between the two lines */
  }

  /* Simple CSS underline for "CREATIVITY" on mobile */
  .mobile-intro-text-first::after {
    content: '';
    display: block;
    width: 50%;
    height: 3px;
    
   
  }
  /* --- END NEW MOBILE INTRO TEXT STYLES --- */


  /* Parallax & Intro Elements */
  .central-text.intro-text {
    /* display: 3rem; */ /* Original had font-size here, typo? */
    font-size: 3rem; /* Kept from original */
    display: none; /* Hide the original fixed "Bootzy" font intro text on mobile,
                       as .mobile-intro-text is now used. */
  }
  .parallax-container {
    display: none; /* Existing rule: Hides intro parallax on mobile */
  }

  /* Projects Section (Homepage) - MODIFIED FOR VERTICAL LAYOUT */
  .projects-horizontal-scroll {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    overflow-x: hidden;
    overflow-y: visible;
    height: auto;
    gap: 30px;
    padding-left: 20px;
    padding-right: 20px;
    padding-bottom: 40px;
    scrollbar-width: none; /* Firefox */
  }

  .projects-horizontal-scroll::-webkit-scrollbar {
    display: none;
  }

  .project-item-link {
    width: 100%;
    height: auto;
    display: block;
    text-decoration: none;
    color: inherit;
  }

  .project-item {
    width: 100%;
    height: 380px;
    padding: 20px;
    margin-right: 0;
    box-sizing: border-box;
  }

  .project-item .project-item-title-overlay {
    opacity: 1;
    font-size: clamp(1.4rem, 4vw, 2rem);
  }

  .see-more-projects-scroll-parent {
    width: 100%;
    height: auto;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-top: 10px;
  }

  .see-more-projects-scroll-item {
    margin-left: 0;
    text-align: center;
    padding: 12px 25px;
  }

  .projects-title-container {
    display: block !important;
    margin-bottom: 30px;
    padding: 0 20px;
  }

  h2.projects-title {
    text-align: left;
  }

  .work-scroll-title-heading {
    margin-left: 0;
    font-size: clamp(1.8rem, 4vw, 2.5rem);
  }

  .about-content-column a img {
    width: 60vw;
    height: auto;

  }

  /* Services Section */
  .services-section {
    padding: 80px 0;
  }
  .services-container {
    grid-template-columns: 1fr;
    column-gap: 0;
    row-gap: 20px;
    padding: 0 20px;
  }
  .services-section .services-title {
    grid-column: 1 / -1;
    margin-bottom: 30px;
  }
  .service-category,
  .service-description {
    grid-column: 1 / -1;
    font-size: 1em;
  }

  /* Initial Overlay */
  #initial-overlay .image-container {
    width: 85vw;
  }

  /* Footer */
  .site-footer {
    padding: 40px 20px;
  }
  .footer-grid-container {
    grid-template-columns: 1fr;
    row-gap: 0;
  }
  .footer-callout-main-text-container {
    grid-row: 1;
    margin-bottom: 30px;
    justify-content: center;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
  }
  .footer-callout-main-text {
    font-size: clamp(3rem, 15vw, 5rem);
    padding-right: 0;
    line-height: 1.1;
    white-space: normal;
  }
  .footer-callout-tagline {
    font-size: clamp(0.9rem, 4vw, 1.2rem);
    width: 100%;
    margin-top: 5px;
    line-height: 1.2;
  }

  .footer-column {
    grid-column: 1 / -1 !important;
    grid-row: auto;
    text-align: left;
    margin-bottom: 35px;
    font-size: 1em;
  }
  .footer-column:last-child {
    margin-bottom: 0;
  }

  .footer-column-brand {
    text-align: center;
    margin-bottom: 40px;
  }
  .footer-column-brand p {
    text-align: center;
    margin-bottom: 0;
    line-height: 1.4;
  }

  .footer-column-address h4,
  .footer-column-contact h4,
  .footer-column-social h4 {
    text-align: left;
    font-size: 1.05em;

    margin-bottom: 12px;
    color: var(--background-color);
  }

  .footer-column-address p,
  .footer-column-contact p {
    text-align: left;
    margin-bottom: 6px;
    line-height: 1.5;
  }
  .footer-column-contact a {
    display: block;
    text-align: left;
    margin-bottom: 6px;
    line-height: 1.5;
    color: var(--background-color);
    text-decoration: none;
  }
  .footer-column-contact a:hover {
    text-decoration: underline;
  }
  .footer-column-contact a:last-child {
    margin-bottom: 0;
  }

  .footer-column-social p {
    text-align: left;
    margin-bottom: 0;
  }
  .footer-column-social a {
    display: block;
    text-decoration: none;
    text-align: left;
    color: var(--background-color);
    padding: 4px 0;
    margin-bottom: 6px;
    font-size: 1.05em;
    line-height: 1.4;
  }
  .footer-column-social a:hover {
    text-decoration: underline;
  }
  .footer-column-social a:last-child {
    margin-bottom: 0;
  }
  .social-icons a {
    display: block;
    text-align: left;
    margin: 0 0 6px 0;
  }

  .footer-gif-background {
    padding-bottom: 5px;
  }

  .footer-gif-background img {
    width: 100vw;
  }

  /* About Section */
  .about-section {
    padding-top: 30px;
  }
  .about-container {
    grid-template-columns: 1fr;
    row-gap: 20px;
    padding: 20px;
    margin: 10px auto;
    font-size: 20px;
    margin-left: -50px;
  }
  .about-section .about-main-title {
    margin-bottom: 30px;
  }
  .about-container .about-content-column,
  .about-container .about-content-column:nth-of-type(1),
  .about-container .about-content-column:nth-of-type(2),
  .about-container .about-content-column:nth-of-type(3) {
    grid-column: 1 / -1;
    grid-row: auto;
    margin-top: 0;
    font-size: 1em;
  }

  .team-member-bio {
    font-size: 16px
  }

  /* Client Logo Carousel */
  .client-logo-item {
    width: 220px;
    height: 90px;
    margin-left: -105px;
  }
  .logo-carousel-track {
    animation-duration: 200s;
  }

  .logo-separator-image {
    display: none; /* Hide the separator image on mobile */
  }

  /* Project Detail Page */
  .project-detail-page .page-wrapper {
    padding-top: 70px;
  }
  .project-main-title {
    font-size: clamp(2.2rem, 8vw, 3.8rem);
    margin-bottom: 20px;
  }
  .project-meta-info,
  .project-main-text-content {
    grid-column: 1 / -1;
    font-size: 1em;
  }
  .project-meta-info {
    margin-bottom: 30px;
  }
  .project-secondary-layout-grid {
    grid-template-columns: 1fr;
    row-gap: 30px;
  }
  .project-secondary-layout-grid .project-gallery-item,
  .project-secondary-layout-grid .project-secondary-text-content,
  .project-secondary-layout-grid .project-full-width-media {
    grid-column: 1 / -1;
  }
  .project-navigation-links {
    flex-direction: column;
    gap: 15px;
  }
  .project-nav-link {
    width: 100%;
    text-align: center;
    box-sizing: border-box;
    font-size: 1em;
  }

  /* Company Profile Page */
  .company-profile-page .page-wrapper {
    padding-top: 70px;
  }
  .team-members-grid {
    padding: 0;
    grid-template-columns: 1fr;
  }
  .team-member {
    height: auto;
    min-height: 400px;
  }
  .award-group .award-content-wrapper {
    grid-template-columns: 1fr;
    row-gap: 15px;
  }
  .award-project-name,
  ul.awards {
    grid-column: 1 / -1;
    font-size: 1em;
  }
  .award-project-name {
    margin-bottom: 10px;
  }
  .value-item {
    grid-template-columns: 1fr;
    row-gap: 15px;
    column-gap: 0;
    padding: 15px 0;
  }
  .value-item .value-name,
  .value-item img,
  .value-item .value-description {
    grid-column: 1 / -1;
    font-size: 1em;
  }
  .value-item .value-name {
    margin-bottom: 10px;
  }
  /* .intro-text styling is handled by the general .intro-text rule
     unless a more specific one like .company-profile-page .intro-text is needed.
     The original had a general .intro-text rule for 768px. */
  .intro-text {
    text-align: left;
    font-size: 1em;
    padding: 0 0px;
    font-size: 20px;
    max-width: 100vw;
  }

 

  /* Blog Overview Page */

  .blog-intro {
    max-width: 100vw;
    margin-left: 0;
    transform: translateX(0);
    margin-top: 100px;
    padding: 0 20px;
  }
  .section-main-title.blog-page-title,
  h1.blog-page-title {
    font-size: clamp(2.5rem, 8vw, 5rem);
    text-align: center;
  }
  .blog-posts-list-container {
    grid-template-columns: 1fr;
    gap: 30px;
  }
  .blog-post-item-new {
    gap: 15px;
  }
  .blog-post-item-new .blog-post-image-col {
    height: 220px;
    margin-bottom: 0;
  }
  .blog-post-item-new .blog-post-text-col {
    padding: 10px 0 0 0;
  }
  .blog-post-item-new .blog-post-title-new {
    font-size: clamp(1.2rem, 2.8vw, 1.6rem);
  }
  .blog-post-item-new .blog-post-excerpt-new {
    -webkit-line-clamp: 3;
    min-height: calc(1.45em * 3);
    font-size: clamp(0.9rem, 2.1vw, 1rem);
  }
  .blog-post-read-more-new {
    margin-top: 15px;
  }

  /* Work Page (work.html) */
  .project-title-fullscreen {
    font-size: clamp(2rem, 5vw, 3.5rem);
  }
  .project-info-fullscreen {
    padding: 20px;
    transform: translateY(20px);
  }
}