/* ========================================
   CSS RESET & BASE STYLES
   ======================================== */

/* Basic CSS reset */
*,
*::after,
*::before {
  margin: 0;
  padding: 0;
  border: 0;
  box-sizing: border-box;
  scrollbar-width: thin;
  scrollbar-color: #4A4A4A #1B1B1B;
}

/* Screen reader only class for accessibility */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* ========================================
   CSS VARIABLES & ROOT STYLES
   ======================================== */

:root {
  /* Viewport height fallback for mobile browsers */
  --vh: 100vh;
  --section-gap: clamp(4rem, 7vw, 7.5rem);
  
  /* Typography */
  --font-family-primary: 'Raleway', sans-serif;
  --font-size-base: 16px;
  
  /* Colors */
  --color-white: #ffffff !important;
  --color-black: #000000;
  --color-gray: #C4C4C4 !important;
    --color-medium-gray: #979797 !important;
  --color-dark-gray: #2D2D2D;
  --color-background: #0F0F0F;
  
  /* Spacing */
  --spacing-xs: 0.25rem;
  --spacing-sm: 0.5rem;
  --spacing-md: 1rem;
  --spacing-lg: 1.5rem;
  --spacing-xl: 2rem;
  --spacing-xxl: 3rem;
  
  /* Icon sizing */
  --soft-icon-size: 4rem;
  
  /* Z-index scale */
  --z-index-cursor: 99999999999999999999999;
  --z-index-navbar: 99;
  --z-index-hamburger: 999999999;
  
  /* Performance optimizations */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Text selection styling */
::selection {
  color: var(--color-black);
  background: var(--color-white);
}

/* Import external fonts */

/* ========================================
   HTML & BODY STYLES
   ======================================== */

html {
  font-size: var(--font-size-base);
  font-family: var(--font-family-primary);
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  overflow-x: hidden;
  cursor: none;
  color: var(--color-white);
  scroll-behavior: smooth;
}


/* ========================================
   BASE ELEMENT STYLES
   ======================================== */

/* List styling */
li {
  list-style: none;
}

/* Link styling */
a {
  text-decoration: none;
  -webkit-tap-highlight-color: transparent;
  cursor: none;
  color: var(--color-white);
  transition: color 0.3s ease;
}

a:hover {
  color: var(--color-gray);
}

/* Button styling */
button {
  cursor: none;
  background: none;
  border: none;
  font-family: inherit;
}

/* Body styling */
body {
  overflow-x: hidden;
  font-family: var(--font-family-primary);
  background: var(--color-background) url('/images/grain.webp') repeat;
}

/* ========================================
   CUSTOM CURSOR STYLES
   ======================================== */

.cursor {
  display: block;
  position: fixed;
  width: 1.5625rem; /* 25px */
  height: 1.5625rem; /* 25px */
  padding: 0.0625rem; /* 1px */
  top: 0;
  left: 0;
  border-radius: 50%;
  background: var(--color-white);
  transform: translate(-50%, -50%);
  pointer-events: none;
  mix-blend-mode: difference;
  z-index: var(--z-index-cursor);
  transition: width 0.3s ease, height 0.3s ease;
}

.cursor2 {
  display: block;
  background-image: url('/images/icons/left.svg');
  position: fixed;
  width: 24px;
  height: 24px;
  top: 0;
  left: 0;
  transform: translate(-50%, -50%);
  pointer-events: none;
  mix-blend-mode: difference;
  z-index: var(--z-index-cursor);
}

.zoomable-image,
#closeButton {
  cursor: none !important;
}

/* ========================================
   UTILITY CLASSES
   ======================================== */

.uppercase {
  text-transform: uppercase;
}

.underline {
  text-decoration: underline;
}

.tiny {
  font-size: 0.75rem;
}

.white,
.text-white {
  color: var(--color-white);
}

.text-medium-gray {
  color: var(--color-medium-gray);
}

/* ========================================
   LAYOUT COMPONENTS
   ======================================== */

/* Main wrapper */
.wrapper {
  width: 86%;
  margin: 0 auto;
  position: relative;
  max-width: 1700px;
}

/* Navigation bar */

.navbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 2.5rem;
  z-index: 99;
  transition: padding-top 0.2s;
}

.navbar.scrolled {
  padding-top: 2.5rem;
}

body.home-page .softs-container-wrapper {
  margin-top: calc(80vh + 2.5rem);
}

/* Menu Items */

.nav-logo{
  z-index: 99999999;
}

.navbar:focus {
  outline: none;
  box-shadow: none;
}

.nav-menu {
  display: flex;
  align-items: center;
  gap: 3rem; /* 48px */
  z-index: 99;
}

.nav-item {
  list-style: none;
  position: relative; /* Make it a containing block for absolute positioning */
}

.nav-link {
  font-size: 1rem; /* 16px */
  font-weight: 500;
  color: white;
  text-align: center;
  transition: color 0.3s ease;
}

.nav-link:hover {
  color: #C4C4C4;
}

.active-link {
  display: flex;
  height: 2rem; /* 32px */
  padding: 0 1rem; /* 16px */
  justify-content: center;
  align-items: center;
  gap: 0.5rem; /* 8px */
  border-radius: 0.3125rem; /* 5px */
  border: 1px solid #434343; /* 0.25px */
}

.active-link:hover {
  background-color: white;
  color: black !important;
  transition: background-color 0.3s ease, color 0.3s ease;
}

