body {
  margin: 0;
  font-family: 'Montserrat', sans-serif;
  font-weight: 400; /* ExtraLight */
  background: #fff;
  font-style: normal;
}

/* Parágrafos */
p {
  font-family: 'Montserrat', sans-serif;
  font-weight: 400;
  line-height: 1.5;
  font-style: normal;
}
a {
  font-family: 'Montserrat', sans-serif;
  font-weight: 400;
  line-height: 1.5;
  font-style: normal;
}

/* Reset de itálico global – exceto inline styles */
em, i, cite, address, blockquote, q, var, dfn,
span, div, strong, h1, h2, h3, h4, h5, h6, label {
  font-style: normal !important;
  font-family: 'Montserrat', sans-serif;
  font-weight: 600 !important;
}

/* Títulos */
h1, h2, h3, h4, h5, h6 {
  font-family: 'Montserrat', sans-serif;
  font-weight: 600;
}

/* Hero slider */
.hero-slider .hero-caption h1 {
  font-family: 'Montserrat', sans-serif;
  font-weight: 600;
}
.hero-slider .hero-caption p {
  font-family: 'Montserrat', sans-serif;
  font-weight: 300;
}
.hero-slider .hero-caption h1 .initial-i {
  font-family: 'Montserrat', sans-serif;
  font-weight: 100;
}

/* Citações */
.quote-section {
  text-align: center;
  padding: 3rem 1rem;
  font-size: 1.5rem;
  font-family: 'Montserrat', sans-serif;
  font-weight: 200;
  font-style: italic;
}

/* Navegação fixa */
header {
  background-color: #000;
  text-align: center;
  padding: 1rem;
  position: relative;
}
header img { height: 60px; }
.menu-toggle {
  position: absolute; right: 20px; top: 20px;
  font-size: 24px; background: none; border: none;
  color: #fff; cursor: pointer;
}
nav.menu {
  position: fixed; top: 0; left: 0;
  width: 100%; height: 100vh;
  background: rgba(0,0,0,0.95);
  display: none;
  flex-direction: column;
  align-items: center; justify-content: center;
  z-index: 1000;
  transition: background 0.3s ease;
}
nav.menu.show {
  display: flex;
  background: rgba(0,0,0,0.75);
  animation: fadeIn 0.3s ease-in;
}
nav.menu a {
  color: #fff; font-size: 1.5rem; margin: 1rem;
  text-decoration: none;
}
@keyframes fadeIn {
  from { opacity: 0; } to { opacity: 1; }
}

/* Slick Slider */
.hero-slider .slick-slide { position: relative; }
.hero-slider img {
  width: 100%; height: 90vh;
  object-fit: cover;
}
.hero-caption {
  position: absolute; bottom: 30px; left: 30px;
  color: white;
}
.slick-prev, .slick-next {
  position: absolute; top: 50%;
  transform: translateY(-50%);
  background: white; border-radius: 50%;
  color: black; z-index: 2;
  width: 40px; height: 40px;
  font-size: 24px; line-height: 38px;
  border: none;
}
.slick-prev { left: 20px; }
.slick-next { right: 20px; }
.slick-dots {
  position: absolute; bottom: 10px;
  width: 100%; text-align: center;
}
.slick-dots li { display: inline-block; margin: 0 5px; }
.slick-dots li button {
  width: 10px; height: 10px;
  border-radius: 50%; background: white;
  border: none; text-indent: -9999px; padding: 0;
}
.slick-dots li.slick-active button { background: gray; }

/* Grid geral */
.category-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 1rem;
}

/* ===== Overlay das categorias (sem zoom) ===== */
.category-thumb {
  width: 100%;
  overflow: hidden;
  border-radius: 3px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.1);
  aspect-ratio: 18 / 10;
}

.mini-slider .slide-item {
  position: relative;
  overflow: hidden;
  cursor: pointer;
}

/* deixa a imagem intacta */
.mini-slider .slide-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: none;
}

