/* ================================
   Variáveis de Cores (Tema)
================================= */
:root {
  --azul-printalentejo: #003366;
  --laranja-destaque: #F6A500;
  --verde-assistencia: #28a745;
  --cinza-escuro: #444444;
  --cinza-claro: #666666;
  --preto-puro: #000000;
  --branco: #ffffff;
}

/* ================================
   Base e Tipografia
================================= */
body {
  margin: 0;
  font-family: 'Raleway', sans-serif;
  background-color: #f9f9f9;
  color: var(--cinza-escuro);
}

.btn-primary{
  background-color:#f6a500;
  border-color: #f6a500;
   --bs-btn-active-bg: #f6a500;
}
.btn:hover {
    color: var(--bs-btn-hover-color);
    background-color: #b47a06;
    border-color: #f6a500;
}

/* ================================
   Botões Flutuantes (Social)
================================= */
.about {
  position: fixed;
  right: 30px;
  bottom: 70px;
  display: flex;
  flex-direction: column;
  z-index: 100;
}

.bg_links {
  width: 50px;
  height: 50px;
  border-radius: 50%;
  margin: 5px 0;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
  border: 3px solid var(--branco);
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
  transition: all 0.3s ease;
}

.bg_links:hover {
  transform: translateY(-3px);
  box-shadow: 0 0 10px #fbb80e, 0 0 20px #fbb80e, 0 0 30px #fbb80e;
  border-color: #fbb80e;
}

.bg_links:hover .icon {
  color: #fbb80e;
  text-shadow: 0 0 5px #fbb80e;
}

.icon {
  color: var(--branco);
  font-size: 1.2rem;
}
.icon-img {
  width: 20px;
  height: 20px;
  filter: invert(1); /* deixa branco se a imagem for preta */
}
  #contactos a,
  #contactos a:visited,
  #contactos a:hover,
  #contactos a:focus,
  #contactos a:active {
    color: inherit;
    text-decoration: none;
    outline: none;
  }

/* ================================
   Navegação Principal (Menu)
================================= */
.mainNav {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 80px;
  background: transparent;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 40px;
  z-index: 1000;
  color: white;
}

.mainNav__logo img {
  height: 70px;
}

.mainNav__logo a {
  display: inline-block;
  cursor: pointer;
}

.logo-neon {
  transition: filter 0.3s ease, box-shadow 0.3s ease;
}

.logo-neon:hover {
  filter: drop-shadow(0 0 5px #fbb80e) drop-shadow(0 0 10px #fbb80e);
 
}

.mainNav__links {
  display: flex;
  align-items: center;
  gap: 20px;
}


.mainNav__link {
  text-transform: uppercase;
  font-weight: 600;
  font-size: 14px;
  text-decoration: none;
  color: white;
  position: relative;
  padding: 4px;
  transition: 0.3s;
}

.mainNav__link::after {
  content: "";
  position: absolute;
  height: 2px;
  width: 0%;
  background: white;
  bottom: 0;
  left: 0;
  transition: 0.3s;
}

.mainNav__link:hover {
  color: #fbb80e;
}

.mainNav__link:hover::after {
  width: 100%;
  background: #fbb80e;
  box-shadow: 0 0 8px #fbb80e, 0 0 12px #fbb80e;
}

.mainNav__icon {
  display: none;
  cursor: pointer;
}
/* Link ativo */
.mainNav__link.active {
  color: var(--laranja-destaque);
  font-weight: 600;
}

.mainNav__link.active::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  height: 2px;
  width: 100%;
  background-color: var(--laranja-destaque);
  box-shadow: 0 0 10px var(--laranja-destaque);
}


/* ================================
   Header com Vídeo de Fundo
================================= */
.mainHeading {
  position: relative;
  height: 100vh;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  background: #000; /* substitui gradiente se quiser focar no vídeo */
}

.video-bg {
  position: absolute;
  top: 50%;
  left: 50%;
  min-width: 100%;
  min-height: 100%;
  width: auto;
  height: auto;
  z-index: 0;
  transform: translate(-50%, -50%);
  object-fit: cover;
  filter: brightness(0.5);
}

/* Conteúdo sobre o vídeo */
.mainHeading .container {
  position: relative;
  z-index: 2;
  text-align: center;
  color: white;
}

/* ================================
   Leque de cartões sobrepostos
================================= */
.empresa-leque {
  position: relative;
  width: 100%;
  max-width: 1000px;
  height: 360px;

  display: flex;
  justify-content: center;
  align-items: center;
}



.empresa-card {
  position: absolute;
  width: 320px;
  min-height: 280px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 12px;
  backdrop-filter: blur(12px);
  box-shadow: 0 25px 45px rgba(0, 0, 0, 0.4);
  color: white;
  text-align: center;
  padding: 30px 24px;
  transition: all 0.5s ease;
  z-index: 1;
}