/* Change blend mode on hover */
.nav-item:hover .linkedin_icon {
  mix-blend-mode: difference; /* or exclusion */
}

.linkedin_icon {
  width: 1.25rem; /* 20px */
  height: 1.25rem; /* 20px */
}

.logo_mariussart {
  width: 3.5rem; /* 56px */
  height: 2rem; /* 32px */
}

/* Label for My Projects */
.project-count {
  position: absolute;
  top: -1rem; /* Adjust this value to position the label correctly */
  right: -0.5rem; /* Adjust this value to position the label correctly */
  color: white;
  font-size: 0.625rem; /* 10px */
  padding: 0.2rem 0.4rem; /* Adjust padding as needed */
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
}


/* Hamburger Menu */

.hamburger {
  display: none;
  position: relative;
  z-index: 9999; /* Ensure it's on top of other content */
}

.hamburger-tab {
  display: flex;
  justify-content: space-between;
  align-items: center;
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 5.3rem;
  padding: 0 7%;
  z-index: 20;
  transition: height 0.3s ease;
}

.hamburger-tab.scrolled {
  height: 4.19rem;
  border-bottom: solid 0.5px #2D2D2D; 
  background: rgba(15, 15, 15, 0.60) url('/images/grain.webp') repeat;
  box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1);
  backdrop-filter: blur(9.2px);
  -webkit-backdrop-filter: blur(9.2px);
}

.hamburger-screen {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  height: 100dvh;
  bottom: 0;
  background: var(--color-background) url('/images/grain.webp') repeat;
  z-index: 10;
  flex-direction: column;
}

.hamburger-screen.show {
  display: flex;
}

.hamburger-logo {
  position: relative;
  z-index: 10000;
}

.hamburger-switch {
  position: relative;
  z-index: 10000;
  font-size: 1rem;
}


.hamburger-nav-link{
  font-size: 1.5rem;
  font-weight: 500;
}

.hamburger-project-count {
  position: absolute;
  top: -1rem; /* Adjust this value to position the label correctly */
  right: -0.5rem; /* Adjust this value to position the label correctly */
  color: white;
  font-size: 0.625rem; /* 10px */
  padding: 0.2rem 0.4rem; /* Adjust padding as needed */
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
}

.hamburger-menulist {
  display: flex;
  flex-direction: column;
  gap: 6.5vh;
  margin-top: 18vh; /* Adjust as needed */
  justify-content: center;
  align-items: center;
  text-align: center;
}

.hamburger-motto{
  position: absolute;  
  bottom: 17vh;
  left: 7%;
  width: 86%;
  color: #979797;
  text-align: left;
}

.position-hamburger-footer-projects {
  position: absolute;  
  bottom: 5vh;
  left: 7%;
  width: 86%;
}

.hamburger-footer-links{
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
  margin-top: 2.5rem;
  width: 100%;
}

.hamburger-social-links{
  gap: 2.5rem;
  display: flex;
  flex-direction: row;
  justify-content: space-between;
}

/* navigation slider */

.navigation-slider {
    position: fixed;
    bottom: 4%;
    left: 50%;
    transform: translateX(-50%);
    background-color: #181818;
    padding: 0.5rem;
    border-radius: 8px;
    display: inline-flex;
    gap: 0.5rem;
    z-index: 999;
    white-space: nowrap;
}

.navigation-slider-button {
  font-size: 14px;
  background-color: #282828;
  color: white;
  padding: 0.6rem 1rem;
  border-radius: 6px;
  cursor: none;
  transition: background-color 0.3s;
  display: inline-flex;
  white-space: nowrap;
}

.navigation-slider-button:hover {
    background-color: #1E1E1E;
}

.navigation-slider-button-active {
    background-color: #181818;
}

.navigation-slider-button-active:hover {
    background-color: #181818;
}


/* End of Navigation bar */

/* Homepage content */

.header-text {
  font-size: 4rem;
  font-weight: 600 !important; /* SemiBold */
  margin: 12.5rem 0 5rem 0; /* 200px top, 80px bottom */
}

.white-text {
  color: white;
}

.gray-text {
  color: #979797;
}

.quotation-container {
  display: flex;
  justify-content: flex-end;
  width: 100%;
  padding-right: 1rem;
}

.styled-quotation-container {
  display: flex;
  align-items: center;
  gap: 1.5rem; /* 1.5rem gap between elements */
}

.quotation {
  font-size: 1rem;
  color: white;
  width: 29rem;
}

.short-line {
  
  width: 2rem;
  height: 0;
  border: 1px solid white; /* 0.5px stroke */
}

.myself {
  border-radius: 2px; /* 2px rounded corners */
  display: block; /* Ensure the image is treated as a block element */
  width: 3.75rem; /* 60px */
  height: 3.75rem; /* 60px */
  transition: transform 0.5s ease, 
              filter 0.5s ease;
}

.myself:hover {
  transform: rotate(-10deg) scale(1.2);
  filter: brightness(80%); /* Darken the image slightly */
}


.softs-container-wrapper {
  position: relative;
  width: 100vw;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  margin-top: calc(80vh + 2.5rem);
  padding-top: 0;
}

.softs-container {
  width: 86%;
  max-width: 1700px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(8, 1fr);
  grid-template-rows: 1fr;
  gap: 0px; /* Use gap instead of grid-gap to avoid overlapping borders */
}

