@charset "UTF-8";
/* CSS Document */

html,
body {
  height: 100%;
  margin: 0;
  font-family: "Raleway", sans-serif; /* Apply Raleway to the whole body */
  scroll-snap-type: y mandatory;
  scroll-behavior: smooth; /* optional for nice effect */
  overflow-y: scroll;
  overflow-x: hidden;
}

.parallax-container {
  position: relative;
  display: flex;
  min-height: 100vh;
  flex-direction: column;
  align-items: center;
/*  justify-content: center; */
  background-attachment: fixed;
  background-position: center;
  background-size: cover;
  color: var(--color);
  text-align: center;
  padding: 0;
  row-gap: 0;
}

/* -----------------------------
            Fades
----------------------------- */

/* section parts fade into view */
.fade-in {
  opacity: 0;
  transform: translateY(20px);
  transition: all 0.6s ease-out;
}

.fade-in-visible {
  opacity: 1;
  transform: translateY(0);
}


/* headers fade into view, right to left */
.fade-in-left,
.fade-in-left2 {
  opacity: 0;
  transform: translateX(40px);
  transition: opacity 1s ease-out, transform 1s ease-out;
}

.fade-in-left {
  transition-delay: 0.2s;
}

.fade-in-left2 {
  transition-delay: 0.5s;
}

.fade-in-visible {
  opacity: 1;
  transform: translateX(0);
}



/* intro - animated type */
.important-text {
  font-size: 15vw;
  font-weight: 700;
  color: rgba(255, 255, 255, 1);
  padding-bottom: -100px;
  opacity: 0;
  transform: translateX(40px);
  animation: slideFadeIn 1.2s ease-out forwards;
  animation-delay: 0.2s;
  text-align: center;
}

.subtext {
  font-size: 3vw;
  font-weight: 400;
  color: rgba(255, 255, 255, 1);
  text-align: center;
  white-space: nowrap;
}

.subtext-part {
  display: inline-block;
}

.subtext-part1,
.subtext-part2 {
  display: inline-block;
  opacity: 0;
  transform: translateX(40px);
  animation: slideFadeIn 1.2s ease-out forwards;
  white-space: nowrap;
}

.subtext-part1 {
  animation-delay: 1.2s;
}

.subtext-part2 {
  animation-delay: 2.0s;
}

@keyframes slideFadeIn {
  to {
    opacity: 1;
    transform: translateX(0);
  }
}


/* small plus signs / white */
.corner-plus {
  position: absolute;
  font-size: 40px;
  font-weight: 100;
  color: white;
  opacity: 0.6;
  user-select: none;
  pointer-events: none;
  z-index: 10;
  line-height: 1;        /* important */
  margin: 0;             /* prevent browser default spacing */
  padding: 0;            /* just in case */
	padding-left: 10px;
	padding-right: 10px;	
  box-sizing: content-box;
}

.top-left    { top: 10px; left: 10px; }
.top-right   { top: 10px; right: 10px; }
.bottom-left { bottom: 10px; left: 10px; }
.bottom-right{ bottom: 10px; right: 10px; }


/* -----------------------------
   buffer - title sections
----------------------------- */

.buffer {
  width: 100%;
  min-height: 60vh;
  background-color: rgba(255, 255, 255, 1.0);
  display: flex;             
  justify-content: center;  
  align-items: center;      
  height: 100vh;             
  scroll-snap-align: start; 
}


/* -----------------------------
   Typography
----------------------------- */
/* buffer section text */
.buffer-wrapper {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding-top: 100px;
  padding-bottom: 100px;
}

.buffer-header {
  font-size: 13vw;
  font-weight: 700;
  color: rgba(63, 63, 63, 1);
  margin: 0;
}

.buffer-subtext {
  font-size: 3vw;
  font-weight: 400;
  color: rgba(63, 63, 63, 1);
  margin-top: -10px;
}

.white-box-header {
  font-size: 4.5em;
  font-weight: 700;
  text-transform: capitalize;
  margin-top: -.2em;
  margin-bottom: 12px;
}

.skills {
  font-size: 18px;
  font-weight: 700;
  text-transform: uppercase;

}