.empresa-card::before {
  content: attr(data-text);
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 42px;
  background: rgba(255, 255, 255, 0.06);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--laranja-destaque);
  font-weight: 600;
  font-size: 14px;
  letter-spacing: 1px;
}

.empresa-card-content {
  position: relative;
  z-index: 2;
}

.empresa-card h2 {
  font-size: 20px;
  margin-bottom: 14px;
  color: var(--laranja-destaque);
}

.empresa-card p {
  font-size: 16px;
  line-height: 1.6;
  color: #ffffff;
}

/* Efeito leque */
.empresa-card:nth-child(1) {
  transform: rotate(-10deg) translateX(-160px);
  z-index: 1;
}
.empresa-card:nth-child(2) {
  transform: rotate(0deg);
  z-index: 2;
}
.empresa-card:nth-child(3) {
  transform: rotate(10deg) translateX(160px);
  z-index: 1;
}

/* Hover traz para frente */
.empresa-card:hover {
  transform: rotate(0deg) scale(1.05);
  z-index: 3;
}

.mainHeading {
  position: relative;
  height: 100vh;
  overflow: hidden;
}  


#galleryCarousel .carousel-img {
  width: 100%;
  height: auto;
  max-height: 70vh;        /* limite saudável p/ ecrãs grandes */
  object-fit: contain;     /* não corta */
}

#parceiros{
  background-color: #d3d3d3;
}
.py-5 {
    padding-top: 0.5rem!important;
    padding-bottom: 0.5rem!important;
}
.bg-light {
    --bs-bg-opacity: 1;
    background-color: #d3d3d3!important;
}
.contact-glass {
  background: rgba(0,0,0,0.55);
  color: #fff;
  border: 1px solid rgba(255,255,255,0.15);
  border-radius: 14px;
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  box-shadow: 0 18px 36px rgba(0,0,0,0.35);
}

/* Ícone circular com aro branco e detalhe laranja */
.contact-icon {
  width: 60px; height: 60px;
  margin-inline: auto;
  border-radius: 50%;
  border: 2px solid #fff;
  display: grid; place-items: center;
  color: var(--laranja-destaque, #F6A500);
  font-size: 1.25rem;
}
.contact-icon i { color: #fff; }

/* Cabeçalho da secção sobre o vídeo fica legível */
#contactos-info h2 { text-shadow: 0 2px 10px rgba(0,0,0,0.6); }

#footer_space{
margin: 0 10px 0 10px;
}



/* ================================
   RESPONSIVO — MOBILE
==================================*/

@media (max-width: 576px) {
   .container {
    max-width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    min-height: 100vh; /* altura total */
  }
    #contactos-info { padding-top: 2.5rem; padding-bottom: 2.5rem; }
  .contact-icon { width: 52px; height: 52px; font-size: 1.1rem; }
  /* Menu fixo no topo e acima de tudo */
  .mainNav {
    position: fixed;
    top: 0; left: 0; right: 0;
    height: 64px;
    padding: 0 16px;
    z-index: 1200;
    background: rgba(0,0,0,0.65);
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
  }
  .mainNav__icon { display: block; color: #fff; z-index: 1300; }

  /* Dropdown do menu ocupa toda a largura, sob o nav */
  .mainNav__links {
    position: fixed;            /* em vez de absolute */
    top: 64px;
    left: 0; right: 0;
    width: 100%;
    max-height: calc(100vh - 64px);
    overflow-y: auto;
    display: none;              /* aberto via .is-open */
    flex-direction: column;
    gap: 0;
    padding: 12px 16px 24px;
    background: rgba(0,0,0,0.85);
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
    z-index: 1250;
    border-top: 1px solid rgba(255,255,255,0.12);
  }
  .mainNav__links.is-open { display: flex; }
  .mainNav__link {
    padding: 12px 6px;
    font-size: 15px;
    border: none; 
  }
  a .mainNav__link::after { display: none; }

  /* Header usa altura real do ecrã (corrige espaço branco no fundo) */
  .mainHeading {
    height: auto;     
  }
  .video-bg { filter: brightness(0.6); }

  /* Cartões deixam de ser leque (grid) e descem um pouco para não colar no nav */

  /* ================================
 page index
==================================*/
  .empresa-leque {
    height: auto;
    margin: 96px auto 24px;
    display: grid;
    grid-template-columns: repeat(2, minmax(0,1fr));
    gap: 16px;
    padding: 0 16px;
    max-width: 920px;
  }
  .empresa-card {
    position: relative;
    transform: none !important;
    width: 100%;
    min-height: unset;
    padding: 22px 18px 54px;
    border-radius: 12px;
    background: rgba(255,255,255,0.08);
    border: 1px solid rgba(255,255,255,0.12);
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
    box-shadow: 0 18px 36px rgba(0,0,0,0.35);
  }
  .empresa-card::before { height: 36px; font-size: 13px; }

  /* Botões flutuantes menores; escondem‑se quando o menu abre */
  .about {  display: none; }
  .bg_links { width: 40px; height: 40px; margin: 4px 0; border-width: 2px; }

  .empresa-leque { grid-template-columns: 1fr; gap: 14px; margin-top: 88px; padding: 0 14px; }
  .empresa-card { padding: 18px 16px 50px; }
  .empresa-card h2 { font-size: 17px; }
  .empresa-card p  { font-size: 14.5px; line-height: 1.5; }

.mainNav__logo img {
 margin-top: 20px !important;
}
/* ================================
   page serviços
==================================*/
#galleryCarousel {
margin-top: 100px;
margin-bottom: 200px;
}

#galleryCarousel .carousel-item {
    height: calc(var(--vh, 1vh) * 55);
  }
  #galleryCarousel .carousel-caption {
    padding: 10px 12px;
    font-size: 15px;
  }
  #galleryCarousel .carousel-caption h5 { font-size: 18px; }
   #galleryCarousel .carousel-item {
    height: calc(var(--vh, 1vh) * 55);  /* ajusta para 60 se quiseres maior */
  }
  #galleryCarousel .carousel-caption {
    padding: 8px 10px;
    font-size: 14px;
  }
  #galleryCarousel .carousel-caption h5 { font-size: 16px; margin-bottom: 4px; }

  /* indicadores e setas mais pequenos */
  #galleryCarousel .carousel-indicators button { width: 8px; height: 8px; margin: 0 3px; }
  #galleryCarousel .carousel-control-prev-icon,
  #galleryCarousel .carousel-control-next-icon { width: 24px; height: 24px; }

  #assistencia-remota {
  padding: 200px 20px; /* Espaçamento interno */
  max-width: 900px;   /* Limita largura no desktop */
  margin: auto;       /* Centraliza horizontalmente */
}
#assistencia-remota h1 {
    font-size: 1.6rem; /* menor no mobile */
  }

  #assistencia-remota p {
    font-size: 1rem; /* texto mais compacto */
  }
}