.soft-item {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 1.5rem 0;
  border-left: solid 0.5px #2D2D2D;
  border-right: solid 0.5px #2D2D2D;
  margin: -0.25px; /* Adjust to bring borders inside */
  box-sizing: border-box;
}

.soft-icon {
  display: block;
  width: var(--soft-icon-size);
  height: var(--soft-icon-size);
  transition: transform 0.5s ease, 
              filter 0.5s ease;
  border-radius: 1rem;
  background-color: #181818;
  box-sizing: border-box;
  object-fit: contain;
}

.soft-icon:hover {
  transform: scale(1.2); /* Zoom effect */
  filter: brightness(80%); /* Darken the image slightly */
}

#home .frontpage-image-section {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 80vh;
  z-index: 0;
  pointer-events: none;
}

.frontpage-image-grid {
  width: 100%;
  height: 100%;
  min-height: 80vh;
  display: grid;
  grid-template-columns: 1fr 1fr;
}

.frontpage-image-card {
  position: relative;
  overflow: hidden;
  height: 80vh;
  min-height: 80vh;
  border: none;
  border-radius: 0;
  background-color: #181818;
}

.frontpage-image-card > img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.frontpage-image-card--secondary {
  position: relative;
}

.frontpage-image-card .frontpage-image-illustration {
  position: absolute;
  bottom: -12px !important;
  width: auto;
  max-width: 75%;
  object-fit: contain;
  object-position: center bottom;
  pointer-events: auto;
  will-change: transform;
  mix-blend-mode: luminosity;
  -webkit-mix-blend-mode: luminosity;
}

.frontpage-image-card .frontpage-lily-middle {
  left: 50%;
  height: 78% !important;
  transform-origin: center bottom;
  z-index: 3;
  transform: translateX(-50%) translateY(var(--lily-middle-translate, 0px)) rotate(calc(var(--lily-middle-rotation, 0deg)));
}

.frontpage-image-card .frontpage-lily-left {
  left: calc(50% + 15px);
  height: 55% !important;
  transform-origin: right bottom;
  z-index: 2;
  transform: translateX(-100%) translateY(var(--lily-left-translate, 0px)) rotate(calc(var(--lily-left-rotation, 0deg)));
}

.frontpage-image-card .frontpage-lily-right {
  left: calc(50% + 3px);
  height: 46.4% !important;
  transform-origin: left bottom;
  z-index: 1;
  transform: translateX(0%) translateY(var(--lily-right-translate, 0px)) rotate(calc(var(--lily-right-rotation, 0deg)));
}

.frontpage-image-overlay {
  position: absolute;
  top: 55%;
  left: max(14%, calc(50vw - 850px));
  transform: translateY(-50%);
  width: min(60%, 400px);
  z-index: 1;
  pointer-events: none;
}

.frontpage-image-overlay-copy {
  margin: 0;
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 1.2;
  color: white;
}

.frontpage-image-overlay-copy .white-text {
  display: inline;
  color: white;
}

.frontpage-image-overlay-copy.new-motto {
  font-size: clamp(1.5rem, 3.5vw, 1.8rem) !important;
  font-weight: 500 !important;
  line-height: 1.4 !important;
}

.frontpage-image-overlay-copy.new-motto .font-weight-600 {
  font-weight: 600 !important;
}

.frontpage-image-overlay-copy.new-motto .font-weight-500 {
  font-weight: 500 !important;
}

.frontpage-image-caption {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  padding: 1.5rem;
  pointer-events: none;
}

.frontpage-image-caption span {
  font-family: Raleway, sans-serif;
  font-size: clamp(1.15rem, 1.7vw, 1.6rem);
  font-weight: 500;
  letter-spacing: 0.08em;
  color: white;
  text-transform: uppercase;
  line-height: 1.1;
}

#home .hero-section {
  position: absolute;
  top: 0;
  left: 50%;
  width: 100vw;
  min-height: 80vh;
  height: 80vh;
  margin-left: -50vw;
  margin-top: 0;
  padding: 0;
  overflow: hidden;
  z-index: 0;
}

.navbar {
  position: relative;
  z-index: 300;
}

body.home-page .softs-container-wrapper {
  position: relative;
  z-index: 1;
  margin-top: calc(80vh + 2.5rem);
  padding-top: 0;
}

.title-text {
  font-size: 1.5rem;
  font-weight: 500; /* Medium */
  margin: 12.5rem 0 5rem 0; /* 200px top, 80px bottom */
}

.projects-container {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 2.5rem 1.25rem;
  margin-bottom: 15rem;
}

.project-box {
  border: solid 0.5px #434343;
  border-radius: 6px;
  padding: 0.5rem;
  width: calc(50% - 1.25rem);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  will-change: transform;
  transition: transform 0.2s ease-out;
}

.projects-container > .project-box:nth-child(odd) {
  align-self: flex-start;
}

.project-box-header {
  width: 100%;
  padding-top: 64%; /* 1:2 aspect ratio */
  border-radius: 4px;
  border: solid 0.25px #434343;
  background-size: contain;
  background-position: center;
  position: relative;
  background-color: #181818;
}

.project-box-header-video{
  position: absolute;
  top: 47%;
  left: 50%;
  width: auto;
  height: 76%;
  transform: translate(-50%, -50%);
  z-index: 1;
  border-radius: 4px;
  border: solid 0.25px #434343;
  padding: 0.3rem;
}