.skills-used {
  font-size: 12px;
  font-weight: 400;
  text-transform: capitalize;
  margin-top: 0;
  margin-bottom: 40px;

}

.white-box-para {
  font-size: clamp(1rem, 1.4vw, 1.125rem);
  font-weight: 400;
  line-height: 1.4;
  margin-top: 0px;
  margin-right: auto;
  margin-bottom: 40px;
  margin-left: auto;
  text-transform: none;
  padding: 0 4%;
}

.white-box-para2 {
  max-width: 40vw;
  font-size: 1.2rem;
  font-weight: 400;
  text-transform: none;
  padding: 30px;
}

.collaboriamo-line {
  padding: 15px;
  font-weight: 700;
  font-size: 1.9rem;
  text-align: center;
}

.image-headers {
  font-size: 20px;
  font-weight: 700;
  text-transform: capitalize;
  text-align: center;
  margin-top: .3em;
}

.white-box-header, .skills, .skills-used, .white-box-para, .white-box-para2, .collaboriamo-line, .image-headers {
color: rgba(63, 63, 63, 1.0);
}


/* sono io section */
.card-foot {
  display: flex;
  max-width: 100%;
  flex-direction: column;
  align-items: center;
  margin:30px;
  padding: 5px;
  border-radius: 10px;
  background: rgba(63, 63, 63, 0.85);
  box-shadow: 0 29px 38px -15px rgb(0 0 0 / 43%);
  overflow: hidden;
  padding-bottom: 2.5em;

}

.card-foot-box {
	  position: relative;
	top: -100px;
  max-width: 500px;
  margin: 10px;
  padding: 40px;
  border-radius: 0.5em;
  background-color: rgba(255, 255, 255, 1);
  transition: transform 0.3s ease-in-out;
  cursor: pointer;
	
}

.card-foot-box:hover {
  transform: scale(1.03);
}

.button, a {
  display: inline-block;
  padding: 1em 3.5em;
  border-radius: 0.3em;
  background-color: rgb(63 63 63);
  color: white;
  font-size: 0.875rem;
  font-weight: 700;
  letter-spacing: 0.5px;
  text-decoration: none;
  text-transform: uppercase;
  margin-top: 1.5em;
  margin-bottom: .1em;
}

/* -----------------------------
   Layout / Containers
----------------------------- */

.white-box-wrapper {
  padding: 30px 50px; /* 60px top/bottom, 50px sides */
  margin: 10px auto;
  max-width: 65vw;
  background-color: rgba(255, 255, 255, 0.8);
  border-radius: 8px;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
  position: relative;
  z-index: 10;
  box-sizing: border-box;
  scroll-snap-align: start;
}

/* in particolare la sezione pubblicitaria */
.white-box-wrapper-multi { 
  padding: 60px 50px; /* 60px top/bottom, 50px sides */
  margin: 10px auto;
  max-width: 65vw;
  background-color: rgba(255, 255, 255, 0.8);
  border-radius: 8px;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
  position: relative;
  z-index: 10;
  box-sizing: border-box;
  scroll-snap-align: start;
}

.white-box {
  max-width: 100%;
  margin: 30px 0;
  position: relative;
  z-index: 10;
  text-align: left;
}



/* -----------------------------
   Special addition for heros section
----------------------------- */

/* Full‑row hero inside any grid (2‑up, 3‑up, etc.) */
.span-all { grid-column: 1 / -1; }

/* If you ever place the hero in the flex-based layout */
.image-block-main-lrg.span-all,
.image-block-main.span-all { flex-basis: 100%; }

/* Optional: make hero a widescreen banner while keeping others square */
.hero-img { aspect-ratio: 16/9; object-fit: cover; border-radius: 4px; }




/* -----------------------------
   Images
----------------------------- */

.image-grid-main {
  display: grid;
  grid-template-columns: repeat(2, 1fr); /* 2 items per row */
  grid-auto-rows: auto;
  gap: 28px;
}


.image-block-main {
  flex: 1 1 calc(30% - 14px); /* accounts for the gap */
  min-width: 50px;
  box-sizing: border-box;
  background-color: rgba(255, 255, 255, 0.5);
  padding: 10px;
  border-radius: 8px;
}

