/* ==========================================================================
   RetroCart — estilos base compartilhados por todas as páginas
   (Preto/Dourado — Club Car). Estilos específicos de cada página ficam
   no bloco {% block head_extra %} do respectivo template.
   ========================================================================== */

:root {
  --rc-bg:        #0f1e0a;
  --rc-bg-deep:   #050d03;
  --rc-gold:      #d4b06a;
  --rc-gold-2:    #b8944f;
  --rc-text:      #e8e4dc;
  --rc-muted:     #b8b0a0;
}

body { font-family: 'DM Sans', sans-serif; }
.font-display { font-family: 'Playfair Display', serif; }

/* Animações de entrada */
.fade-up { opacity: 0; transform: translateY(40px); transition: opacity 0.8s ease, transform 0.8s ease; }
.fade-up.visible { opacity: 1; transform: translateY(0); }
.fade-up:nth-child(2) { transition-delay: 0.15s; }
.fade-up:nth-child(3) { transition-delay: 0.3s; }
.fade-up:nth-child(4) { transition-delay: 0.45s; }

/* Cards */
.card-hover { transition: transform 0.4s ease, box-shadow 0.4s ease; }
.card-hover:hover { transform: translateY(-6px); box-shadow: 0 20px 50px rgba(0,0,0,0.4); }

/* Hero / detalhes visuais */
.hero-overlay { background: linear-gradient(180deg, rgba(15,30,10,0.5) 0%, rgba(15,30,10,0.8) 100%); }
.gold-accent { width: 80px; height: 3px; background: linear-gradient(90deg, var(--rc-gold-2), var(--rc-gold)); border-radius: 2px; }

/* Header fixo */
.sticky-header {
  position: sticky; top: 0; z-index: 40;
  background: rgba(15, 30, 10, 0.95);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(212, 176, 106, 0.2);
  transition: all 0.3s ease;
}
.sticky-header.scrolled { background: rgba(15, 30, 10, 0.98); box-shadow: 0 10px 30px rgba(0,0,0,0.4); }

/* Navegação */
.nav-link { color: var(--rc-text); transition: color 0.3s ease; font-size: 14px; font-weight: 500; }
.nav-link:hover { color: var(--rc-gold); }
.nav-link.active { color: var(--rc-gold); }



@media (max-width: 768px) { .nav-desktop { display: none; } .nav-mobile-toggle { display: block; } }
@media (min-width: 769px) { .nav-desktop { display: flex; } .nav-mobile-toggle { display: none; } }

/* Estatísticas */
.stat-number { font-size: 3rem; font-weight: 800; color: var(--rc-gold); line-height: 1; }
@media (max-width: 640px) { .stat-number { font-size: 2rem; } }

/* ============================================================
   Responsividade mobile
   Os títulos têm font-size fixo inline nos templates, então
   usamos !important para reduzi-los apenas em telas pequenas.
   Este arquivo já é carregado em todas as páginas pelo base.html.
   ============================================================ */

/* Rede de segurança contra rolagem horizontal */
html, body { overflow-x: hidden; }
img { max-width: 100%; }

/* Tablets e telas médias */
@media (max-width: 768px) {
  h1.font-display, h2.font-display {
    font-size: 2.25rem !important;
    line-height: 1.25 !important;
    word-break: break-word;
  }
}

/* Celulares */
@media (max-width: 640px) {
  h1.font-display, h2.font-display {
    font-size: 1.85rem !important;
    line-height: 1.25 !important;
  }
  h3.font-display { line-height: 1.3; }

  /* Reduz o respiro vertical exagerado das seções hero no celular */
  .py-24 { padding-top: 3.5rem !important; padding-bottom: 3.5rem !important; }
  .py-20 { padding-top: 3rem !important;   padding-bottom: 3rem !important; }

  /* Parágrafos de destaque muito grandes acompanham a escala */
  .stat-number { font-size: 1.9rem !important; }
}

/* Telas bem estreitas (< 380px) */
@media (max-width: 380px) {
  h1.font-display, h2.font-display { font-size: 1.6rem !important; }
}


/* Mobile */

.mobile-sidebar{
    position:fixed;
    top:0;
    right:-320px;

    width:300px;
    max-width:85vw;
    height:100dvh;

    background:#0f1e0a;

    display:flex;
    flex-direction:column;

    padding:25px;

    overflow-y:auto;

    z-index:9999;

    transition:.35s;
}

.mobile-sidebar.open{
    right:0;
}

.mobile-header{
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-bottom:30px;
}

.mobile-header button{
    background:none;
    border:none;
    color:#d4b06a;
    cursor:pointer;
}

.mobile-sidebar a{
    flex-shrink:0;
    color:#fff;
    text-decoration:none;
    padding:14px 0;
    border-bottom:1px solid rgba(255,255,255,.08);
    font-size:17px;
}

.mobile-sidebar a:hover{
    color:#d4b06a;
}

.mobile-sidebar .gold{
    color:#d4b06a;
    font-weight:600;
}

.mobile-overlay{
    position:fixed;
    inset:0;
    background:rgba(0,0,0,.5);

    opacity:0;
    visibility:hidden;

    transition:.3s;

    z-index:1000;
}

.mobile-overlay.open{
    opacity:1;
    visibility:visible;
}

@media(min-width:769px){
    .mobile-sidebar,
    .mobile-overlay{
        display:none;
    }
}


/* Desktop */
.nav-desktop {
    display:flex;
}

.nav-mobile-toggle {
    display:none;
}


/* Mobile */
@media(max-width:768px){

    .nav-desktop{
        display:none !important;
    }

    .nav-mobile-toggle{
        display:block !important;
    }

}