/* Specific styles for Firefox */
@-moz-document url-prefix() {
  .project-box-header-video {
    width: 87.5% !important;
  }
  .project-box-header-video-2{
    width: 77% !important;
  }

  .project-box-header-video-3{
    width: 71% !important;
  }

  .project-box-header-mobile{
  width: 76% !important;
}

  .project-box-header-video-mobile{
    width: 31% !important;
  }

}

.project-box-header-mobile{
  position: absolute;
  top: 47%;
  left: 50%;
  width: auto;
  height: 76%;
  transform: translate(-50%, -50%);
  z-index: 1;
  display: flex;
  flex-direction: row;
  gap: 1.25rem;
}

.project-box-header-video-mobile{
  border-radius: 4px;
  border: solid 0.25px #434343;
  padding: 0.3rem;
  border-radius: 10px;
}

.project-box-header-video-mobile video{
  border-radius: 8px !important;
}

.project-box-header video {
  width: auto;
  height: 100%;
  border-radius: 4px;
}

.project-box-header::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  /*background: linear-gradient(180deg, rgba(0, 0, 0, 0.00) 0%, #0B0B0B 100%);*/
  border-radius: 4px;
}

.project-box-labels {
  position: absolute;
  bottom: 1rem;
  left: 1rem;
  right: 1rem;
  display: flex;
  justify-content: space-between;
  font-weight: 500;
}

.project-box-label {
  color: #979797;
  font-size: 0.875rem;
  font-weight: 400;
}

.remove-span{
    display: block;
  }

.project-button {
  display: block;
  border-radius: 5px;
  background-color: #181818;
  padding: 0.75rem 0;
  width: 100%;
  font-size: 1rem;
  font-family: Raleway, sans-serif;
  font-weight: 500;
  color: white;
  text-align: center;
  transition: background-color 0.3s ease;
}

.project-button:hover {
  background-color: #1E1E1E;
}

.experience-grid-container{
  position: relative;
  width: 100vw;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  margin-bottom: 0;
}

.experience-grid {
  width: 86%;
    max-width: 1700px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-template-rows: repeat(2, 1fr);
  gap: 0;
}

.experience-grid::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 100%;
    transform: translateX(-50%);
  }  

.experience-cell {
  padding: 2.5rem 2rem;
  display: flex;
  flex-direction: column;
  align-items: left;
  justify-content: left;
  border-left: solid 0.5px #2D2D2D;
  gap: 1rem;
}


.experience-cell:nth-child(n+4) {
  border-top: solid 0.5px #2D2D2D;
}

.experience-cell:nth-child(3),
.experience-cell:nth-child(7) {
  border-right: solid 0.5px #2D2D2D;
}

.experience-cell.combined {
  grid-column: span 2;
  font-size: 2.25rem;
  font-weight: 500;
  color: #979797;
}

.highlight {
  color: #ffffff;
}

.experience-content {
  display: flex;
  flex-direction: row;
  align-items: left;
  gap: 0.75rem;
  line-height: 1; 
}

.experience-icon {
  width: 24px;
  height: 24px;
}

.experience-header {
  font-size: 1.5rem;
  font-weight: 500;
  text-transform: capitalize;
  color: white;
}

.experience-text {
  font-size: 1rem;
  font-weight: 400;
  color: #979797;
}

/* ========================================
   PROFESSIONAL ENDORSEMENTS
   ======================================== */

.endorsements-section {
  padding: 0;
}

.endorsements-grid {
  display: grid;
  grid-template-columns: 340px 340px;
  grid-template-areas: 
    "title right"
    "controls right";
  justify-content: center;
  column-gap: 120px;
  padding: 15rem 0;
}

.endorsements-title {
  grid-area: title;
  font-size: 1.5rem;
  font-weight: 500;
  color: white;
  margin: 0;
  text-transform: uppercase;
}

.endorsements-controls {
  grid-area: controls;
  align-self: end;
  display: flex;
  justify-content: space-between;
  width: 100%;
}

.endorsements-btn {
  background: none;
  border: none;
  color: white;
  font-size: 0.875rem;
  font-weight: 500;
  cursor: none;
  padding: 0;
  margin: 0;
  transition: color 0.3s ease;
}

.endorsements-btn:hover {
  color: #979797;
}

.endorsements-right {
  grid-area: right;
  width: 100%;
  max-width: 340px;
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: 1fr;
}

.endorsement-slide {
  grid-column: 1;
  grid-row: 1;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 24px;
  transition: transform 0.5s ease-in-out;
  /* Ensure it doesn't collapse if empty */
  min-height: 100%;
  width: 100%;
}

.endorsement-info {
  display: flex;
  flex-direction: column;
  font-size: 12px;
  font-weight: 500;
  line-height: 14px;
  color: white;
  text-transform: uppercase;
}

.endorsement-text {
  font-size: 14px;
  font-weight: 400;
  line-height: 16px;
  color: #979797;
}

.endorsement-pagination {
  font-size: 12px;
  font-weight: 500;
  line-height: 14px;
  color: white;
}


.project-box-header-mobile-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-template-rows: auto;
  width: 100%;
  aspect-ratio: 1/1;
  grid-gap: 1.25rem;
  height: 98%;
}

.project-box-header-mobile-grid-image {
  padding: 0.3rem; /* Space between the image and the border */
  border: 0.25px solid #434343; /* Border around the image */
  border-radius: 10px; /* Rounded corners */
  box-sizing: border-box;
  width: 100%;
  height: 100%;
}

