/* ========================================
   RIVIERA - Spazio Riviera Website
   ======================================== */

/* --- Reset --- */
*, *::before, *::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

/* --- Custom Properties --- */
:root {
  --color-text: #100c08;
  --color-bg: #ededed;
  --color-dark: #100c08;
  --color-white: #ffffff;
  --color-gray: #8a8a8a;
  --color-PNB: #707070;

  --font-family: 'IBM Plex Sans', sans-serif;
  --font-light: 300;
  --font-regular: 400;
  --font-semibold: 600;
  --font-bold: 700;

  --spacing-page: 50px;
  --spacing-page-mobile: 15px;
}

/* --- Base --- */
html {
  font-size: 100%;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body {
  font-family: var(--font-family);
  font-weight: var(--font-regular);
  color: var(--color-text);
  background-color: var(--color-bg);
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  line-height: 1.1;
}

a {
  color: inherit;
  text-decoration: none;
}

ul, ol {
  list-style: none;
}

img {
  display: block;
  max-width: 100%;
  height: auto;
}

/* ========================================
   PAGE LOADER
   ======================================== */
.page-loader {
  position: fixed;
  inset: 0;
  z-index: 9999;
  background-color: var(--color-dark);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity 1s ease;
}

.page-loader__text {
  font-size: 7vw;
  font-weight: var(--font-semibold);
  color: var(--color-white);
  letter-spacing: 0.02em;
}

.page-loader--hidden {
  opacity: 0;
  pointer-events: none;
}

/* ========================================
   HEADER
   ======================================== */
.header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 100;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding: 54px var(--spacing-page) 0;
}

.header__logo {
  display: block;
  width: 265px;
  height: 80px;
  flex-shrink: 0;
}

.header__logo img {
  width: 100%;
  height: 100%;
}

.header__nav {
  display: flex;
  gap: 48px;
  padding-top: 30px;
}

.header__nav-link {
  font-size: 18px;
  font-weight: var(--font-semibold);
  line-height: 20px;
  text-decoration: none;
}

.header__nav-link:hover {
  text-decoration: underline;
}

.header__nav-link--active {
  text-decoration: underline;
}

.header__hamburger {
  display: none;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  width: 20px;
  height: 16px;
}

.header__hamburger img {
  width: 100%;
  height: 100%;
}

/* ========================================
   MOBILE MENU OVERLAY
   ======================================== */
.mobile-menu {
  position: fixed;
  inset: 0;
  z-index: 200;
  background-color: var(--color-dark);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}

.mobile-menu--open {
  opacity: 1;
  visibility: visible;
}

.mobile-menu__close {
  position: absolute;
  top: 39px;
  right: var(--spacing-page-mobile);
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  width: 13px;
  height: 13px;
}

.mobile-menu__close img {
  width: 100%;
  height: 100%;
  /*filter: invert(1);*/
}

.mobile-menu__nav {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 50px;
}

.mobile-menu__link {
  font-size: 18px;
  font-weight: var(--font-semibold);
  color: var(--color-white);
  line-height: 20px;
}

.mobile-menu__credits {
  position: absolute;
  bottom: 32px;
  left: 0;
  right: 0;
  text-align: center;
  font-size: 8px;
  color: var(--color-white);
}

.mobile-menu__credits span {
  font-weight: var(--font-light);
}

.mobile-menu__credits strong {
  font-weight: var(--font-bold);
}

/* ========================================
   FOOTER
   ======================================== */
.footer {
  margin-top: auto;
  position: relative;
}

.footer__content {
  position: fixed;
  bottom: 50px;
  right: var(--spacing-page);
  z-index: 50;
  pointer-events: none;
}

.footer__content a,
.footer__content p {
  pointer-events: auto;
}

.footer__sidebar {
  position: fixed;
  left: var(--spacing-page);
  bottom: 80px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
  z-index: 50;
}

.footer__instagram {
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  font-size: 14px;
  font-weight: var(--font-semibold);
  line-height: 1;
  letter-spacing: 0.02em;
  cursor: pointer;
}

.footer__lang {
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  font-size: 12px;
  font-weight: var(--font-light);
  line-height: 20px;
  margin-top: 12px;
  cursor: pointer;
}

.footer__contact {
  text-align: right;
}

.footer__email {
  font-size: 16px;
  font-weight: var(--font-bold);
  line-height: 20px;
  margin-bottom: 50px;
}

.footer__email a:hover {
  text-decoration: underline;
}

