/* === Global Style — Gabriele Cripezzi === */
@import url('https://fonts.googleapis.com/css2?family=Lato:wght@300;400;700&family=Rokkitt:wght@400;700&display=swap');

:root {
  --color-bg: #121212;
  --color-text-light: #f4f4f4;
  --color-text-accent: #f8c350;
  --font-title: 'Rokkitt', sans-serif;
  --font-body: 'Lato', sans-serif;
}

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

body {
  background: var(--color-bg);
  color: var(--color-text-light);
  font-family: var(--font-body);
  line-height: 1.6;
}

/* === GLOBAL LINKS === */
a {
  color: var(--color-text-accent);
  text-decoration: none;
  transition: color .25s ease;
}
a:hover {
  color: #ffe29c;
  text-decoration: none;
}

/* === HEADINGS === */
h1, h2, h3, h4 {
  font-family: var(--font-title);
  color: var(--color-text-accent);
  font-weight: 400;
}

/* === HEADERS DESKTOP (Stile unificato) === */

/* Header BASE: Contiene gli stili comuni e il look ridotto (Page Header) */
.main-header { /* Modificato da .home-header, .page-header */
    width: 100%;
    max-width: 900px;
    margin: 0 auto;
    /* Padding ridotto per tutte le pagine */
    padding: 15px 0 10px; 
    text-align: center;
}
.main-header .site-logo {
    display: block;
    width: 100%;
    text-align: center;
    font-family: var(--font-title);
    font-size: 2.5rem;
    color: var(--color-text-accent);
    letter-spacing: 1px;
    margin-bottom: 0; /* Unificato */
}
.main-header .site-tagline {
    font-family: var(--font-body);
    font-weight: 300;
    font-size: 1.1rem; /* Tagline piccola per tutti */
    color: #797979; /* Colore più scuro per tutti */
    margin-top: 0;
    text-align: center;
    margin-bottom: 10px; /* Spazio ridotto prima del menu per tutti */
}
.main-header .main-menu { /* Modificato da .home-header .home-menu, .page-header .home-menu */
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    padding: 8px 0;
    margin-bottom: 0; /* Imposto a zero per eliminare lo spazio fisso e lo shift */
    text-align: center;
}
.main-header .main-menu a {
    color: var(--color-text-light);
    font-size: 0.95rem; /* Testo menu piccolo/uniforme */
    font-weight: 400; 
    letter-spacing: .2px;
    padding: 5px 8px;
    margin: 0 8px;
}
.main-header .main-menu a:hover {
    color: var(--color-text-accent);
}

/* Header HOME (Override - Mantengo solo le classi per compatibilità futura/CSS esterni, ma rimuovo i cambiamenti di stile) */
.home-header {
    /* Rimuovo gli override di padding/font-size/color per unificare l'aspetto */
    padding: 15px 0 10px; /* Uniformato */
}

.home-header .site-tagline {
    font-size: 1.1; /* Uniformato */
    color: #797979; /* Uniformato */
    margin-bottom: 10px; /* Uniformato */
}
.home-header .main-menu { /* Modificato .home-menu in .main-menu */
    border-top: 1px solid rgba(255, 255, 255, 0.1); /* Uniformato */
    border-bottom: 1px solid rgba(255, 255, 255, 0.1); /* Uniformato */
    padding: 8px 0; /* Uniformato */
}
.home-header .main-menu a { /* Modificato .home-menu in .main-menu */
    font-size: 0.95rem; /* Uniformato */
    font-weight: 400; /* Uniformato */
}


/* === NAV MENU — DEFINITIVO (rimuovo i vecchi stili che interferiscono) === */

.nav-container, .nav, .nav ul, .nav ul li a {
    /* Rimuovo i vecchi stili del nav non più usati per evitare conflitti */
    display: contents; 
}


/* === MAIN LAYOUT === */
.main-container {
  max-width: 1000px;
  margin: 0 auto;
  padding: 40px 5%;
}

.content-layout {
  max-width: 960px;
  margin: 0 auto;
  padding: 2rem;
}