.project-box-header-mobile-grid img {
  width: 100%;
  height: 100%;
  border-radius: 8px; /* Rounded corners for the image itself */
  object-fit: cover; /* Ensures the image covers the entire area */
}

/* FOOTER HOMEPAGE */

.footer{
  margin: 0 auto;
  margin-bottom: 5rem;
}

.footer-row{
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  margin-bottom: 5rem;
}

.contact-section {
    text-align: left;
}

.contact-section .footer-main-text {
    font-size: 3rem;
    font-weight: 500;
    margin-bottom: 2.5rem;
}

.contact-email {
    display: inline-block;
    padding: 1rem 2.5rem;
    border: solid 1px #434343;
    border-radius: 6px;
    font-size: 1rem;
    color: white;
    text-decoration: none;
    transition: background-color 0.3s ease;
}

.contact-email:hover {
    background-color: #1E1E1E;
}

.info {
    position: relative;
    text-align: right;
}

.info-gray{
  margin-top: 1.5rem;
  color: #979797;

}

.links-desktop{
  display: block;
}

.links-mobile{
  display: none !important;

}

.footer-links {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 2rem;
    position: relative;
}

.footer-links::before {
    content: '';
    position: absolute;
    top: -1.2rem;
    left: 50%;
    transform: translateX(-50%);
    font-size: 0.75rem;
    color: #434343;
}

.line {
    position: relative;
    width: 100%;
    height: 1px;
    background-color: #434343;
}

.line::before,
.line::after {
    content: '';
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 4px;
    height: 4px;
    background-color: #434343;
    border-radius: 50%;
}

.line::before {
    left: -3px;
}

.line::after {
    right: -3px;
}

.logo_mariussart_footer {
  height: 2.25rem; /* 32px */
}

.social-links {
    display: flex;
    gap: 1.5rem;
}

.social-links a {
  color: white;
    text-decoration: none;
    font-size: 1rem;
    transition: color 0.3s ease;
}


.social-links a:hover {
  color: #C4C4C4;
}

.social-links a img.arrow-up {
  transition: filter 0.3s ease;
}

.social-links a:hover img.arrow-up {
  filter: invert(20%) sepia(0%) saturate(0%) hue-rotate(0deg) brightness(95%) contrast(82%);
}

.hamburger-social-links a {
    transition: color 0.3s ease;
}


.hamburger-social-links a:hover {
  color: #C4C4C4;
}

.hamburger-social-links a img.arrow-up {
  transition: filter 0.3s ease;
}

.hamburger-social-links a:hover img.arrow-up {
  filter: invert(20%) sepia(0%) saturate(0%) hue-rotate(0deg) brightness(95%) contrast(82%);
}


.arrow-up{
  height: 0.625rem;
}

.footer-credits {
    text-align: right;
    font-size: 0.625rem;
    color: #979797;
}

.footer-credits p {
    margin: 0.25rem 0;
}


/* End of homepage content */

/* My Projects */

.position-footer-projects {
  position: fixed;  
  bottom: 2.5rem;
  left: 7%;
  width: 86%;
}

.list-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
  width: 100vw;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  margin-top: 2.5rem;
  height: auto;
  max-height: calc(100vh - 14rem);
  overflow-y: auto;
  padding-bottom: 1rem;
}

#myprojects .list-container {
  max-height: calc(100vh - 14rem);
}

.projects-line{
  width: 100vw;
  border-top: solid 0.5px #2D2D2D;
}

.list-element {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  position: relative;
  overflow: hidden;
}

.list-element:hover {
  background-color: rgba(19, 19, 19, 0.4);
}

.text-box {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 86%;
  max-width: 1700px;
  padding: 1.25rem 0;
}

.text-element {
  display: flex;
  align-items: center;
}

.text-element:first-child {
  width: 58%;
}

.text-element:last-child {
  width: 42%;
}

.list-small-text{
  color: #979797;
  font-weight: 400;
  font-size: 1rem;
}

.list-header-text{
  font-weight: 500;
  font-size: 2.25rem;
  display: inline-block;
  vertical-align: bottom;
}

.image-container {
  position: fixed;
  width: 17rem;
  height: 12.75rem; /* Adjust the height to maintain aspect ratio */
  overflow: hidden;
  opacity: 0;
  transition: opacity 0.2s linear, transform 0.2s linear; /* Change the transition timing function */
  transform: scale(0);
  pointer-events: none; /* Make images invisible to mouse events */
}

.list-element:hover .image-container {
  opacity: 1;
  transform: scale(1);
}


.image-container img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
  border-radius: 3px;
}

.list-element:hover .image-container {
  opacity: 1;
  transform: scale(1);
}

.myproject-footer-hide{
  display: block !important;
}

/* End of My Projects content */

/* Project View */

.carousel-container {
  display: flex;
  justify-content: center; /* Align items horizontally in the center */
  overflow: hidden;
  position: relative; /* Relative position */
  width: 100vw; /* Full width of the viewport */
  left: 50%;
  transform: translateX(-50%); /* Center the container horizontally */
  margin-top: 2.5rem;
  margin-bottom: 2.5rem;
  gap: 1.5rem;
}

.carousel-image {
  width: 25rem;
  height: 18.75rem;
  animation: moveLeft 30s linear infinite; /* Adjust the duration and timing function as needed */
}

