:root{
  --bg: #ffffff;
  --text: #111;
  --muted: #6c757d;
  --footer-h: 56px;
  --offcanvas-bg: #000000;
  --sidebar-w: 260px;   /* se la tua sidebar sinistra è fixed, metti la sua width */
  --info-w: 32vw;       /* larghezza colonna destra fissa (desktop) */
  --top-offset: 0px;    /* se hai una topbar fissa, metti la sua altezza */
  
  --topbar-h: 140px;  /* altezza reale topbar mobile */
}

/* Mobile: attiva offset */
@media (max-width: 767.98px){
  :root{
    --top-offset: var(--topbar-h);
  }
}


html, body { 
	height: 100%; 
}
body{
  background: var(--bg);
  color: var(--text);
  letter-spacing: .02em;
  font-family: "Montserrat", sans-serif;
  font-optical-sizing: auto;
  font-style: normal;
}

a {
    color: #000;
    text-decoration: underline;
}

a:hover{
  opacity: 1;
}



svg#logo-pose {
    width: 200px;
}

.nav-link{
  text-transform: uppercase;
  font-size: .75rem;
  letter-spacing: .16em;
}

.projects-fullscreen{
  min-height: 100vh;
  padding-top: 6rem;  /* spazio navbar */
  padding-bottom: 3rem;
}

.object-fit-cover{
  object-fit: cover;
}

.project-card img{
    -webkit-transition: all 0.4s ease;
    -moz-transition: all 0.4s ease;
    transition: all 0.4s ease;
    -webkit-backface-visibility: hidden;
}

.project-card:hover img{
  opacity: 0.8;
}

.content-progetto p{
  line-height: 1.7;
}


/* ========== HOME LAYOUT ========== */
.home-shell{
  min-height: 100vh;
}

/* Sidebar fixed */
.home-sidebar{
  position: fixed;
  top: 0;
  left: 0;
  height: 100vh;
  width: 260px;
  background: transparent;
  border-right: 0px solid rgba(0,0,0,0.08);
  z-index: 20;
}

.home-sidebar__inner{
  height: 100%;
  padding: 28px 22px;
  display: flex;
  flex-direction: column;
}

.home-logo{
  display: inline-block;
  text-transform: uppercase;
  letter-spacing: .18em;
  font-weight: 600;
  color: #111;
  font-size: .9rem;
}

.home-menu__link{
  display: block;
  padding: 8px 0;
  text-transform: uppercase;
  letter-spacing: .16em;
  font-size: .75rem;
  color: #111;
  text-decoration: none;
}

.home-menu__link:hover{
  opacity: .7;
}
/* Per rendere leggibili logo/menu sopra foto */
.home-logo,
.home-menu__link{
  color: #000;                     /* testo bianco sopra immagini */
  text-shadow: 0 2px 18px rgba(0,0,0,.55);
}

/* Hover più “soft” */
.home-menu__link:hover{
  opacity: .75;
}

/* Content offset */
.home-stage{
  margin-left: 0px;     /* deve matchare width sidebar */
  min-height: 100vh;
}

/* ========== FULLSCREEN CAROUSEL ========== */
.carousel-fs,
.carousel-fs .carousel-inner,
.carousel-fs .carousel-item{
  height: 100vh;
}

.slide-link{
  display: block;
  height: 100%;
  color: inherit;
  text-decoration: none;
}

.slide-media{
  position: relative;
  height: 100%;
  width: 100%;
  overflow: hidden;
  background: #000;
}

.slide-img{
  width: 100%;
  height: 100%;
  object-fit: cover; /* fill senza deformare */
  object-position: center;
  display: block;
}

/* overlay per leggibilità testo in basso */
.slide-overlay{
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,.55), rgba(0,0,0,0) 55%);
  pointer-events: none;
}

/* info bottom-right */
.slide-info{
  position: absolute;
  right: 28px;
  bottom: 22px;
  z-index: 5;
  text-align: right;
  max-width: min(520px, 70%);
  color: #fff;
}

.slide-title{
  margin: 0 0 6px 0;
  text-transform: uppercase;
  letter-spacing: .16em;
  font-size: clamp(1rem, 1.6vw, 1.25rem);
}

.slide-meta{
  font-size: .85rem;
  opacity: .85;
}

/* ========== RESPONSIVE ========== */
@media (max-width: 991.98px){
  .home-sidebar{ width: 220px; }
  .home-stage{ margin-left: 0px; }
}

@media (max-width: 767.98px){
  /* su mobile meglio sidebar “compatta” in alto, ma tu hai chiesto fixed a sinistra:
     manteniamo fixed ma riduciamo width */
  .home-sidebar{ width: 170px; }
  .home-stage{ margin-left: 0px; }
  .slide-info{ right: 16px; bottom: 16px; max-width: 75%; }
}