/* =========================
   Footer – estilos completos
   ========================= */

/* Paleta (com valores por defeito) */
:root{
  --footer-bg: #ffffff;
  --footer-text: #6c757d;
  --footer-link: #6c757d;
  --footer-link-hover: #343a40;
  --footer-border: rgba(0,0,0,.08);
}

/* Bloco principal */
.site-footer{
  background: var(--footer-bg);
  color: var(--footer-text);
  border-top: 1px solid var(--footer-border);
  font-size: 0.875rem; /* ~14px */
}

/* Contêineres */
.footer-wrap{
  padding: 0.75rem 1rem; /* top/bottom + margem lateral */
}
.footer-inner{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:space-between;
  gap:0.75rem;
}

/* Marca (opcional) */
.footer-brand{ font-weight:600; white-space:nowrap; }
.brand-power{ color:#60b528; font-weight:700; }

/* Links */
.footer-nav{
  display:flex;
  flex-wrap:wrap;
  gap:1rem;
  justify-content:center;
}
.footer-nav a{
  color: var(--footer-link);
  text-decoration:none;
}
.footer-nav a:hover{
  color: var(--footer-link-hover);
  text-decoration:underline;
}

/* Linha de logos centrados */
.footer-logos{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:20px;
  margin-top:14px;
  flex-wrap:wrap;
}
.footer-logo{
  height:44px;           /* controla a altura dos logos */
  width:auto;
  display:block;
  object-fit:contain;
  transition: transform .2s ease, opacity .2s ease;
  opacity:.95;
}
.footer-logo:hover{
  transform: translateY(-2px);
  opacity:1;
}

/* Responsivo */
@media (min-width: 768px){
  .footer-inner{ flex-direction:row; }
  .footer-wrap{ padding: 0.75rem 2rem; } /* mais espaço lateral em desktop */
}
@media (max-width: 576px){
  .footer-logo{ height:36px; }
  .footer-nav{ gap:.75rem; }
}

/* Tema escuro automático (se o sistema do utilizador estiver em dark mode) */
@media (prefers-color-scheme: dark){
  :root{
    --footer-bg:#0f1115;
    --footer-text:#cbd5e1;
    --footer-link:#e2e8f0;
    --footer-link-hover:#ffffff;
    --footer-border: rgba(255,255,255,.08);
  }
  /* se os logos forem muito escuros no dark mode, podes inverter:
     descomenta as duas linhas abaixo */
  /* .footer-logo{ filter: brightness(.96) contrast(1.02); } */
  /* .footer-logo.light-only{ filter:none; } */
}

/* Acessibilidade extra (alto contraste de sistema) */
@media (forced-colors: active){
  .footer-nav a:hover{ outline: 1px solid CanvasText; }
}



.hero-wrapper {
  max-width: 1140px;
  margin: 0 auto;
  padding-left: 15px;
  padding-right: 15px;
}