.myproject-text-container{
    margin-bottom: 2.5rem;
    display: flex;
    justify-content: space-between;
    font-weight: 500;
  }

  .myproject-text-container > :nth-child(2) {
    width: 18%;
    text-align: right;
  }

.myproject-box-labels{
  margin-bottom: 2.5rem;
  display: flex;
  justify-content: space-between;
  font-weight: 500;
}

.myproject-description{
  width: 72%;
  font-size: 2.25rem;
  font-weight: 600;
  color: #979797;
}
.myproject-list-container {
  width: 54%;
  margin: var(--section-gap) auto;
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.myproject-list-item {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 0.75rem;
  flex-wrap: wrap;
}

.myproject-left-text {
  text-align: left;
  color: #979797;
  font-size: 0.875rem;
  font-weight: 400;
  word-break: normal;        /* Never break mid-word */
  overflow-wrap: normal;     /* Never break mid-word */
  white-space: normal;       /* Allow word wrapping */
  display: -webkit-box;
  -webkit-line-clamp: 3;     /* Max 3 lines */
  -webkit-box-orient: vertical;

}

.myproject-right-text {
  text-align: right;
  font-size: 0.875rem;
  font-weight: 400;
  word-break: normal;        /* Never break mid-word */
  overflow-wrap: normal;     /* Never break mid-word */
  white-space: normal;       /* Allow word wrapping */
  display: -webkit-box;
  -webkit-line-clamp: 3;     /* Max 3 lines */
  -webkit-box-orient: vertical;
}

.myproject-line {
  flex-grow: 1;
  height: 1px;
  background-color: #2D2D2D;
  min-width: 4rem; /* Prevents line from disappearing */
}

/* Group right-side text items together */
.myproject-right-group {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.25rem;
  text-align: right;
}

.myproject-images-wrapper{
  display: flex;
  flex-direction: column;
  gap: 12.5rem;
}

.myproject-images-container{
  margin: 0 auto;
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.myproject-images-container-01 {
  display: flex;
  justify-content: center; /* Center horizontally */
  align-items: center;    /* Center vertically */
  height: 100vh;          /* Example height, adjust as needed */
  max-height: 1600px;
  padding: 2.5rem;        /* Add padding to the container */
  box-sizing: border-box; /* Include padding in the container's dimensions */
  background-color: #181818;
}

.myproject-image-full {
  max-width: 100%;        /* Ensure the image fits within the container */
  max-height: 100%;       /* Ensure the image fits within the container */
  border-radius: 4px;     /* Add border-radius to the image */
}

.myproject-images-container-02 {
  display: flex;
  justify-content: center; /* Center horizontally */
  align-items: center;    /* Center vertically */
  height: 100%;          /* Example height, adjust as needed */
  padding: 5rem 10rem;        /* Add padding to the container */
  box-sizing: border-box; /* Include padding in the container's dimensions */
  background-color: #181818;
}

.myproject-video-full {
    max-width: 100%;        /* Ensure the video fits within the container */
    max-height: 100%;       /* Ensure the video fits within the container */
    border-radius: 4px;     /* Add border-radius to the video */
  }

  .myproject-images-container-03-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-gap: 2.5rem;
  max-width: 100%;
  height: 100%;    
  box-sizing: border-box;
}

.myproject-images-container-04, .myproject-images-container-03 {
  display: flex;
  justify-content: center; 
  align-items: center;   
  height: 100%;          
  padding: 2.5rem;       
  box-sizing: border-box; 
  background-color: #181818;
}

.myproject-images-container-04-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-gap: 2.5rem;
  max-width: 100%;
  height: 100%;    
  box-sizing: border-box;
}

.myproject-images-container-05-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-gap: 2.5rem;
  max-width: 100%;   
  justify-content: center; 
  align-items: center;   
  height: 100%;          
  padding: 2.5rem;       
  background-color: #181818;
}


.myproject-images-container-04-grid-image {
  width: 100%;
  height: auto;
  border-radius: 4px;
}

.myproject-images-container-05-grid-image {
  width: 100%;
  height: auto;
  border-radius: 4px;
}

.myproject-images-container-04-grid-textBox {
  width: 100%;
  font-size: 2.25rem;
  font-weight: 400;
  color: #979797;
} 

.empty-cell{
  display: block;
}
 

.myproject-doubleimages{
  display: flex;
  flex-direction: row;
}

.myproject-image-half{
  width: 50%;
}

.margin-bottom{
  margin-bottom: 15rem;
}

.myproject-images-container-05 {
  justify-content: center; 
  align-items: center;   
  height: 100%;  
  width: 100%;
}

.myproject-image-full-noBorder {
  width: 100%;
  height: 100%;
  object-fit: cover;  
}

.myproject-images-container-split{
  display: flex;
  flex-direction: row;
  width: 100%;
  height: 100vh;
  max-height: 1080px;
}

.myproject-images-container-split div{
  width: 50%;
  height: 100%;
    object-fit: cover;
}

.myproject-images-container-split video{
  border-radius: 16px !important;
  max-height: 760px !important;
}

.myproject-images-container-split img{
  height: 100%;
  object-fit: cover;
  object-position: center;
}

/* End of Project View content */

/* SHOOTINGS */

.shootings-title{
  margin: 12.5rem 0 5rem 0; /* 200px top, 80px bottom */
}

.body-small{
  font-size: 0.875rem;
  font-weight: 500;
  text-transform: uppercase;
  width: 27rem;
}

