/* RESET básico para limpar estilos padrão */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box; /* Box Model: inclui padding/border na largura/altura */
}

body {
    font-family: "Segoe UI",Tahoma,Geneva,Verdana,sans-serif;
    background-color: #f5f5f5;
    color: #333;
    line-height: 1.6;
}
/*========= BOX MODEL======= */
/* Todos os elementos com padding, margin e border serão ajustados abaixo */
/* CABEÇALHO com FLEXBOX */
header {
    background-color: #2c3e50;
    color:white;
    padding: 20px 40px;    /* Box Model: padding interno */
    display: flex;        /* FLEXBOX */ 
    justify-content: space-between;   /* Espaço entre logo e menu */
    align-items: center;    /* Alinha verticalmente */
    flex-wrap: wrap;     /* Responsivo: quebra linha se necessário */
    border-bottom: 4px solid #e67e22;   /* Box Model: border */
}
.logo h1 {
    font-size: 1.5rem;
}
/* Menu de navegação com FLEXBOX */
nav ul {
   display : flex;  /* FLEXBOX */
   list-style: none;        
   gap: 30px;           /* Espaço entre itens do menu */
}
nav ul li a {
    color: white;
    text-decoration: none;
    font-weight: bold;
    padding: 8px 12px; /* Box Model: padding para aumentar área de clique */
    transition: all 0.3s;
}
nav ul li a:hover {
    background-color: #e67e22;
    border-radius: 5px;
}
/*BANNER*/
.banner {
    background: linear-gradient(135deg, #3498db, #2c3e50);
    color:white;
    text-align:center;
    padding:80px 20px;   /*Box Model:Padding*/
    margin-bottom:40px;  /* Box Model:margin*/
    border-bottom:3px solid #e67e22;  /* Box Model: border*/
}
.banner-content h2 {
    font-size: 2.5rem;
    margin-bottom: 15px;
}
.banner-content p {
    font-size: 1.2rem;
    margin-bottom: 20px;
}

.banner-content button{
    background-color:#e67e22;
    color:white;
    border:none;
    padding: 12px 30px;
    font-size: 1rem;
    cursor: pointer;
    border-radius: 5px;
    transition:transform 0.3s;
}

.banner-content button:hover {
    transform:scale(1.05) ;
}
/* ========== GRID LAYOUT ========== */
/* Conteúdo principal: notícias + avisos lado a lado */
main{
    max-width: 1200px;
    margin:0 auto 40px auto;  /* Box Model: margin centralizada */
    padding: 0 20px;  /* Box Model: padding lateral */
    display: grid;   /* GRID LAYOUT */
    grid-template-columns: 2fr 1fr;  /* Notícias ocupa 2 partes, avisos 1 parte */
    gap:30px;   /* Espaçamento entre colunas */
}
/* Seção de Notícias */
.noticias h2{
    margin-bottom: 20px;
    color:#2c3e50;
    border-left: 5px solid #e67e22;
    padding-left: 15px;
}

/* Cards com FLEXBOX */
.cards-container {
    display: flex; /* FLEXBOX */
    flex-wrap:wrap; /* Quebra linha em telas menores */
    gap: 2px;  /* Espaçamento entre cards */
}
/* Cada card - aplicando BOX MODEL */
.cards{
    background-color: white;
    border-radius: 8px;
    overflow: hidden;
    flex: 1;  /* Flex: ocupa espaço igual */
    min-width: 200px; /* Largura mínima antes de quebrar */
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
    transition: transform 0.3s;
    border: 1px solid #ddd;  /*Box Model: border*/
}
.card:hover{
    background-color: #e67e22;
    color:white;
    font-size:3 rem;
    text-align: center;
    padding: 30px;
}
.card h3{
    padding: 15px 15px 5px 15px;
    color:#2c3e50;
}
.card p{
    padding: 0 15px 15px 15px;
    color: #666;
}
.card button{
    background-color:#2c3e50;
    color: white;
    border: none;
    padding: 10px 20px;
    margin: 0 15px 20px 15px;
    cursor: pointer;
    border-radius: 5px;
    display: inline-block;
}
.card button:hover{
    background-color: #e67e22;
}
/* Área de Avisos- lateral*/
.avisos {
    background-color: #fff3e0;
    padding: 20px;
    border-radius:8px;
    border:1px solid #e67e22;
    height: fit-content;
}
.avisos h2{
    margin-bottom:20px;
    color: #2c3e50;
    border-bottom: 2px solid #e67e22;
    padding-bottom: 10px;
}
.aviso-item{
    display: flex;
    align-items:center;
    gap:15px;
    padding: 12px 0;
    border-bottom:1px dashed #ccc;
}
.aviso-item span{
    font-size: 1.5rem;
}
.aviso-item p{
    color:#555;
}
/* Seção de Cursos */
.cursos{
    background-color: #ecf0f1;
    padding:40px 20px;
    margin-top: 20px;
}
.cursos h2{
    text-align:center;
    margin-bottom: 30px;
    color:#2c3e50;
}
.cursos-container{
    max-width: 1200px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px,1fr));
    gap: 25px;
}
.curso-item{
    background-color: white;
    padding:25px;
    border-radius: 8px;
    text-align:center;
    transition: transform 0.3s;
    border: 1px solid #ddd;
}
.curso-item:hover{
    transform: translateY(-5px);
    box-shadow: 0 5px 15px rgba(0,0,0,0,1);
}
.curso-item h3{
    color:#e67e22;
    margin-bottom:10px;
}
/*RODAPÉ*/
footer{
    background-color:#2c3e50;
    color:white;
    margin-top: 40px;
}
.footer-info{
    max-width: 1200px;
    margin:0 auto;
    padding:40px 20px;
    display: grid;
    grid-template-columns: repeat(auto-fit,minmax(250px,1fr));
    gap:30px;
}
.contatos h3, .redes-sociais h3{
    margin-bottom:15px;
    color: #e67e22;
}
.contatos p{
    margin: 8px 0;
}
.social-links a {
    color:white;
    text-decoration: none;
    padding: 8px 12px;
    background-color: #34495e;
    border-radius:5px;
    transition:background-color 0.3s;
}
.social-links a:hover{
    background-color: #e67e22;
}
.copyright{
    text-align:center;
    padding:20px;
    border-top:1px solid #34495e;
    font-size:0.9rem;
}
/*========RESPONSIVIDADE======*/
/* DESAFIO EXTRA: adptar layout para telas menores*/
@media(max-width:768px){
    header{
        flex-direction: column;
        text-align: center;
        gap: 15px;
    }
}
nav ul{
    flex-wrap:wrap;
    justify-content: center;
    gap: 15px;
}
/*GRID principal vira coluna única*/
main{
    grid-template-columns: 1fr;
}
.cards-container{
    justify-content:center;
}
.banner-content h2{
    font-size: 1.8rem;
}
.footer-info{
    text-align:center;
}
.social-links{
    justify-content: center;
     }
    @media (max-width:480px){
        .card{
            min-width: 100%;
}
     .banner { 
        padding:50px 15px;
}
     .banner-content h2{
        font-size: 1.5rem;
     }
}