/* overlay preto por cima da imagem */
.mini-slider .slide-item::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.6);
  opacity: 0;
  transition: opacity 0.3s ease;
  pointer-events: none;
}
.mini-slider .slide-item:hover::before {
  opacity: 1;
}

/* texto da categoria */
.category-thumb .slide-item .overlay-title {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  padding: 0.75rem 1rem;
  font-family: 'Montserrat', sans-serif;
  font-weight: 400;
  color: #fff;
  text-align: left;
  opacity: 0;
  transition: opacity 0.3s ease;
  z-index: 1;
}
.category-thumb .slide-item:hover .overlay-title {
  opacity: 1;
}

/* Seções pretas, rodapé etc. */
.black-section {
  background: #000;
  color: white;
  padding: 4rem 1rem;
}
.black-section h2 { font-weight: bold; }

.brochure-section img { max-width: 250px; }

footer {
  background: #000;
  color: white;
  padding: 2rem 1rem;
  text-align: center;
  font-size: 0.875rem;
}

/* Project grid */
.project-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(250px,1fr));
  grid-auto-rows: 200px;
  grid-auto-flow: dense;
  gap: 1rem;
}
.project-grid figure {
  position: relative; overflow: hidden;
  width: 100%; height: 100%;
}
.project-grid img {
  width: 100%; height: 100%; object-fit: cover;
}
.project-grid figure:hover img {
  transform: scale(1.05);
}
.project-grid figcaption {
  position: absolute; bottom: 0; left: 0;
  width: 100%;
  background: rgba(50,50,50,0.8);
  color: white;
  padding: 0.75rem 1rem;
  font-size: 0.9rem;
  line-height: 1.3;
}
:root { --hero-h: 90vh; } /* muda aqui se quiseres 100vh */

.hero-slider,
.hero-slider .slick-list,
.hero-slider .slick-track { height: var(--hero-h); }

.hero-slider .slick-slide { 
  height: var(--hero-h);
  position: relative;        /* garante contexto p/ overlay */
  overflow: hidden; 
}

/* o div .position-relative que envolve a media */
.hero-slider .slick-slide > div { height: 100%; }

/* imagem/vídeo preenchem o slide */
.hero-slider img,
.hero-slider video {
  width: 100%;
  height: var(--hero-h) !important; /* sobrepõe inline */
  object-fit: cover;
  display: block;
}

/* ===== Altura consistente do HERO (img + vídeo) ===== */
:root { --hero-h: 90vh; }                  /* desktop */
@media (max-width: 992px){ :root { --hero-h: 75vh; } }  /* tablet */
@media (max-width: 576px){ :root { --hero-h: 62vh; } }  /* mobile */

.hero-slider,
.hero-slider .slick-list,
.hero-slider .slick-track { height: var(--hero-h); }

.hero-slider .slick-slide { height: var(--hero-h); position: relative; overflow: hidden; }
.hero-slider .slick-slide > div { height: 100%; } /* wrapper .position-relative */

.hero-slider img,
.hero-slider video { width: 100%; height: var(--hero-h) !important; object-fit: cover; display: block; }

/* Overlay do hero (o teu .position-absolute do degradé) */
.hero-slider .position-absolute.bottom-0.start-0.w-100 {
  height: 220px;
}
@media (max-width: 992px){
  .hero-slider .position-absolute.bottom-0.start-0.w-100 { height: 170px !important; }
}
@media (max-width: 576px){
  .hero-slider .position-absolute.bottom-0.start-0.w-100 { height: 130px !important; }
}

/* Texto do overlay (título/subtítulo) */
.hero-slider h1.display-5 {
  font-size: clamp(1.25rem, 3.8vw, 2.5rem);
  line-height: 1.2;
}
.hero-slider p { font-size: clamp(.9rem, 2.6vw, 1.125rem); }