.grid {
  display: grid;
  gap: 5rem;
  grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
  margin-bottom: 15rem;
}

.grid img {
  width: 100%;
  height: auto;
  object-fit: cover;
  transition: transform 0.3s ease-in-out, filter 0.3s ease-in-out;
  aspect-ratio: 4 / 5;
}

.grid img:hover {
  transform: scale(1.5);
  filter: grayscale(100%);
  z-index: 10;
}


.gallery {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #0F0F0F url('/images/grain.webp') repeat;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  z-index: 99999999;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding: 2rem 1rem;
}

.gallery.active {
  display: flex;
}

.gallery img {
  max-height: 76vh;
  max-width: 94vw;
  object-fit: contain;
}

#prevButton, #nextButton, #closeButton {
  position: absolute;
  background-color: transparent;
  border: none;
  cursor: pointer;
  font-size: 0.875rem;
  font-weight: 500;
  color: white;
  text-transform: uppercase;
}

#prevButton {
  position: absolute;
  left: 7%; 
  top: 12%; 
  z-index: 4;
}

#nextButton {
  position: absolute;
  right: 7%;
  top: 12%;
  z-index: 4;
}

#closeButton {
  position: absolute;
  bottom: 12%; 
  left: 7%;
  text-align: left;
  z-index: 4;
}

#imageIndex {
  position: absolute;
  bottom: 12%;
  right: 7%;
  color: white;
  font-size: 0.875rem;
}

/* Overlay styles */
.overlay {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 50%;
  height: 100%;
  cursor: none;
  z-index: 2; /* Ensure overlays are above the image */
}

#leftOverlay {
  left: 0;
}

#rightOverlay {
  right: 0;
}



/* End of shootings content */



@media (max-width: 600px) {

  .cursor, .cursor2 {
  display: none !important;
}

  .wrapper {
  width: 92%;
  }

  .header-text {
  font-size: 2.25rem;
  font-weight: 500; /* SemiBold */
  margin: 6rem 0 5rem 0; /* 96px top, 80px bottom */
  }

  .quotation-container {
  padding-right: 0rem;
  }

  .styled-quotation-container {
    display: flex;
    flex-wrap: wrap;
    justify-content: right;
  }

  .quotation {
    font-size: 1rem;
    width: 92%;
    text-align: right;
  }

  .softs-container-wrapper {
  margin-top: 6rem;
  }

  .frontpage-image-grid{
    height: 80vh;
    grid-template-columns: 1fr;
  }

  .frontpage-image-overlay {
    width: 86%;
    left: 7%;
    top: 50%;
  }

  .frontpage-image-overlay-copy.new-motto {
    font-size: 1.5rem !important;
  }

  .frontpage-image-card {
    height: 80vh;
    min-height: 80vh;
  }

  .frontpage-image-card:first-child {
    background-color: transparent;
  }

  .frontpage-image-card:first-child > img {
    -webkit-mask-image: linear-gradient(to bottom, black 50%, transparent 95%);
    mask-image: linear-gradient(to bottom, black 50%, transparent 95%);
  }

  .softs-container-wrapper {
    margin-top: 80vh;
  }

  .soft-icon {
    width: 2rem;
    height: 2rem;
    border-radius: 6px;
  }

  .title-text {
  width: 70%;
  margin: 6rem 0 2rem 0; /* 96px top */
  }

  .project-box {
    width: 100%;
    margin-top: 0.5rem !important; /* Ensuring proper spacing for smaller screens */
  }

  .projects-container > .project-box:first-child {
    margin-top: 0; /* No margin for the first item */
  }

  .experience-grid-container{
  margin-bottom: 0;
  }

  .footer{
  margin-bottom: 2.5rem;
  }

  .footer-row{
  flex-direction: column;
  margin-bottom: 2.5rem;
  gap: 2.5rem;
  }

  .contact-section .footer-main-text {
    font-size: 1.5rem;
    margin-bottom: 1.5rem;
  }

  .contact-email {
    padding: 1rem 2.5rem;
    border-radius: 5px;
    font-size: 0.865rem;
  }

  .links-desktop{
    display: none;
  }

  .links-mobile{
    display: flex !important;
    flex-direction: row;
    justify-content: space-between;
    margin-top: 2.5rem;
  }

  .footer-links {
    margin-top: 2.5rem;
  }

  .hamburger-footer-links{
    margin-top: 2.5rem;
    width: 100%;
    flex-direction: column;
  }

  .hamburger-social-links{
    gap: none;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    width: 100%;
  }

  .myproject-footer-hide{
    display: none !important;
  }

  .text-box {
    align-items: flex-start;
    flex-direction: column;
    width: 92%;
    padding: 1.25rem 0;
  }

  .list-header-text{
    font-size: 1.25rem;
  }

  .list-small-text{
    font-size: 0.865rem;
  }

  .text-element:first-child {
    width: 100%;
  }

  .text-element:last-child {
    width: 100%;
  }

  .shootings-title{
    margin: 8rem 0 2.5rem 0; /* 200px top, 80px bottom */
  }

  .grid {
    gap: 1rem !important;
    margin-bottom: 6rem;
  }

  .body-small{
    width: 90vw;
  }

  .experience-grid {
    width: 92%;
    grid-template-columns: 1fr;
    grid-template-rows: auto;
  }

  .experience-cell {
    width: 100% !important;
    border-top: none;
    border-right: solid 0.5px #2D2D2D;
  }

  .experience-cell + .experience-cell {
    border-top: solid 0.5px #2D2D2D;
  }

  .experience-cell.combined {
    grid-column: span 1;
    font-size: 2.25rem;
  }

  .experience-grid .experience-cell.empty {
    display: none;
  }

  .experience-grid .experience-cell.combined {
    display: flex;
    flex-direction: column;
  }

  .carousel-image {
    width: 18.75rem;
    height: 14rem;
  }

  .myproject-text-container {
    display: flex;
    flex-direction: column;
    gap: 2.5rem;
    margin-bottom: 0rem;
  }

  .myproject-text-container > :nth-child(2) {
    margin-left: auto; /* Align the second child element to the right */
    width: 50%;
    text-align: right;
  }

  .project-box-label {
    font-size: 0.75rem;
  }

  .myproject-description{
    font-size: 1.5rem;
    width: 100%;
  }

  .myproject-list-container {
    width: 100%;
    margin: 6rem auto;
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
  }

  .myproject-images-wrapper{
    gap: 5rem;
  }

  .myproject-images-wrapper .myproject-box-labels{
    margin-bottom: 0;
  }

  .carousel-container{
    margin-bottom: 1.5rem;
    margin-top: 4.4rem;
  }

  .margin-bottom{
    margin-bottom: 6rem;
  }

  .gallery img {
    height: auto;
    width: 92%;
    object-fit: contain;
    aspect-ratio: auto;
  }

  #prevButton {
  left: 4%; 
  top: 5%; 
}