/* === COVER / PAGE TITLE === */
.cover-content {
  background: #202020;
  padding: 40px;
  text-align: center;
  border-radius: 8px;
  margin-bottom: 40px;
}

.page-title { /* Aggiungo classe per h1 in page.php */
  font-size: 2.5rem;
  line-height: 1;
  margin-bottom: 0;
}
.page-subtitle { /* Aggiungo classe per h2 in page.php */
  font-family: var(--font-body);
  font-weight: 400;
  font-size: 1.5em;
  color: #aaa;
  line-height: 1;
  margin-top: 0;
  margin-bottom: 1.5em;
}

.page-content h3 {
  font-size: 21px;
  margin-top: 25px;
  margin-bottom: 10px;
}

/* === BREADCRUMB === */
.breadcrumb {
  font-size: .9rem;
  margin-bottom: 1.4rem;
}

.breadcrumb a {
  color: var(--color-text-accent);
}
.breadcrumb a:hover {
  color: #fff;
}

/* === CARD GRID === */
.grid, .cards-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill,minmax(270px,1fr));
  gap: 1.8rem;
  margin-top: 2rem;
}

.card {
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 1.2rem;
  transition: all .3s ease;
  overflow: hidden;
}
.card:hover {
  transform: translateY(-6px);
  border-color: var(--color-text-accent);
  box-shadow: 0 8px 20px rgba(0,0,0,0.4);
}

.card a {
  display: block;
  padding: 2rem;
  color: inherit;
}
.card h3 {
  margin-bottom: 1rem;
}
.card p {
  color: #ddd;
}

/* === CHAT BLOCKS === */
.chat-entry {
  padding: 15px;
  margin-bottom: 20px;
  border-radius: 6px;
}
.chat-entry.gc {
  background: #303030;
  border-left: 4px solid var(--color-text-accent);
}
.chat-entry.ai {
  background: #252525;
  border-left: 4px solid #f90;
}
.chat-entry strong {
  display: block;
  font-family: var(--font-title);
  font-size: 1.1em;
  margin-bottom: 5px;
}

/* === FOOTER === */
.footer, .site-footer {
  text-align: center;
  padding: 25px 5%;
  border-top: 1px solid #333;
  font-size: .8em;
  color: #797979;
}

.menu-toggle {
    display: block !important;
}

#sidebar-menu {
    display: block; /* sarà gestito da layout.css con right:-300px */
}

/* Nascondi icona sandwich quando sidebar è aperta */
#sidebar-menu.active + .menu-toggle {
    display: none !important;
}

@media (min-width: 900px) {
    .menu-toggle {
        display: none !important;
    }
}

/* === SIDEBAR === */

#sidebar-menu {
    position: fixed;
    top: 0;
    right: -300px; /* Nascosta a destra */
    width: 300px;
    height: 100%;
    background: #0a0a0a;
    box-shadow: -5px 0 15px rgba(0,0,0,0.5);
    transition: right 0.3s ease;
    z-index: 1000;
    padding: 20px;
}

#sidebar-menu.active {
    right: 0;
}

.sidebar-close {
    position: absolute;
    top: 15px;
    right: 20px;
    font-size: 1.8rem;
    cursor: pointer;
    color: #f8c350;
}
.sidebar-close:hover {
    color: #fff;
}

/* 3. Stili Header e Menu Sidebar */

.sidebar-logo {
    color: #fff; /* Titolo in bianco */
    font-size: 2.5rem; /* Stessa grandezza di h1/h2 */
    margin-bottom: 0;
    padding-bottom: 0;
    font-family: 'Rokkitt', sans-serif; /* Stesso font del titolo */
}
.sidebar-tagline {
    color: #797979; /* Sottotitolo in grigio */
    font-size: 1rem;
    margin-top: 0.5rem;
    margin-bottom: 1.5rem;
}

/* Menu links */
.sidebar-nav {
    display: flex;
    flex-direction: column; /* Links uno sopra l'altro */
    border-top: 1px solid rgba(255, 255, 255, 0.1); /* Separatore in alto (simile al desktop) */
}

.sidebar-link {
    color: #f8c350;
    text-decoration: none;
    padding: 10px 0;
    display: block;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1); /* Separatori tra i link */
}