.footer__company {
  font-size: 14px;
  font-weight: var(--font-light);
  line-height: 16px;
}
.footer__company p:nth-child(2) {
  font-size: 14px;
  line-height: 16px;
    margin-top: 15px;
}
.footer__credits-bar {
  position: fixed;
  bottom: 0;
  right: 0;
  background-color: var(--color-dark);
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 14px 0 14px;
  z-index: 50;
  width: 338px;
}

.footer__credits-text {
  font-size: 11px;
  color: var(--color-white);
  white-space: nowrap;
}

.footer__credits-text span {
  font-weight: var(--font-light);
}

.footer__credits-text strong {
  font-weight: var(--font-bold);
}

.footer__credits-icons {
  display: flex;
  align-items: center;
  gap: 8px;
}

.footer__credits-icons img {
  height: 18px;
  width: auto;
}

.footer__PNB-bar {
  font-size: 8px;
  line-height: 16px;
  color: var(--color-PNB);
  position: fixed;
  bottom: 27px;
  left: var(--spacing-page);
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 50;
}

/* ========================================
   MAIN CONTENT
   ======================================== */
.main {
  flex: 1;
  display: flex;
  flex-direction: column;
}

/* ========================================
   HOME PAGE
   ======================================== */
.home {
  flex: 1;
  min-height: 100vh;
}

/* ========================================
   GALLERY - Zoom Tunnel
   ======================================== */
.gallery {
  position: fixed;
  inset: 0;
  overflow: hidden;
  z-index: 1;
}

.gallery__slide {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  will-change: transform, opacity;
}

.gallery__slide img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.gallery__slide:first-child img {
  object-fit: cover;
}

.gallery__scroll-indicator {
  position: fixed;
  bottom: 60px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 14px;
  font-weight: var(--font-semibold);
  letter-spacing: 0.02em;
  z-index: 60;
  transition: opacity 0.5s ease;
}

.gallery__scroll-indicator--hidden {
  opacity: 0;
  pointer-events: none;
}

/* ========================================
   HOME PAGE - Blend Mode Overlay
   ======================================== */
.home-page .header {
  mix-blend-mode: difference;
  color: var(--color-white);
}

.home-page .footer__sidebar {
  mix-blend-mode: difference;
  color: var(--color-white);
}
 
.home-page .gallery__scroll-indicator {
  mix-blend-mode: difference;
  color: var(--color-white);
}


 .footer__content  {
  mix-blend-mode: difference;
  color:#fff;
}
/* ========================================
   ABOUT PAGE
   ======================================== */
.about {
  flex: 1;
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 160px var(--spacing-page) 200px;
}

.about__text {
  max-width: 840px;
  width: 100%;
}

.about__title {
  font-size: 18px;
  font-weight: var(--font-semibold);
  line-height: 20px;
  margin-bottom: 18px;
}

.about__body {
  font-size: 18px;
  font-weight: var(--font-regular);
  line-height: 20px;
}

.about__closing {
  font-size: 18px;
  font-style: italic;
  line-height: 20px;
  margin-top: 18px;
}

/* ========================================
   WORKS PAGE
   ======================================== */
.works {
  flex: 1;
  min-height: 100vh;
  padding-top: 178px;
  position: relative;
}

.works__container {
  position: relative;
  margin: 0 var(--spacing-page);
}

.works__image-area {
  width: 100%;
  height: calc(100vh - 228px); 
  position: relative;
  overflow: hidden;
}

.works__image {
  position: absolute;
  top: 0;
  right: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: right center;
}
.works__list {
	position: absolute;
	top: 25px;
	left: 59px;
	z-index: 10;
	max-height: calc(100vh - 270px);
	  overflow-y: auto;  
}

.works__list::-webkit-scrollbar {
  display: none; 
  -ms-overflow-style: none;
}

.works__item {
	font-size: 15px;
	font-weight: 400;
	line-height: 20px;
	color: var(--color-dark);
	cursor: pointer;
	white-space: nowrap;
}
.works__item.upper{
  text-transform: uppercase;
}
.works__item:hover {
  text-decoration: underline;
}

.works__item--active {
  font-weight: var(--font-bold);
  text-decoration: underline;
}

.works__arrows {
  position: absolute;
  top: 16px;
  right: 20px;
  display: flex;
  align-items: center;
  gap: 12px;
  z-index: 10;
    mix-blend-mode: difference;
}

.works__arrow {
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  display: flex;
  align-items: center;
}

.works__arrow img {
  width: 37px;
  height: 20px;
}