/* Footer fixed */
.site-footer-fixed{
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  height: var(--footer-h);
  display: flex;
  align-items: center;

  background: transparent;          /* coerente con sidebar trasparente */
  color: #000;                      /* testo bianco sopra immagini */
  text-shadow: 0 2px 18px rgba(0,0,0,.55);

  z-index: 30;                      /* sopra slider */
  pointer-events: none;             /* opzionale: evita di “bloccare” click sullo slider */
}
.home .site-footer-fixed{
  color: #fff;     
}
/* Se nel footer ci sono link cliccabili, togli pointer-events sopra e usa: */
.site-footer-fixed a{
  pointer-events: auto;
  color: inherit;
}

/* Evita sovrapposizione: spinge su le info bottom-right dello slider */
.slide-info{
  bottom: calc(22px + var(--footer-h));
}

/* Se hai altre pagine con contenuto scrollabile, aggiungi spazio sotto */
body{
  padding-bottom: var(--footer-h);
}

.home-menu__list{
  list-style: none;
  margin: 0;
  padding: 0;
}

.home-menu__list li{
  margin: 0;
  padding: 0;
}

.home-menu__list a{
  display: block;
  padding: 8px 0;
  text-transform: uppercase;
  letter-spacing: .16em;
  font-size: .75rem;
  color: #000;
  text-decoration: none;
}
.offcanvas-body .home-menu__list a {
    color: #ffffff;
}
.home-menu__list a:hover{
  opacity: .5;
}


.home .home-menu__list a{
  text-shadow: 0 2px 18px rgba(0,0,0,.55);
  color: #fff;
}
.home path.cls-1 {
    fill: #fff;
}

.home .cls-ig {
    fill: #fff;
}

.home path, .home polygon, .home rect {
    fill: #fff;
    stroke: #fff;
}

.home path.cls-fb {
fill: #fff;
stroke: #fff;
stroke-miterlimit: 10;
}


/* Mobile top bar */
.home-mobilebar{
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 40;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1.5em;
  background: transparent;
}

.home-burger{
  width: 44px;
  height: 44px;
  border: 0;
  background: transparent;
  display: inline-flex;
  flex-direction: column;
  justify-content: center;
  gap: 6px;
  padding: 0;
}

.home-burger span{
  display:block;
  height: 2px;
  width: 26px;
  background: #000;
  box-shadow: 0 2px 18px rgba(0,0,0,.55);
}

.home .home-burger span {
    background: #fff;
}

/* Offcanvas look */
.home-offcanvas{
  width: min(86vw, 320px);
}

.offcanvas {
    background: rgba(0,0,0,.95);
}

/* Su mobile niente offset sidebar */
@media (max-width: 767.98px){
  .home-stage{
    margin-left: 0;
  }

  /* lascia spazio in alto per la mobilebar */
  .carousel-fs,
  .carousel-fs .carousel-inner,
  .carousel-fs .carousel-item{
    height: 100vh;
  }

  .slide-info{
    /* resta bottom-right ma con respiro */
    right: 16px;
  }
}
/* 9:16 (portrait) */
.ratio-9x16{
  --bs-aspect-ratio: calc(12 / 9 * 100%);
}
.object-fit-cover{ object-fit: cover; }

.current-menu-item {
    font-weight: 600;
}



/* Wrap generale: lascia spazio a sidebar + footer */
.single-progetto__wrap{
  padding-left: var(--sidebar-w);
  padding-bottom: var(--footer-h);
  padding-top: var(--top-offset);
}

/* Immagini sempre fluide */
.project-img{
  display: block;
  width: 100%;
  height: auto;
}

/* ========== MOBILE/TABLET: niente colonna fissa ========== */
@media (max-width: 991.98px){
  .single-progetto__wrap{
    padding-left: 0; /* se su mobile la sidebar diventa hamburger/offcanvas */
  }

  .single-progetto .project-info-col{
    position: static;  /* torna nel flusso */
    width: auto;
    height: auto;
    overflow: visible;
  }

  .single-progetto .project-media-col{
    margin-right: 0;   /* nessun “buco” a destra */
  }
}

/* ========== DESKTOP: colonna destra fissa ========== */
@media (min-width: 992px){
  .single-progetto .project-info-col{
    position: fixed;
    top: var(--top-offset);
    right: 0;
    width: var(--info-w);
    height: calc(100vh - var(--top-offset) - var(--footer-h));
    overflow: hidden; /* non scrolla */
    z-index: 10;
  }

  /* La colonna immagini lascia spazio alla colonna info fissa */
  .single-progetto .project-media-col{
    margin-right: var(--info-w);
  }
}

.single-progetto__wrap{
  padding-left: var(--sidebar-w);
  padding-bottom: var(--footer-h);
  padding-top: var(--top-offset); /* <-- offset che vale solo su mobile */
}

/* Se su mobile la sidebar non c’è (hamburger/offcanvas) */
@media (max-width: 991.98px){
  .single-progetto__wrap{ padding-left: 0; }
}

.carousel-control-next, .carousel-control-prev {
    z-index: 10000000;
    top: 60%;
}


@media (max-width: 767.98px){
	.py-5 {
	    padding-top: 0rem!important;
	    padding-bottom: 0rem!important;
	}
	.no-padding {
    margin: 0px;
    padding: 0px;
}
}

.content-progetto {
    text-align: justify;
    font-size: 17px;
}