#nextButton {
  right: 4%;
  top: 5%;
}

#closeButton {
  bottom: 5%; 
  left: 4%;
  text-align: left;
}

#imageIndex {
  bottom: 5%;
  right: 4%;
}

.projects-container{
  margin-bottom: 6rem;
}



.myproject-images-container-04{
  padding: 1rem;
}

.myproject-images-container-01{
  padding: 1rem;
  height: 100%;
}



.myproject-images-container-02{
  padding: 2rem 4rem;
}

.myproject-images-container-04-grid {
  grid-gap: 1rem !important; /* Adjust gap between elements */
}

.myproject-images-container-04-grid-textBox {
  font-size: 1rem !important;
} 

.empty-cell{
  display: none;
}

.myproject-images-container-split div{
  width: 100%;
  height: 100%;
}

.myproject-images-container-split{
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
}

.project-box-header-video{
  top: 44%;
}

.project-box-header-mobile{
  top: 43%;
}

.project-box-header-mobile{
  gap: 0.5rem;
}

.project-box-header-mobile-grid {
  grid-gap: 0.5rem;
}

.myproject-image-full-noBorder { 
  aspect-ratio: auto;
  height: auto;
}


}

@media (max-width: 1024px) {

  .nav-menu {
    display: none;
  }

  .hamburger {
    display: block;
  }

  .nav-logo {
    display: none !important;
  }

  .logo_mariussart {
    width: 2.625rem; /* 42px */
    height: 1.5rem; /* 24px */
    display: block;
  }

  .softs-container {
    grid-template-columns: repeat(4, 1fr);
    grid-template-rows: repeat(2, 1fr);
  }

  .softs-container::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 100%;
    border-bottom: solid 0.5px #2D2D2D;
    transform: translateX(-50%);
  }
    .grid {
      gap: 2rem;
    }

  .remove-span{
    display: none;
  }

  .experience-grid {
    grid-template-columns: 1fr;
    grid-template-rows: auto;
  }

  .endorsements-grid {
    display: flex;
    flex-direction: column;
    gap: 40px;
    padding: 4rem 0;
  }

  .endorsements-title {
    order: 1;
    margin: 0 auto;
    width: 100%;
    max-width: 340px;
  }

  .endorsements-right {
    order: 2;
    margin: 0 auto;
  }

  .endorsements-controls {
    order: 3;
    margin: 0 auto;
    width: 100%;
    max-width: 340px;
  }

  .experience-cell {
    width: 43vw;
  }

  .experience-cell.combined {
    width: 86vw;
  }

  .experience-cell:nth-child(1) {
    border-bottom: solid 0.5px #2D2D2D;
    border-right: solid 0.5px #2D2D2D;
    
  }

  .experience-cell:nth-child(5) {
    border-right: solid 0.5px #2D2D2D;
  }



  .myproject-images-container-04-grid {
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: auto;
    grid-gap: 2rem; /* Adjust gap between elements */
  }

  .myproject-images-container-03-grid {
    grid-template-columns: repeat(1, 1fr);
    grid-template-rows: auto;
    grid-gap: 2rem; /* Adjust gap between elements */
  }

  myproject-images-container-03-grid

  .myproject-images-container-04-grid-textBox {
    font-size: 2rem;
  } 

  .empty-cell{
    display: none;
  }

}

@media (min-width: 1024px) and (max-width: 1919px) {
  html { font-size: 16px; }
  
}

@media (min-width: 1920px) {
  html { font-size: 18px; }
  #prevButton {
  left: 12%; 
  top: 12%; 
}

#nextButton {
  right: 12%;
  top: 12%;
}

#closeButton {
  bottom: 12%; 
  left: 12%;
}

#imageIndex {
  bottom: 12%;
  right: 12%;
}

.myproject-images-container-01{
  height: 100%;
}
}