.works__arrow--left img {
  transform: rotate(180deg);
}

/* ========================================
   CONTACT PAGE
   ======================================== */
.contact {
  flex: 1;
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 160px var(--spacing-page) 200px;
}

.contact__text {
  max-width: 840px;
  width: 100%;
}

.contact__title {
  font-size: 16px;
  font-weight: var(--font-semibold);
  line-height: 20px;
  margin-bottom: 18px;
}

.contact__body {
  font-size: 18px;
  font-weight: var(--font-regular);
  line-height: 20px;
  display: flex;
  flex-direction: row;
  justify-content: flex-start;
  align-items: center;
  column-gap: 20px;
}

.contact__body a {
  color: var(--color-dark);
  text-decoration: none;
}

/* ========================================
   RESPONSIVE - MOBILE (max-width: 768px)
   ======================================== */
@media (max-width: 768px) {
  :root {
    --spacing-page: 15px;
  }

  /* Header Mobile */
  .header {
    padding: 25px var(--spacing-page-mobile) 0;
    align-items: center;
  }

  .header__logo {
    width: 132px;
    height: 40px;
  }

  .header__nav {
    display: none;
  }

  .header__hamburger {
    display: block;
  }

   .home-page .header__hamburger img {
    filter: brightness(100);
  }
  

  /* Footer Mobile */
  .footer {
    padding: 0 var(--spacing-page-mobile);
    /*padding-bottom: 16px;*/
  }
  /*
  .footer__sidebar {  
    gap: 0; 
        bottom: 30px;
  }
  */

  .footer__instagram {
    writing-mode: vertical-rl;
    transform: rotate(180deg);
  }

  .footer__lang {
    writing-mode: vertical-rl;
    transform: rotate(180deg);
    margin-top: 0;
    margin-left: 0;
  }

  .footer__content { 
    pointer-events: auto;
      bottom: 30px;
  }

  .footer__contact {
    text-align: right;
  }

  .footer__email {
    font-size: 16px;
    margin-bottom: 20px;
  }

  .footer__company {
    font-size: 12px;
    line-height: 15px; 
  }
.footer__company p:nth-child(2) {
  font-size: 11px;
  line-height: 15px;
    margin-top: 10px;
}
  .footer__privacy {
    text-align: right;
    font-size: 10px;
    font-weight: var(--font-light);
    margin-top: 20px;
  }
/*
  .footer__credits-bar {
    display: none;
  }
*/
  /* About Mobile */
  .about {
    padding: 150px var(--spacing-page-mobile) 160px;
    align-items: flex-start;
  }

  .about__body {
    font-size: 12px;
    line-height: 15px;
  }

  .about__title {
    font-size: 12px;
    line-height: 15px;
  }

  .about__closing {
    font-size: 12px;
    line-height: 15px;
  }

  /* Works Mobile */
  .works {
    padding-top: 102px;
  }

  .works__container {
    margin: 0;
  }

  .works__image-area {
    height: calc(100vh - 102px);
  }

  .works__list {
    display: none;
  }

  .works__mobile-title {
    position: absolute;
    top: 4px;
    left: var(--spacing-page-mobile);
    font-size: 18px;
    font-weight: var(--font-bold);
    color: var(--color-white);
    text-transform: uppercase;
    text-decoration: underline;
    z-index: 10;
    mix-blend-mode: difference;
  }

  .works__arrows {
    top: 12px;
    right: var(--spacing-page-mobile);
  }

  .works__arrow img {
    width: 25px;
    height: 14px;
  }

  .gallery__scroll-indicator {
  opacity: 0;
  pointer-events: none;
}

.works__image{ 
    top: -102px;   
}


}

/* Hide mobile-only elements on desktop */
.works__mobile-title {
  display: none;
}

@media (max-width: 768px) {
  .works__mobile-title {
    display: block;
  }
}

/* Desktop: hide mobile-only footer elements */
.footer__privacy {
  display: none;
}

@media (max-width: 768px) {
  .footer__privacy {
    display: block;
  }
}

@media (max-width: 767px) {
  .footer__PNB-bar {
    display: none;
  }
  .contact__body {
    font-size: 14px;
    flex-direction: column;
    justify-content: flex-start;
    align-items: start;
    column-gap: 0;
  }
  .contact__body span:nth-child(even){
    display: none;
  }
  .footer__credits-panel p {
    font-size: 12px;
  }
  .footer__credits-panel a,
  .footer__credits-panel span {
    font-size: 14px;
  }
}