.white-box-img{
  width: 100%;
  max-width: 100%;
  height: auto;
  border-radius: 4px;
  transition: transform 0.3s ease-in-out;
}

.white-box-img:hover {
  transform: scale(1.02);
}

/* lrg boxes */

.image-grid-main-lrg {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 28px;
  width: 100%;
}

.image-block-main-lrg {
  flex: 1 1 calc(50% - 14px); /* accounts for the gap */
  min-width: 150px;
  box-sizing: border-box;
  background-color: rgba(255, 255, 255, 0.8);
  padding: 10px;
  border-radius: 8px;
}

.white-box-img-lrg {
  width: 100%;
  max-width: 100%;
  height: auto;
  border-radius: 4px;
  transition: transform 0.3s ease-in-out;
}


.white-box-img-lrg:hover {
  transform: scale(1.02);
}





/* -----------------------------
   Z-Index Helpers
----------------------------- */

.modal-overlay    { z-index: 10000; position: fixed; }
.sticky-header    { z-index: 1000; position: sticky; top: 0; }
.tooltip-hover    { z-index: 100; }
.parallax-bg      { z-index: 0; position: absolute; }


/* -----------------------------
   Utilities (optional)
----------------------------- */

.text-uppercase   { text-transform: uppercase; }
.text-capitalize  { text-transform: capitalize; }
.text-center      { text-align: center; }

.space-top-xl     { margin-top: 150px; }
.space-bottom-md  { margin-bottom: 30px; }


/* -----------------------------
   parallax containers
----------------------------- */

.parallax-container {
  position: relative;
  display: flex;
  min-height: 100vh;
  background-image: url("images/bg_image_jay.jpg");
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background-attachment: fixed;
  background-position: center;
  background-size: cover;
  color: var(--color);
  row-gap: 4rem;
  text-align: center;
  padding: 0; 
  scroll-snap-align: start;
}

.parallax-container2, .parallax-container3, .parallax-container4, .parallax-container5, .parallax-container6 {
  scroll-snap-align: start;
  gap: 1.6em;
  background-attachment: fixed;
  padding: 0; 
}
.parallax-container2 {
  background-image: url("images/identities/identities-bg.jpg");
}

.parallax-container3 {
  display: flex;
  background-image: url("images/online_ads/bg_ads.jpg");
  padding-top: 70px;
  padding-bottom: 100px;
}

.parallax-container4 {
  background-image: url("images/case_studies/bg_case_studies.jpg");
}

.parallax-container5 {
  background-image: url("images/handmade/handmade_bg.jpg");
  padding-top: 70px;
  padding-bottom: 100px;
}

.parallax-container6 {
  background-image: url("images/footer/footer-bg.jpeg");
}

/* -----------------------------
   slider code
----------------------------- */

.sliderMain {
    display: flex;
    overflow: hidden;
    width: 100%;
	margin: 0;
}
.slider {
    -webkit-animation: continousSlider 160s linear infinite;
    animation: continousSlider 160s linear infinite;
    display: -webkit-flex;
    display: flex;
    -webkit-justify-content: space-between;
    justify-content: space-between;
    -webkit-align-items: center;
    align-items: center;
    -webkit-flex: 0 0 auto;
    flex: 0 0 auto;
    margin-top: 0; /* Remove top margin */
    margin-bottom: 0; /* Remove bottom margin */
}

/* Pause the animation on hover */
/*.slider:hover {
    -webkit-animation-play-state: paused;
    animation-play-state: paused;
}*/

.slider div {
    padding: 250px  5px;
	}


@-webkit-keyframes continousSlider {
    to {
        -webkit-transform: translateX(-100%);
        transform: translateX(-100%)
    }
}

@keyframes continousSlider {
    to {
        -webkit-transform: translateX(-100%);
        transform: translateX(-100%)
    }
}

.slider div img {
    max-width: 300px;
    max-height: 250px;
    display: inline-block;
    object-fit: contain;
	padding: 10px;
	background-color: rgba(0,0,0,0.50);
	border-radius: 10px;
	position: relative;
	z-index: 10;
}

