/* ================== Paleta Verde ================== */
:root {
  --verde-principal: #00A305;
  --verde-claro: #66CC66;
  --verde-escuro: #0d5c74;
  --verde-hover: #008000;
  --cinza-claro: #f9f9f9;
  --cinza-escuro: #555;
}

/* ================== Banner ================== */
.banner-section {
  position: relative;
  text-align: center;
  color: white;
}

.banner-section img {
  width: 100%;
  height: auto;
  border-radius: 8px;
}

.banner-text {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  text-shadow: 1px 1px 5px rgba(0,0,0,0.6);
  font-size: 2.5rem;
  font-weight: bold;
}

/* ================== Navbar ================== */
.navbar {
  background-color: var(--verde-principal) !important;
}

.navbar .nav-link {
  color: white !important;
}

.navbar .nav-link:hover {
  color: var(--verde-claro) !important;
}

/* ================== Botões ================== */
.btn-success, .btn-outline-success {
  border-color: var(--verde-principal);
  color: var(--verde-principal);
}

.btn-success:hover, .btn-outline-success:hover {
  background-color: var(--verde-hover);
  color: #fff;
  border-color: var(--verde-hover);
}

/* Botão notícias – fundo verde, texto branco */
.btn-news {
  background-color: var(--verde-principal);
  color: #fff;
  border: none;
  padding: 8px 16px;
  border-radius: 6px;
  transition: background-color 0.3s ease;
  text-decoration: none;
}

.btn-news:hover {
  background-color: var(--verde-escuro);
  color: #fff;
}


/* Botões redes sociais */
.btn-instagram {
  background: #E1306C;
  color: white;
  border-radius: 6px;
  padding: 0.5rem 1rem;
  transition: background 0.3s;
}
.btn-instagram:hover { background: #C12F61; }

.btn-facebook {
  background: #1877F2;
  color: white;
  border-radius: 6px;
  padding: 0.5rem 1rem;
  transition: background 0.3s;
}
.btn-facebook:hover { background: #145DBF; }

/* ================== Notícias ================== */
.news-card {
  border-radius: 8px;
  overflow: hidden;
  transition: box-shadow 0.3s ease, transform 0.3s ease;
  background: #fff;
}

.news-card:hover {
  box-shadow: 0 10px 15px rgba(0,0,0,0.15);
  transform: translateY(-3px);
}

.news-card-img {
  width: 100%;
  aspect-ratio: 16/9; /* mantém proporção */
  object-fit: cover;   /* corta só o excesso */
  border-radius: 8px;
}

.news-card-title {
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--verde-escuro);
}

.news-card-date {
  font-size: 0.85rem;
  color: #777;
}

.news-card-text {
  font-size: 0.95rem;
  color: var(--cinza-escuro);
  line-height: 1.4;
}

/* ================== Cards Razões ================== */
.reason-card {
  border-radius: 8px;
  overflow: hidden;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  background: #fff;
}

.reason-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 15px rgba(0,0,0,0.15);
}

.card-img-wrapper {
  height: 200px;
  overflow: hidden;
}

.img-razoes {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* ================== Página Equipa ================== */
.categoria {
  background: var(--verde-escuro);
  color: #fff;
  text-align: center;
  padding: 12px;
  border-radius: 10px;
  margin-top: 40px;
  margin-bottom: 20px;
  font-size: 1.8rem;
  font-weight: bold;
}

.subcategoria {
  color: var(--verde-principal);
  border-left: 5px solid var(--verde-principal);
  padding-left: 10px;
  margin-top: 25px;
  margin-bottom: 15px;
  font-size: 1.4rem;
  font-weight: 600;
}

.sexo {
  color: #333;
  font-size: 1.2rem;
  margin-top: 15px;
  margin-bottom: 10px;
  font-weight: 500;
}

.membros {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); /* mais estreito */
  gap: 20px;
  margin: 20px 0;
}

.membro {
  background: #fff;
  border-radius: 10px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.1);
  text-align: center;
  padding: 10px;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.membro:hover {
    transform: translateY(-5px);
    box-shadow: 0 6px 14px rgba(0,0,0,0.15);
}

.membro img {
    width: 100%;
    aspect-ratio: 35 / 45; /* formato vertical */
    object-fit: cover;
    border-radius: 8px;
    margin-bottom: 8px;
}


/* ================== Cards Modalidades ================== */
.card-modalidade {
  transition: transform 0.3s, box-shadow 0.3s;
}

.card-modalidade:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 15px rgba(0,0,0,0.15);
}

/* ================== Galeria ================== */
.galeria-img {
  width: 100%;
  height: 250px;       /* ou outro valor fixo para cards */
  object-fit: cover;   /* mantém proporção e corta o excesso */
  border-radius: 8px;
  transition: transform 0.3s ease;
}

.galeria-img:hover {
  transform: scale(1.05);
}


/* ================== Contactos ================== */
#map {
  width: 100%;
  height: 400px;
  border-radius: 8px;
  margin-top: 1rem;
}


/* ================== post ================== */
.post-content img, .post-img {
  max-width: 100%;    /* nunca ultrapassa o container */
  height: auto;       /* mantém proporção */
  display: block;
  margin: 20px auto;  /* centraliza */
  border-radius: 8px;
  object-fit: contain; /* mantém a imagem inteira, sem cortar */
}


.post-img {
  max-width: 100%;
  height: auto;
  display: block;
  margin: 20px auto;
  border-radius: 8px;
  object-fit: cover;
}


/* ================== Outros estilos gerais ================== */
.card-body h5 {
  font-weight: 600;
  color: var(--verde-escuro);
}

.card-body p {
  font-size: 0.95rem;
  color: var(--cinza-escuro);
}

@media (max-width: 768px) {
  .post-content img, .galeria-img {
    height: auto;      /* altura automática no telemóvel */
    max-width: 100%;
  }
  .membros {
    grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); /* ainda mais estreito no telemóvel */
  }
}

/* Linhas alternadas suaves na tabela */
#registosTable.table-striped tbody tr:nth-of-type(odd) {
  background-color: #f9f9f9; /* tom muito suave */
}

#registosTable.table-striped tbody tr:nth-of-type(even) {
  background-color: #ffffff; /* branco */
}

/* Opcional: efeito hover */
#registosTable tbody tr:hover {
  background-color: #e6f7e6; /* verde claro suave ao passar o mouse */
}

/* 🔹 Tornar a tabela responsiva com scroll horizontal no telemóvel */
.table-responsive {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch; /* suaviza o scroll em iOS */
}

/* 🔹 Inputs e textarea dentro da tabela ocupam toda a célula */
#registosTable input,
#registosTable textarea {
  width: 100%;
  box-sizing: border-box;
}

/* 🔹 Melhor contraste do cabeçalho */
#registosTable thead {
  background-color: var(--verde-escuro);
  color: #fff;
  text-align: center;
}

/* 🔹 Ajuste para os botões pequenos dentro da tabela */
#registosTable .btn-sm {
  padding: 0.25rem 0.5rem;
  font-size: 0.8rem;
}

/* 🔹 Centralizar conteúdo das células */
#registosTable th,
#registosTable td {
  text-align: center;
  vertical-align: middle;
  word-break: break-word;
}