/* Barra vertical branca no overlay */
.hero-slider .position-absolute.bottom-0.start-0.w-100 > div > div[style*="width: 3px"] {
  height: 80px;
}
@media (max-width: 576px){
  .hero-slider .position-absolute.bottom-0.start-0.w-100 > div > div[style*="width: 3px"] { height: 56px; }
}

/* ===== Mini-sliders por categoria ===== */
.category-thumb { aspect-ratio: 18/10; }
@media (max-width: 576px){
  .category-thumb { aspect-ratio: 16/10; }
}
.category-thumb .slide-item .overlay-title {
  font-size: clamp(.9rem, 2.4vw, 1rem);
  padding: .6rem .9rem;
}

/* ===== Secção “ILUMINAÇÃO PÚBLICA …” (col-md-6 + imagem direita) ===== */
/* Overwrite ao inline padding-left: 10rem; */
@media (max-width: 992px){
  .text-justify[style*="padding-left: 10rem"] { padding-left: 3rem !important; }
}
@media (max-width: 576px){
  .text-justify[style*="padding-left: 10rem"] { padding-left: 1rem !important; }
}

/* Altura fixa da coluna da imagem (475px) → reduzir em ecrãs pequenos */
@media (max-width: 992px){
  .col-md-6.p-0.position-relative.overflow-hidden[style*="height: 475px"] { height: 340px !important; }
}
@media (max-width: 576px){
  .col-md-6.p-0.position-relative.overflow-hidden[style*="height: 475px"] { height: 260px !important; }
}

/* ===== Citação (inicio-full-section) ===== */
@media (max-width: 992px){
  .inicio-full-section[style*="height: 350px"] { height: 280px !important; }
}
@media (max-width: 576px){
  .inicio-full-section[style*="height: 350px"] { height: 230px !important; }
  .inicio-full-section .section { font-size: 22px !important; }
  .inicio-full-section > div[style*="margin-right: 350px"] { margin-right: 0 !important; padding: 0 1rem !important; }
  .inicio-full-section .text-muted { text-align: right !important; }
}

/* ===== Brochura full-width ===== */
.brochure-full-section { min-height: 80vh; }
@media (max-width: 992px){
  .brochure-full-section { min-height: 60vh; }
  .brochure-full-content { padding: 60px 24px !important; }
}
@media (max-width: 576px){
  .brochure-full-section { min-height: 52vh; }
  .brochure-full-content { padding: 44px 16px !important; max-width: 100% !important; }
  /* matar o padding-right: 10rem!important no container interno */
  .brochure-full-content[style*="padding-right: 10rem"] { padding-right: 1rem !important; }
  /* alinhar texto ao centro em ecrãs muito pequenos, se preferires: */
  .brochure-full-content { text-align: center !important; align-items: center !important; }
}

/* ===== “ILUMINAR PARA VER, SENTIR…” (secção texto centrado) ===== */
@media (max-width: 576px){
  main.container .text-center.py-5 { padding-top: 2rem !important; padding-bottom: 2rem !important; }
  main.container .text-center.py-5 h2 { font-size: 1.25rem !important; }
  main.container .text-center.py-5 p { font-size: .95rem !important; }
}

/* ===== Slick arrows/dots mais discretos no mobile ===== */
@media (max-width: 576px){
  .slick-prev, .slick-next { width: 36px !important; height: 36px !important; }
  .slick-prev { left: 10px !important; }
  .slick-next { right: 10px !important; }
  .slick-dots { bottom: 6px !important; }
}

/* ===== Footer / espaçamentos gerais ===== */
@media (max-width: 576px){
  footer .row { row-gap: .75rem; }
  footer img[alt="Logo"] { height: 48px !important; }
  footer p { margin-bottom: 0; }
}

/* ===== “Entrar em contacto” botão — clique fácil ===== */
@media (max-width: 576px){
  a.btn.mb-3 { padding: .65rem 1.1rem !important; font-size: 1rem !important; }
}

/* ===== Garantir que vídeos não rebentam layout em iOS ===== */
.hero-slider video { inline-size: 100%; block-size: var(--hero-h) !important; }