/* end slider code */

   .scroll-horizontal {
  position: relative;
  width: 100%;
  overflow: hidden;
}

.scroll-track {
  display: flex;
  gap: 30px;
  animation: scroll-left 30s linear infinite;
}

.scroll-track:hover {
  animation-play-state: paused;
}

@keyframes scroll-left {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%);
  }
}

    .tile-container {
      display: inline-flex;
      flex-direction: column;
      align-items: center;
    }

    .tile-wrapper {
      width: 230px;
      background: #fff;
      border-radius: 10px;
      overflow: hidden;
      box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
      transition: box-shadow 0.3s;
      padding: 0px;
      border: 3px solid rgba(255,255,255,0.5);
    }

    .tile-wrapper:hover {
      box-shadow: 0 6px 18px rgba(0, 0, 0, 0.2);
    }

    .tile {
      width: 100%;
      display: block;
      transition: transform 0.3s;
      border-radius: 5px;
    }

    .tile-wrapper:hover .tile {
      transform: scale(1.04);
    }

    .tile-label {
      text-align: center;
      font-weight: 700;
      font-size: 2rem;
      margin-top: 12px;
	  margin-bottom: 0px;
      text-transform: lowercase;
    }

    .modal {
      display: none;
      position: fixed;
      top: 0;
      left: 0;
      width: 100vw;
      height: 100vh;
      background: rgba(0, 0, 0, 0.8);
      justify-content: center;
      align-items: center;
      z-index: 1000;
    }

    .modal img {
      max-width: 90%;
      max-height: 90%;
      border-radius: 16px;
      box-shadow: 0 0 30px rgba(255, 255, 255, 0.15);
    }

    .modal.active {
      display: flex;
    }

    .close-btn {
      position: absolute;
      top: 30px;
      right: 40px;
      font-size: 2.5rem;
      color: white;
      cursor: pointer;
    }

.section-modal {
  display: none;
  position: absolute;
  inset: 0; /* shorthand for top: 0; right: 0; bottom: 0; left: 0; */
  justify-content: center;
  align-items: center;
  background: rgba(0, 0, 0, 0.8);
  z-index: 1000;
  padding: 30px;
  border-radius: 8px;
  overflow: auto;
  align-items: flex-start; /* so content starts at top */
  padding: 30px;
}

    .section-modal img {
      max-width: 90%;
      max-height: 90%;
      border-radius: 16px;
      box-shadow: 0 0 30px rgba(255, 255, 255, 0.15);
    }


.section-modal video {
  height: 570px;
  width: 327px;
  object-fit: cover;
  border-radius: 8px;
}


    .section-modal.active {
      display: flex;
    }

    .section-modal .close-btn {
      position: absolute;
      top: 20px;
      right: 30px;
      font-size: 2rem;
      color: white;
      cursor: pointer;
    }

    .scroll-horizontal {
      overflow: hidden;
      white-space: nowrap;
    }

    .scroll-track {
      display: inline-flex;
      animation: scroll-left 30s linear infinite;
    }

    .scroll-track:hover {
      animation-play-state: paused;
    }

    @keyframes scroll-left {
      0% { transform: translateX(0); }
      100% { transform: translateX(-50%); }
    }




/* -----------------------------
       Casi di Studio
----------------------------- */

.case-study-layout {
  padding: 30px 50px; /* 60px top/bottom, 50px sides */
  margin: 10px auto;
  max-width: 65vw;
  background-color: rgba(255, 255, 255, 0.8);
  border-radius: 8px;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
  position: relative;
  box-sizing: border-box;
  font-family: "Raleway", sans-serif; /* Apply Raleway to the whole body */
}

.case-study-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr); /* 2 items per row */
  grid-auto-rows: auto;
  gap: 28px;
}

.case-study-card {
  flex: 1 1 calc(30% - 14px); /* accounts for the gap */
  min-width: 50px;
  box-sizing: border-box;
  background-color: rgba(255, 255, 255, 0.5);
  padding: 10px;
  border-radius: 8px;
}

