/* =========================================
   000 RESET & BASE
========================================= */
* { margin:0; padding:0; box-sizing:border-box; }

html, body {
  width: 100%;
  height: 100%;       
  margin: 0;
  padding: 0;
  background: #000;
  color: #fff;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  overflow: hidden; 
  overscroll-behavior: none;
  -webkit-overflow-scrolling: touch; 
}

/* =========================================
   1. TOPBAR (Stile Golapyan Group)
   ========================================= */
.topbar {
    background-color: #fff;
    /* MODIFICA: Altezza ridotta a 60px */
    height: 60px; 
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: space-between; 
    padding: 0 30px; 
    border-bottom: 1px solid #ddd; 
    position: relative;
    z-index: 20;
    /* Margine laterale per allinearsi alle cornici (25px) */
    margin: 0 25px;
}

/* =========================================
   LOGO
========================================= */
a.brand {
  text-decoration: none; cursor: pointer; display: flex; align-items: center; 
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  /* Font leggermente ridotto per adattarsi ai 60px se necessario, 
     ma 34px ci sta ancora (60-34=26px spazio) */
  font-size: 34px; line-height: 1; letter-spacing: -0.5px;
  margin-left: 17px; 
}
.brand .gola, .brand .p, .brand .an { color: #000; font-weight: 400; }
.brand .y { color: #777; font-weight: 400; }
.separator-vert {
  display: inline-block; width: 1px; height: 30px; background: #333; margin: 0 12px; transform: none;    
}
.brand .group { color: #999; font-size: 34px; font-weight: 300; margin-left: 0; }

/* =========================================
   LINGUA
========================================= */
.lang { display: flex; align-items: center; height: 100%; margin-right: 17px;}
.lang a { 
  text-decoration: none; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 22px; text-transform: lowercase; line-height: 1; transition: color 0.3s;
}
.lang a.active { color: #000; font-weight: 400; cursor: default; }
.lang a:not(.active) { color: #999; font-weight: 300; }
.lang a:not(.active):hover { color: #666; }
.lang-sep { display: inline-block; width: 1px; height: 30px; background: #333; margin: 0 10px; }

/* =========================================
   020 CORNICI (Desktop)
========================================= */
.frame { position: fixed; background: #fff; z-index: 3; }

/* Le cornici partono da top: 60px. 
   Essendo la Topbar alta 60px, si uniscono perfettamente. 
*/
.frame-left { top: 60px; left: 25px; width: 1px; height: calc(100vh - 85px); transform: scaleX(.5); transform-origin: left; }
.frame-right { top: 60px; right: 25px; width: 1px; height: calc(100vh - 85px); transform: scaleX(.5); transform-origin: right; }
.frame-bottom { bottom: 25px; left: 25px; width: calc(100% - 50px); height: 1px; transform: scaleY(.5); transform-origin: top; }

/* =========================================
   030 HERO SECTION
========================================= */
.hero {
  position: relative; 
  width: 100%; 
  /* Calcolo perfetto: 100vh totali - 60px di header */
  height: calc(100vh - 60px); 
  background: #000;
  overflow: hidden; 
}

/* COORDINATE DESKTOP (VW) */
:root {
  --horse-top: -5vw;    
  --horse-left: 17%;
  --horse-width: 68%;
}

.hero .horse {
  position: absolute;
  top: var(--horse-top); left: var(--horse-left);
  width: var(--horse-width); height: auto;
  z-index: 2;
  filter: brightness(1) contrast(1.05);
  transition: none; 
}

.tagline {
  position: absolute;
  top: 6vw; left: 58%;   
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 2vw; font-weight: 300; color: #cccccc;       
  letter-spacing: 0.5px; z-index: 3; white-space: nowrap;
  user-select: none; pointer-events: none;
}

.menu-hero {
  position: absolute;
  top: 33vw; left: 62%;   
  list-style: none;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 1.1vw; font-weight: 400; line-height: 2.2; letter-spacing: 0.5px; 
  z-index: 3;
}
.menu-hero li a { color: #999999; text-decoration: none; transition: color 0.3s ease; }
.menu-hero li a:hover { color: #fff; }
.dot { display: inline-block; width: 4px; height: 4px; background: #999999; border-radius: 50%; margin-right: 15px; vertical-align: middle; }
.v-red { color: #ff0000; font-weight: 400; }

/* =========================================
   040 BIO PAGE (Desktop)
========================================= */
.page-bio { overflow-y: auto; } 

.bio-container { 
  display: block; width: 100%; max-width: 1000px; margin: 0 auto; 
  padding: 40px 25px 100px 25px; box-sizing: border-box; text-align: justify; 
}
.bio-container h1 { font-size: 26px; font-weight: 400; color: #fff; margin-bottom: 25px; display: block; }

.bio-photo { float: right; width: 50%; margin-left: 40px; margin-bottom: 20px; }
.bio-photo img { display: block; width: 100%; height: auto; }

.bio-container p { display: inline; font-size: 15px; line-height: 1.5; color: #bfbfbf; font-weight: 300; margin: 0; }
.bio-container p::after { content: " "; display: inline; }

/* DESKTOP FIX (Schermi > 1025px) */
@media (min-width: 1025px) {
  .page-bio { overflow: hidden !important; }
  
  .page-bio .topbar { 
      position: fixed; 
      top: 0; 
      left: 25px; 
      right: 25px; 
      margin: 0; 
      width: auto; 
      z-index: 50; 
  }

  /* Il container parte da 60px, subito sotto la topbar */
  .bio-container {
    position: fixed; top: 60px; bottom: 25px; left: 0; right: 0; margin: 0 auto;
    width: 100%; max-width: 1000px; overflow-y: auto; padding: 40px 0;
    scrollbar-width: none; -ms-overflow-style: none;
  }
  .bio-container::-webkit-scrollbar { display: none; }
}

/* ==================================================================
   SMARTPHONE VERTICALE (Portrait)
================================================================== */
@media (max-width: 600px) {
  .frame, .frame-left, .frame-right, .frame-bottom { display: none !important; }
  html, body { height: 100dvh; overflow: visible; }
  .hero { height: 100dvh; background: #000; overflow: hidden; }

  .hero::before { content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 20%; background: #000; z-index: 5; }
  .topbar { position: absolute; top: 20%; width: 100%; margin: 0; height: 40px; padding: 0 20px; z-index: 20; background: #fff; }
  .footer { display: block; position: absolute; bottom: 38%; left: 0; width: 100%; height: 0.5px; background: #fff; z-index: 20; }
  .hero::after { content: ""; position: absolute; bottom: 0; left: 0; width: 100%; height: 25%; background: #000; z-index: 5; }

  a.brand { font-size: 20px; }         
  .brand .group { font-size: 20px; } 
  .separator-vert { height: 20px; margin: 0 8px; } 
  .lang a { font-size: 14px; }
  .lang-sep { display: inline-block; width: 1px; height: 20px; background: #333; margin: 0 5px; transform: translateY(0px); }

  .hero .horse { top: 18%; left: -17%; width: 110%; height: auto; z-index: 1; }
  .tagline { top: 29%; left: 46%; font-size: 4.6vw; letter-spacing: 0.5px; z-index: 6; }
  .menu-hero { top: 50%; left: 55%; font-size: 2.8vw; line-height: 1.8; z-index: 6; }

  .page-bio { overflow-y: auto !important; height: auto !important; }
  .page-bio .topbar { position: relative; top: 0; transform: none; margin-bottom: 20px; }
  .bio-container { position: static; width: 100%; padding: 20px; overflow: visible; }
  .bio-photo { float: none; width: 100%; margin: 0 0 20px 0; }
  .bio-container p { display: block; margin-bottom: 12px; }
  .bio-container p::after { content: none; }
}


/* ==================================================================
   IPHONE LANDSCAPE (Orizzontale)
================================================================== */
@media (max-width: 950px) and (orientation: landscape) {
  
  .frame, .frame-left, .frame-right, .frame-bottom { display: block !important; }
  .hero::before, .hero::after, .footer { display: none !important; }
  html, body { height: 100%; overflow: hidden; }
  .hero { height: 100%; background: #000; margin: 0; padding: 0; }

  .topbar { 
    position: relative; 
    height: 50px; 
    width: calc(100vw - 16px); 
    margin: 0 8px; 
    padding: 0 15px;
    z-index: 20;
    justify-content: space-between;
  }
  
  a.brand { font-size: 20px; }
  .brand .group { font-size: 20px; } 
  .separator-vert { height: 20px; margin: 0 8px; } 
  .lang a { font-size: 20px; }
  .lang-sep { height: 20px; margin: 0 5px; transform: none; }

  .frame-left, .frame-right {
    position: fixed;
    top: 50px;       
    bottom: 8px;     
    width: 1px;
    height: auto;
  }
  .frame-left { left: 8px; }  
  .frame-right { right: 8px; } 
  
  .frame-bottom {
    position: fixed;
    bottom: 8px;     
    left: 8px;       
    width: calc(100% - 16px); 
    height: 1px;
  }

  .hero .horse {
    top: -16vh;       
    left: 10%;       
    height: 90vh;    
    width: auto;     
    max-width: none;
    z-index: 1; 
  }

  .tagline {
    top: 7%;        
    left: 48%;       
    font-size: 6vh;  
    letter-spacing: 0.5px;
    white-space: nowrap;
  }

  .menu-hero {
    top: 60%;        
    left: 53%;       
    font-size: 3.5vh; 
    line-height: 1.6;
    white-space: nowrap;
  }
  
  .page-bio { overflow-y: auto !important; }
  .page-bio .topbar { position: sticky; top: 0; }
  .bio-container { 
    position: static; width: calc(100% - 16px); margin: 0 auto;
    padding: 20px; overflow: visible; 
  }
  .bio-photo { float: left; width: 35%; margin-right: 20px; margin-left: 0; }
  .bio-container p { font-size: 14px; }
}

/* =========================================
   EFFETTO ARTISTI (BIO) - MODIFICATO
========================================= */
.artist-name {
  color: inherit; 
  font-weight: inherit;
  display: inline-block; /* Necessario per il padding */
  
  /* PREPARAZIONE VISIVA */
  padding: 0 4px;        /* Aggiunge un po' di respiro ai lati */
  border-radius: 2px;    /* Angoli leggermente smussati */
  background-color: transparent; /* Di base è invisibile */
  
  /* Transizione fluida per colore e sfondo */
  transition: all 0.5s ease-in-out; 
}

.artist-name.active {
  background-color: #333333; /* Sfondo Grigio Scuro */
  color: #ff0000;            /* Rosso Brillante */
  
  /* Rimuoviamo l'ombra bianca precedente */
  text-shadow: none; 
  cursor: default;
}