.case-study-card:hover {
  transform: scale(1.02);
}

.case-text-block {
  background-color: rgba(255, 255, 255, 0.85);
  padding: clamp(20px, 4vw, 40px);
  border-radius: 8px;
  box-shadow: 0 5px 20px rgba(0,0,0,0.05);
  margin-bottom: 40px;
}

/* KEEP */
.img-frame img {
  width: 100%;
  max-width: 100%;
  height: auto;
  border-radius: 4px;
  transition: transform 0.3s ease-in-out;
}


.summary-intro {
  display: block;
  font-weight: bold;
  margin-bottom: 1em; /* Adjust spacing as needed */
}

.case-button-wrapper {
  text-align: left;
  padding: 0 60px;
  margin: -10px 0 40px 0;
}

.case-study-button {
  display: inline-block;
  padding: 12px 24px;
  background-color: #3f3f3f;
  color: #fff;
  text-transform: uppercase;
  font-weight: 500;
  border-radius: 6px;
  letter-spacing: 0.5px;
  font-size: 0.875rem;
  transition: background-color 0.3s ease;
  margin-right: 10px;
  margin-top: -5px;
  margin-bottom: -5px;
  z-index: 10010;

}

.case-study-button:hover {
  background-color: #1f1f1f;
}

.close-btn,
.case-close-btn {
  position: absolute;
  top: 20px;
  right: 30px;
  font-size: 2rem;
  color: white;
  cursor: pointer;
  z-index: 1001; /* higher than .section-modal */
}


/* -----------------------------
   Identità
----------------------------- */

.image-container {
  width: 100%;
  min-height: 100vh; /* Ensure it takes at least the full viewport height */
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 20px; /* Add some padding around the grid */
}

.image-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr); /* <-- Force 7 columns */
  gap: 40px;
  width: 90%;
  max-width: 1200px;
}

.image-grid img {
  display: block;
  width: 90%;
  height: auto;
  object-fit: cover;
  border-radius: 5px;
}

.thumbnail-container {
  position: relative; /* Needed for absolute positioning of the cue */
  cursor: pointer;
  /* Other existing styles */
	/*background-color: rgba(63,63,63,.75);*/
	filter: drop-shadow(5px 5px 5px rgba(63,63,63,1.0));
	border-radius: 5px;
}

.thumbnail-container {
  transition: transform 0.3s ease-in-out;
  cursor: pointer;
  display: flex;
  justify-content: center;
  align-items: center;
}

.thumbnail-container img {
  width: 100%;
  height: auto;
  transition: transform 0.3s ease-in-out;
  border-radius: 5px;
}

.thumbnail-container:hover img {
  transform: scale(1.04);
}


button {
	background-color: rgba(63, 63, 63, 1.00);
	border: 0px;
}

.thumbnail-container {
	cursor: pointer; /* Indicate it's interactive */
}

.fullscreen-image-overlay {
    position: fixed; /* Cover the entire viewport */
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
      background: rgba(0, 0, 0, 0.8);
 /* Semi-transparent background */
    display: flex; /* Center the image */
    justify-content: center;
    align-items: center;
    z-index: 1000; /* Ensure it's on top of everything */
    opacity: 0; /* Initially hidden */
    visibility: hidden; /* Initially hidden */
    transition: opacity 0.3s ease-in-out, visibility 0s 0.3s; /* Smooth transition */
}

      .fullscreen-image-overlay.active {
        opacity: 1;
        visibility: visible;
        transition: opacity 0.3s ease-in-out;
      }


.close-btn,
.case-close-btn {
  position: absolute;
  top: 20px;
  right: 30px;
  font-size: 2rem;
  color: white;
  cursor: pointer;
  z-index: 1001; /* higher than .section-modal */
}

		
#fullscreen-image {
  max-width: 90%; /* Prevent image from being wider than the viewport (initially) */
  max-height: 90%; /* Prevent image from being taller than the viewport (initially) */
  object-fit: contain; /* Show the entire image within the bounds */
  max-width: 400px; /* Override with your desired maximum width */
  max-height: 400px; /* Override with your desired maximum height */
}

