:root {
  /* Cores Base */
  --cor-fundo: #fff;                        /* fundo principal do site */
  --cor-fundo-secao: #f4efe9;               /* bege premium para secções */
  --cor-principal: #1e1b4b;                 /* azul escuro elegante */
  --cor-destaque: #DCA44E;                  /* dourado/mostarda para CTA e botões */
  --cor-texto: #2f2f2f;                     /* texto normal (escuro) */
  --cor-texto-claro: #f4f4f4;               /* texto claro para sobreposição ou fundo escuro */
   --cor-navbar-bg: rgba(30, 27, 75, 0.85);

  /* Tipografia */
  --font-base: 'Poppins', sans-serif;

  /* Estética Geral */
  --radius: 1rem;                           /* cantos arredondados padrão */
  --sombra-suave: 0 4px 12px rgba(0, 0, 0, 0.06);
  --sombra-intensa: 0 8px 24px rgba(0, 0, 0, 0.12);

  /* Transições */
  --transicao-suave: all 0.3s ease;
}

/* Reset básico (sem alterações) */
*{margin:0;padding:0;box-sizing:border-box;}

html,body{
  width:100%;
  min-height:100%;
  overflow-x:hidden;
}

/* === NAVBAR FIXO === */
.navbar{
  position:fixed;
  width:100%;           /* mantém a largura total */
  background:transparent;
  backdrop-filter:none;
  box-shadow:none;
  z-index:1000;
  top:0;
  left:0;
  right:0;
  transition:
    transform .35s ease,
    background .35s ease,
    backdrop-filter .35s ease,
    box-shadow .35s ease;

  pointer-events:none;
  scrollbar-gutter:stable both-edges;
}

.navbar *{pointer-events:auto;}
.navbar.hide{transform:translateY(-100%);}

/* === CONTAINER INTERNO === */
.navbar-container{
  max-width:1280px;
  margin:auto;
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:1rem 2rem;
}

.navbar.scrolled{
  background:rgba(15,15,20,.65);    /* ou roxo translúcido da marca */
  backdrop-filter:blur(8px);
  box-shadow:0 4px 12px rgba(0,0,0,.25);
}

/* === LOGO === */
.logo img {
  height: 60px;
  max-width: 150px;
}

/* === MENU DE NAVEGAÇÃO === */
.main-nav .nav-list {
  display: flex;
  gap: 2rem;
  list-style: none;
  align-items: center;
}

.nav-list li a {
  color: #fff;
  font-weight: 500;
  text-decoration: none;
  transition: color 0.3s ease;
}

.nav-list li a:hover {
  color: #ffb703;
}

/* === BOTÃO DE AGENDAR === */
.btn-nav {
  background-color: var(--cor-destaque);
  color: var(--cor-principal);
  padding: 0.5rem 1.2rem;
  border-radius: 999px;
  font-weight: 600;
  transition: var(--transicao-suave);
}

.btn-nav:hover {
  background-color: #fff;
  color: var(--cor-principal);
}

.navbar.open{
  background: rgba(255,255,255,.95);
}

.navbar.scrolled{
  background: rgba(255,255,255,.92);
  backdrop-filter: blur(8px);
  box-shadow: 0 3px 12px rgba(0,0,0,.06);
}

.navbar.scrolled .nav-list li a{
  color: var(--cor-principal);         /* texto azul escuro */
}
.navbar.scrolled .nav-list li a:hover{
  color: var(--cor-destaque);
}

.navbar.scrolled .logo img {
  filter: invert(1) brightness(0.2);
}

.navbar.scrolled .btn-nav{
  background:var(--cor-destaque)!important; /* dourado */
  color:var(--cor-principal)!important;
}

/* ---------- Botão hambúrguer (desktop oculta) ---------- */
.menu-toggle{
  display:none;                       /* só aparece em mobile */
  background:none;
  font-size:2rem;
  color:#fff;
  border:none;
  cursor:pointer;
  transition:transform .3s ease, color .3s ease;
}

/* muda cor quando header ganha fundo branco no scroll */
.navbar.scrolled .menu-toggle{
  color:var(--cor-principal);         /* azul escuro */
}

/* animação do ícone (rotação simples) quando menu aberto */
.menu-toggle.open{
  transform:rotate(90deg);
}

/* ---------- Menu mobile aberto ------------------------- */
 .navbar.nav-open .main-nav{
  position: fixed;
  top: 0; right: 0;
  width: 70vw;
  height: 100vh;
  transform: translateX(100%);
  background: rgba(30, 27, 75, .72);
  backdrop-filter: blur(10px);
  display: flex !important;
  color: var(--cor-fundo);
  flex-direction: column;
  align-items: center;
  gap: 2rem;
  padding-top: 6rem;
  transition: transform .4s ease;
}

.navbar.nav-open .main-nav{      /* quando aberto, move-se para dentro */
  transform: translateX(0);
}

/* Botão X (visível só em mobile) */
.nav-close{
  position:absolute;
  top:1.2rem; right:1.6rem;
  font-size:2rem;
  color:var(--cor-fundo);
  background:none; border:none;
  cursor:pointer;
  display:none;                  /* desktop oculta */
}
@media (max-width:768px){
  .nav-close{ display:block; }
}

/* links verticais brancos */
.navbar.nav-open .nav-list{
  flex-direction:column;
  gap:2rem;
}
.navbar.nav-open .nav-list li a{
  color:var(--cor-fundo);             /* branco/bege */
  font-size:1.25rem;
  text-align:center;
  transition:color .3s;
}
.navbar.nav-open .nav-list li a:hover{
  color:var(--cor-destaque);          /* dourado */
}

/* ---------- Media Query (mobile ≤ 768 px) -------------- */
@media (max-width:768px){
  .main-nav{ display:none; }          /* escondido até abrir */
  .menu-toggle{ display:block; }      /* hambúrguer visível */
}

/* === BOTÃO AGENDAR === */
.btn-nav {
  background-color: #b18c59;
  color: #1e1b4b;
  padding: 0.5rem 1.2rem;
  border-radius: 999px;
  font-weight: 600;
  transition: background 0.3s ease;
}

.btn-nav:hover {
  background-color: #ffffff;
  color: #1e1b4b;
}

.navbar.scrolled .btn-nav {
  background-color: #1e1b4b;
  color: #ffb703;
}

/* === HERO SLIDER === */
.hero-slider {
  position: relative;
  width: 100%;
  height: 100vh;
  overflow: hidden;
  font-family: 'Poppins', sans-serif;
}

.slider-container {
  position: relative;
  width: 100%;
  height: 100%;
}

/* Slides */
.slide {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  opacity: 0;
  background-size: cover;
  background-position: center;
  transition: opacity 1s ease-in-out;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  z-index: 0;
}

/* Slide ativo */
.slide.active {
  opacity: 1;
  z-index: 1;
}

/* Conteúdo interno */
.slide-content {
  background: rgba(0, 0, 0, 0.4); /* leve overlay escuro */
  padding: 2rem 3rem;
  border-radius: 12px;
  max-width: 800px;
}

.slide-content h1 {
  font-size: clamp(2rem, 5vw, 3.5rem);
  color: #ffffff;
  font-weight: 700;
  margin-bottom: 1rem;
}

.slide-content p {
  font-size: clamp(1rem, 2vw, 1.4rem);
  color: #f5f5f5;
  font-weight: 300;
}

/* === Navegação === */
.slider-nav {
  position: absolute;
  bottom: 30px;
  left: 50%;
  transform: translateX(-50%);
  text-align: center;
  z-index: 10;
}

.slider-nav .dot {
  display: inline-block;
  height: 12px;
  width: 12px;
  margin: 0 5px;
  background-color: rgba(255, 255, 255, 0.5);
  border-radius: 50%;
  cursor: pointer;
  transition: all 0.3s ease;
}

.slider-nav .dot.active,
.slider-nav .dot:hover {
  background-color: #d4af37; /* Dourado */
}

/* === Responsivo === */
@media (max-width: 768px){
  .hero-slider{
    height: 100svh;               /* usa “small viewport” c/ UI visível   */
    min-height: 560px;            /* garante altura mínima proporcional   */
  }
  .slide-content{
    width: 90%;                   /* evita esmagar o texto                */
    max-width: 480px;             /* limite razoável p/ smartphones       */
    padding: 1.5rem 1rem;
  }
  .slide-content h1{ font-size: 2rem; }
  .slide-content p { font-size: 1rem; }
  .slider-nav{ bottom: 20px; }    /* ligeiro ajuste p/ polegar            */
}

@media (max-width: 480px){
  .hero-slider{
    height: calc(100svh - 56px);  /* espaço p/ barra nativa no iOS/Chrome */
    min-height: 500px;
  }
  .slide-content{
    width: 92%;
    max-width: 400px;
    padding: 1.25rem .75rem;
  }
  .slide-content h1{ font-size: 1.6rem; }
  .slide-content p { font-size: .95rem; }
  .slider-nav .dot{
    height: 10px;
    width: 10px;
    margin: 0 4px;
  }
}

/* === SECÇÃO BEM-VINDO REFINADA === */
.bem-vindo-section {
  background-color: #f5f1ea;
  padding: 7rem 2rem;
  position: relative;
  overflow: hidden;
}

.container-bemvindo {
  max-width: 1280px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 5rem;
  align-items: center;
  position: relative;
  z-index: 1;
}

/* === TEXTOS === */
.bemvindo-texto h4 {
  font-size: 0.95rem;
  letter-spacing: 1.2px;
  color: #b18c59; /* dourado escuro */
  text-transform: uppercase;
  margin-bottom: 0.7rem;
}

.bemvindo-texto h2 {
  font-size: clamp(2.6rem, 6vw, 3.8rem);
  color: #111111;
  margin-bottom: 1.2rem;
  line-height: 1.2;
  font-weight: 700;
}

.bemvindo-texto .subtitulo {
  font-size: 1.2rem;
  color: #5c4b3f;
  font-style: italic;
  margin-bottom: 2rem;
  line-height: 1.5;
}

.bemvindo-texto p {
  font-size: 1.1rem;
  color: #2b2b2b;
  line-height: 1.8;
  margin-bottom: 1.4rem;
}

.bemvindo-texto .assinatura {
  font-style: italic;
  font-weight: 600;
  color: #b18c59;
  font-size: 1rem;
  margin-top: 1.2rem;
}

/* === BOTÃO === */
.btn-sobre {
  display: inline-block;
  margin: 2.5rem auto 0;
  padding: 0.95rem 2.4rem;
  background-color: var(--cor-destaque); /* usa o dourado da identidade */
  color: var(--cor-principal); /* azul escuro */
  font-weight: 600;
  font-size: 1rem;
  border-radius: 999px;
  text-decoration: none;
  transition: var(--transicao-suave);
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.12);
  text-align: center;
}

/* Efeito hover premium */
.btn-sobre:hover {
  background-color: var(--cor-principal); /* azul escuro ao hover */
  color: var(--cor-destaque);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.16);
  transform: translateY(-2px);
}

.bemvindo-texto {
  display: flex;
  flex-direction: column;
  align-items: flex-start; /* ou center se quiser tudo centralizado */
}

.btn-sobre:hover {
  background-color: #1e1b4b;
  color: #ffb703;
}

/* === IMAGEM PRINCIPAL E SOBREPOSIÇÃO === */
.bemvindo-imagem {
  position: relative;
}

.bemvindo-imagem img.main-img {
  width: 100%;
  border-radius: 1.2rem;
  box-shadow: 0 12px 24px rgba(0, 0, 0, 0.15);
  object-fit: cover;
}

.bemvindo-imagem img.overlay-img {
  position: absolute;
  bottom: -70px;
  left: -70px;
  width: 320px; /* aumentaste o tamanho */
  border-radius: 1rem;
  border: none;
  box-shadow: none;
  z-index: 2;
  transition: transform 0.3s ease;
}

.bemvindo-imagem img.overlay-img:hover {
  transform: scale(1.03);
}

/* === RESPONSIVO === */
@media (max-width: 900px) {
  .container-bemvindo {
    grid-template-columns: 1fr;
    text-align: center;
    gap: 3rem;
  }

  .bemvindo-imagem {
    margin-top: 2.5rem;
  }

  .bemvindo-imagem img.overlay-img {
    display: none;
  }

  .btn-sobre {
    margin: 1.5rem auto 0;
  }
}

/* ================== TIMELINE PREMIUM ================== */
.timeline {
  margin-top: 2rem;
  position: relative;
  padding-bottom: 2rem;
}

/* Linha horizontal fina (baixo de 992 px vira vertical) */
.timeline::before {
  content: "";
  position: absolute;
  top: 38px;
  left: 0;
  right: 0;
  height: 2px;
  background: rgba(255,255,255,0.12);
  z-index: 0;
}

/* === BASE DO MODAL (adicione antes das regras da timeline) === */
/* ========== MODAL BASE ========== */
.modal-sobre {
  position: fixed;
  inset: 0;
  display: none;                 /* JS troca para flex */
  justify-content: center;
  align-items: center;
  z-index: 1000;
  padding: 2rem;                 /* cria “safe-area” em ecrãs pequenos */
}

.modal-hero h2 { font-size: clamp(1.8rem,3vw,2.3rem); color:#dca44e; }
.modal-hero p  { margin-top:.4rem; color:#6A6A6A; }
.modal-sobre.abrir { display: flex; }

/* fundo escurecido com ligeiro blur */
.modal-overlay {
  position: absolute;
  inset: 0;
  background: rgba(10, 10, 20, 0.75);
  backdrop-filter: blur(4px);
}

/* caixa principal */
.modal-box {
  position: relative;
  max-width: 840px;
  width: 100%;
  max-height: 90vh;              /* nunca ultrapassa altura */
  overflow-y: auto;
  background: #F7F5EF;
  border-radius: 1rem;
  padding: 2.5rem 3rem;
  box-shadow: 0 14px 40px rgba(0,0,0,.55);
  color: #e8e7ef;
  scrollbar-gutter: stable;
}

/* botão fechar */
.close-modal {
  position: absolute;
  top: 1rem; right: 1rem;
  font-size: 2rem;
  line-height: 1;
  color: #dca44e;
  background: transparent;
  border: none;
  cursor: pointer;
  transition: transform .2s;
}
.close-modal:hover   { transform: scale(1.15); }
.close-modal:focus   { outline: 2px solid #dca44e; outline-offset: 2px; }

/* ===== Navegação pontos ===== */
.timeline-nav {
  display: flex;
  justify-content: center;
  gap: 1.2rem;
  position: relative;
  z-index: 2;
}

.timeline {
  margin-top: 2.5rem;
  text-align: center;
}

.timeline-nav li{
  width:52px;height:52px;
  display:grid;place-items:center;
  border-radius:50%;
  background:transparent;          /* fundo claro → transparente */
  color:#DCA44E;
  border:2px solid #DCA44E;
  font-weight:700;font-size:.8rem;
  cursor:pointer;transition:.3s;
}

.timeline-nav li:hover,
.timeline-nav li.ativo {
  background: #dca44e;
  color:#F7F5EF; 
  border-color: #fff2;
  transform: translateY(-4px);
}

/* linha fina de ligação (desktop) */
.timeline::before{
  content:"";
  position:absolute;top:28px;left:10%;right:10%;
  height:2px;background:#E4DFD3;   /* discreto */
}

@media (max-width:600px){ .timeline::before{display:none;} }

/* ===== Painéis ===== */
.timeline-panel{
  display:none;margin-top:2rem;
  background:#FFFFFF;
  border:1px solid #E4DFD3;
  border-radius:.9rem;
  padding:1.6rem 1.8rem;
  box-shadow:0 4px 18px rgba(0,0,0,.07);
  color:#2A2A2A;
  animation:fadeSlide .6s forwards;
}

.timeline-panel.ativo{display:block;}

.timeline-panel h3{color:#DCA44E;font-size:1.25rem;margin-bottom:.4rem;}

/* — TIMELINE · imagem — */
.timeline-panel img{
  display:block;                        /* remove lacunas inline */
  width:100%;
  height:auto;                          /* mantém proporção original */
  max-height:clamp(200px,46vw,320px);   /* limite responsivo */

  object-fit:contain;                   /* não corta a foto */
  object-position:center;

  /* moldura dupla, 100 % alinhada ao raio */
  border-radius:.7rem;
  /* 1) anel dourado fino (2 px)            */
  box-shadow:
    0 0 0 2px var(--gold),
    /* 2) sombra de profundidade suave      */
    0 6px 20px rgba(0,0,0,.10);

  /* espaço antes e depois da imagem */
  margin:1rem auto 1.4rem;              /* top 1 rem - bottom 1.4 rem */
}

/* opcional: se ainda gostar de um contorno bege muito discreto por dentro */
.timeline-panel img{
  border:1px solid var(--line);         /* #E4DFD3 — segue o raio .7 rem */
}

/* painel ativo ganha leve destaque extra (opcional) */
.timeline-panel.ativo{
  border-color: var(--gold);           /* sublinhar etapa aberta */
  box-shadow: 0 6px 22px rgba(0,0,0,.10);
}
.timeline-panel p { color:#6A6A6A; line-height:1.6; }

/* ===== Benefícios ===== */
.porque-escolher{ margin-top:3.2rem; }
.porque-escolher h3{
  font-size:clamp(1.5rem,3vw,2rem);
  color:#dca44e; margin-bottom:1.8rem;
}

.beneficios-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
  gap:1.3rem;
}

.beneficio{
  background:#FFFFFF;
  padding:1.8rem 1.4rem;
  border-radius:1rem;
  box-shadow:0 6px 20px rgba(0,0,0,.35);
  border:1px solid #ffffff0f;
  text-align:center;
  transition:transform .3s, box-shadow .3s, background .3s;
}
.beneficio:hover{
  background:#18143d;
  transform:translateY(-6px);
  box-shadow:0 10px 26px rgba(220,164,78,.4);
}

.beneficio i{ font-size:2.2rem; color:#dca44e; }
.beneficio h4{ color:#dca44e; margin:.9rem 0 .45rem; font-size:1.1rem; }
.beneficio p{ color:#6A6A6A; font-size:.95rem; line-height:1.5; }

/* ===== CTA no Modal ===== */
.cta-modal{
  display:block;                 /* era inline-block */
  width:max-content;             /* só ocupa o necessário */
  margin:2.8rem auto 0;          /* auto nas laterais → centra */
  background:#DCA44E; color:#1E1B4B;
  padding:.95rem 2.6rem; border-radius:60px;
  font-weight:700; text-decoration:none;
  transition:background .3s, transform .3s;
}
.cta-modal:hover{
  background:#1E1B4B; color:#F7F5EF;
  transform:translateY(-3px);
}

/* ===== Animação ===== */
@keyframes fadeSlide {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: translateY(0);   }
}

/* ===== Responsivo ===== */
@media (max-width: 992px) {
  .timeline::before { display: none; }
  .timeline-nav { flex-wrap: wrap; justify-content: center; gap: 0.6rem; }
  .timeline-nav li { font-size: 0.85rem; }
  .timeline-panel img { max-height: 220px; }
}

@media (max-width: 576px) {
  .timeline-panel img { max-height: 180px; }
  .beneficio { flex: 1 1 100%; }
}

/* ========== SCROLLBAR (opcional) ========== */
.modal-box::-webkit-scrollbar{ width:8px; }
.modal-box::-webkit-scrollbar-thumb{
  background:#dca44e; border-radius:8px;
}

/* ================= SLIDER PREMIUM ================= */
.destaque-slider-section {
  background: #f5f1ea;
  padding: 6rem 1.5rem;
  position: relative;
  overflow: hidden;
  border-top: 1px solid #e0d7c9;
}

.servico-tag {
  display: inline-block;
  font-size: 0.85rem;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: #d4af37;
  background: rgba(0, 0, 0, 0.4);
  padding: 0.3rem 0.7rem;
  border-radius: 6px;
  margin-bottom: 1rem;
}

/* Garante altura mínima para não colapsar */
.container-slider {
  max-width: 1280px;
  margin: 0 auto;
  position: relative;
  height: 600px;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* === Slides === */
.servico-slide {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
  border-radius: var(--radius, 12px);
  box-shadow: 0 14px 28px rgba(0, 0, 0, 0.12);
  opacity: 0;
  transition: opacity 0.8s ease-in-out, transform 0.8s ease;
  transform: scale(1.01);
  z-index: 0;
}

.servico-slide.active {
  opacity: 1;
  transform: scale(1.02);
  z-index: 1;
}

/* === Overlay de Conteúdo === */
.servico-overlay {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background: rgba(20, 20, 20, 0.4);
  border: 1px solid rgba(255, 255, 255, 0.08);
  backdrop-filter: blur(4px);
  padding: 3rem 2rem;
  border-radius: var(--radius, 12px);
  max-width: 580px;
  width: 90%;
  color: #fff;
  backdrop-filter: blur(10px);
  text-align: center;
  box-shadow: 0 14px 28px rgba(0, 0, 0, 0.25);
  border: 1px solid rgba(255, 255, 255, 0.1);
}

.servico-overlay h3 {
  font-size: clamp(2.2rem, 5vw, 2.8rem);
  color: #d4af37;
  text-transform: uppercase;
  letter-spacing: 1px;
  font-weight: 700;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.6);
}

.servico-overlay p {
  font-size: 1.15rem;
  color: #eaeaea;
  margin-top: 1rem;
  line-height: 1.7;
  font-weight: 300;
  max-width: 480px;
  margin-inline: auto;
}

.selo-confianca {
  font-size: 0.95rem;
  font-weight: 500;
  color: #fff;
  background: rgba(212, 175, 55, 0.2);
  padding: 0.4rem 0.8rem;
  border-radius: 12px;
  margin-bottom: 1rem;
  display: inline-block;
}

/* === Botões de navegação === */
.slider-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background-color: rgba(20, 18, 50, 0.7);
  border: none;
  color: #fff;
  font-size: 2rem;
  padding: 0.5rem 1rem;
  cursor: pointer;
  border-radius: 999px;
  z-index: 3;
  transition: background 0.3s ease, color 0.3s ease;
}

.slider-btn:hover {
  background-color: #d4af37;
  color: #141232;
}

.slider-btn.prev {
  left: 20px;
}

.slider-btn.next {
  right: 20px;
}

/* === Dots === */
.slider-dots {
  position: absolute;           
  bottom: 30px;                 
  left: 50%;                    
  transform: translateX(-50%);  
  z-index: 4;
  text-align: center;
  width: 100%;                  
}

.slider-dots .dot {
  display: inline-block;
  width: 14px;
  height: 14px;
  margin: 0 8px;
  background-color: #d5cbb0;
  border-radius: 50%;
  cursor: pointer;
  transition: transform 0.2s ease, background 0.3s ease;
  box-shadow: 0 0 4px rgba(0, 0, 0, 0.15);
}

.slider-dots .dot.active,
.slider-dots .dot:hover {
  background-color: #d4af37;
  transform: scale(1.2);
}

/* === Responsivo === */
@media (max-width: 768px) {
  .container-slider {
    height: 460px;
  }

  .servico-overlay {
    padding: 2rem 1.5rem;
  }

  .slider-btn {
    font-size: 1.6rem;
    padding: 0.4rem 0.8rem;
  }
}

@media (max-width: 480px) {
  .servico-overlay h3 {
    font-size: 1.6rem;
  }

  .servico-overlay p {
    font-size: 1rem;
  }
}

/* =================== SEÇÃO SERVIÇOS =================== */
.secao-servicos {
  padding: 5rem 1.5rem;
  background-color: var(--cor-fundo-secao);
  font-family: var(--font-base);
  position: relative;
  overflow: hidden;
}

.container-servicos {
  max-width: 1280px;
  margin: 0 auto;
}

/* HEADER */
.servicos-header {
  text-align: center;
  margin-bottom: 3.5rem;
  position: relative;
}

.servicos-header .tagline {
  font-size: 1rem;
  color: var(--cor-texto);
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 1px;
  margin-bottom: 0.8rem;
  opacity: 0.8;
}

.servicos-header .titulo-servicos {
  font-size: 2.4rem;
  font-weight: 700;
  color: var(--cor-principal);
  line-height: 1.2;
}

.decoracao-imagens-servicos {
  position: relative;
  display: flex;
  justify-content: flex-start; /* ou center / flex-end conforme alinhamento desejado */
  padding: 2rem 0;
}

.secao-com-imagem {
  display: flex;
  align-items: center;
  gap: 2rem;
  padding: 2rem 0; /* antes era 4rem 2rem */
  background-color: transparent; /* Removido fundo duplicado */
  flex-wrap: wrap;
}

.decoracao-imagens-servicos {
  flex: 0 0 auto;
}

.img-esquerda {
  max-width: 160px;
  height: auto;
  opacity: 0.9;
  filter: drop-shadow(0 6px 12px rgba(0, 0, 0, 0.2));
  transition: transform 0.3s ease;
}

.img-esquerda:hover {
  transform: scale(1.05);
}

.conteudo-principal {
  flex: 1 1 60%;
  color: var(--cor-texto);
}

/* negrito + dourado */
.alt{
  font-weight: 700;          /* negrito                 */
  color: #d4af37;            /* dourado (AIVY)          */
}

@media (max-width: 768px) {
  .secao-com-imagem {
    flex-direction: column;
    align-items: flex-start;
  }

  .img-esquerda {
    margin-bottom: 1.5rem;
  }
}

/* =================== TABS =================== */
.tabs-servicos {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 1rem;
  margin-bottom: 2.5rem;
}

.tab-btn {
  background-color: transparent;
  border: 2px solid var(--cor-destaque);
  color: var(--cor-destaque);
  padding: 0.6rem 1.4rem;
  font-size: 0.95rem;
  font-weight: 500;
  border-radius: var(--radius);
  cursor: pointer;
  transition: var(--transicao-suave);
}

.tab-btn.active,
.tab-btn:hover {
  background-color: var(--cor-destaque);
  color: #fff;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

/* =================== LISTA DE SERVIÇOS =================== */
.conteudo-servicos {
  width: 100%;
}

.tab-conteudo      { display:none; }
.tab-conteudo.active { display:block; }

.tab-btn.active{
  background:var(--gold);   /* ou a cor que usar */
  color:var(--paper);
}

/* SERVIÇO */
.lista-servicos {
  list-style: none;
  padding: 0;
  margin: 0;
  display:grid !important;
  grid-template-columns:repeat(2, minmax(0,1fr)); /* 2 colunas fixas */
  gap:2rem;
}

@media(max-width:768px){
  .lista-servicos{
    grid-template-columns:1fr;   /* uma coluna em mobile */
  }
}

.item-servico {
  background-color: #fff;
  border-left: 4px solid var(--cor-destaque);
  border-radius: var(--radius);
  padding: 1.8rem 1.5rem;
  box-shadow: var(--sombra-suave);
  display: flex;
  width:auto;
  flex-direction: column;
  gap: 1rem;
  transition: var(--transicao-suave);
   box-sizing:border-box;
}

.item-servico:hover {
  box-shadow: var(--sombra-intensa);
  transform: translateY(-5px);
}

/* TÍTULO E PREÇO */
.info-servico {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
}

.info-servico .descricao-bloco {
  flex: 1;
}

.descricao-bloco h4 {
  font-size: 1.15rem;
  color: var(--cor-principal);
  margin: 0 0 0.3rem;
  font-weight: 600;
}

.preco-servico {
  font-size: 1.15rem;
  font-weight: 600;
  color: var(--cor-destaque);
  margin-top: 0.1rem;
  white-space: nowrap;
}

/* DESCRIÇÃO */
.descricao-bloco p {
  font-size: 0.95rem;
  color: var(--cor-texto);
  margin: 0;
  line-height: 1.4;
}

.item-servico h4::before {
  content: "✂️";
  margin-right: 0.5rem;
  color: var(--cor-destaque);
  font-size: 0.95rem;
}

.item-servico::after {
  content: "";
  display: block;
  margin-top: 1rem;
  width: 100%;
  height: 1px;
  background-image: repeating-linear-gradient(
    to right,
    var(--cor-destaque),
    var(--cor-destaque) 5px,
    transparent 5px,
    transparent 10px
  );
  opacity: 0.3;
}

/* =================== IMAGENS =================== */
.imagens-produtos {
  display: flex;
  justify-content: space-between;
  margin-top: 3.5rem;
  gap: 2.5rem;
  flex-wrap: wrap;
  position: relative;
}

.imagens-produtos img:first-child {
  position: absolute;
  top: -2rem;
  left: -2rem;
  max-width: 140px;
}

.imagens-produtos img:last-child {
  position: absolute;
  bottom: -2rem;
  right: -2rem;
  max-width: 140px;
}

.imagens-produtos img {
  border-radius: var(--radius);
  box-shadow: var(--sombra-intensa);
}

/* =================== ANIMAÇÕES =================== */
@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* =================== RESPONSIVO =================== */
@media (max-width: 992px) {
  .tab-conteudo.active {
    grid-template-columns: 1fr;
  }
  .imagens-produtos img:first-child,
  .imagens-produtos img:last-child {
    position: static;
    max-width: 100px;
  }
}

@media (max-width: 768px) {
  .info-servico {
    flex-direction: column;
    align-items: flex-start;
  }
  .preco-servico {
    align-self: flex-end;
  }
}

/* === SECÇÃO EQUIPA === */
.equipa-section {
  background-color: var(--cor-fundo);
  padding: 6rem 1rem;
  font-family: var(--font-base);
}

.container-equipa {
  max-width: 1280px;
  margin: 0 auto;
  text-align: center;
}

.equipa-header .tagline {
  font-size: 1rem;
  color: var(--cor-destaque);
  text-transform: uppercase;
  letter-spacing: 1px;
  margin-bottom: 0.5rem;
}

.equipa-header h2 {
  font-size: 2.4rem;
  color: var(--cor-principal);
  margin-bottom: 3rem;
}

/* === GRID DE MEMBROS === */
.equipa-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 2rem;
  justify-items: center;
}

/* === CARD DE MEMBRO === */
.membro-equipa {
  background-color: var(--cor-fundo-secao);
  border-radius: var(--radius);
  box-shadow: var(--sombra-suave);
  overflow: hidden;
  transition: transform 0.3s ease;
  max-width: 320px;
  width: 100%;
  position: relative;
}

.membro-equipa:hover {
  transform: translateY(-5px);
  box-shadow: var(--sombra-intensa);
}

.membro-imagem {
  position: relative;
  overflow: hidden;
  border-radius: var(--radius);
}

.membro-imagem img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
}

/* Botão + no canto da imagem */
.btn-plus {
  position: absolute;
  bottom: 12px;
  right: 12px;
  background-color: var(--cor-destaque);
  color: var(--cor-principal);
  border: none;
  border-radius: 50%;
  width: 36px;
  height: 36px;
  font-size: 1.2rem;
  cursor: pointer;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.3s ease;
}

.btn-plus:hover {
  background-color: var(--cor-principal);
  color: #fff;
}

/* Info Membro */
.membro-info {
  padding: 1.5rem;
}

.membro-info h3 {
  font-size: 1.3rem;
  color: var(--cor-principal);
  margin-bottom: 0.4rem;
}

.membro-info .cargo {
  font-size: 1rem;
  color: var(--cor-texto);
  margin-bottom: 1rem;
}

.btn-modal-agendar {
  background-color: var(--cor-destaque);
  color: var(--cor-principal);
  padding: 0.5rem 1.2rem;
  font-weight: 600;
  border-radius: 999px;
  text-decoration: none;
  display: inline-block;
  transition: background 0.3s ease, color 0.3s ease;
}

.btn-modal-agendar:hover {
  background-color: var(--cor-principal);
  color: var(--cor-destaque);
}

/* === MODAL === */
.modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background: rgba(0, 0, 0, 0.6);
  display: none;
  justify-content: center;
  align-items: center;
  z-index: 2000;
}

.modal.abrir {
  display: flex;
}

.modal-content {
  background-color: #fff;
  padding: 2rem;
  border-radius: var(--radius);
  max-width: 500px;
  width: 90%;
  text-align: left;
  position: relative;
  box-shadow: var(--sombra-intensa);
}

.modal-content h3 {
  margin-top: 0;
  color: var(--cor-principal);
  font-size: 1.5rem;
}

.modal-content p {
  font-size: 1rem;
  color: var(--cor-texto);
  margin-top: 1rem;
  line-height: 1.5;
}

.modal-close {
  position: absolute;
  top: 1rem;
  right: 1rem;
  font-size: 1.5rem;
  color: var(--cor-principal);
  cursor: pointer;
}

.modal-close:hover {
  color: var(--cor-destaque);
}

/* Redes Sociais */
.modal-socials {
  margin-top: 1.5rem;
  display: flex;
  gap: 1.2rem;
}

.modal-socials a {
  font-size: 1.5rem;
  color: var(--cor-destaque);
  transition: color 0.3s ease;
}

.modal-socials a:hover {
  color: var(--cor-principal);
}

/* === RESPONSIVO === */
@media (max-width: 768px) {
  .container-equipa h2 {
    font-size: 2rem;
  }

  .membro-info h3 {
    font-size: 1.1rem;
  }

  .btn-plus {
    width: 32px;
    height: 32px;
    font-size: 1rem;
  }
}

/* ========== GALERIA COM BRILHO PREMIUM ========== */
.galeria-section {
  background-color: var(--cor-fundo);
  padding: 6rem 1rem;
  font-family: var(--font-base);
}

.container-galeria {
  max-width: 1280px;
  margin: 0 auto;
  text-align: center;
}

.titulo-galeria {
  font-size: 2.2rem;
  color: var(--cor-principal);
  margin-bottom: 3rem;
}

/* Slider envolvente */
.galeria-slider-wrapper {
  position: relative;
  overflow: hidden;
  padding: 0 3rem;
  touch-action: pan-y;
}

/* Slider horizontal */
.galeria-slider {
  display: flex;
  gap: 1rem;
  overflow-x: auto;
  scroll-behavior: smooth;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-x;
}

.galeria-slider::-webkit-scrollbar {
  display: none;
}

/* Itens da galeria com moldura e brilho */
.galeria-item {
  min-width: calc((100% - 4rem) / 5);
  height: 220px;
  flex-shrink: 0;
  border-radius: 1rem;
  overflow: hidden;
  position: relative;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  box-shadow: 0 4px 20px rgba(255, 255, 255, 0.05);
  border: 2px solid rgba(255, 255, 255, 0.1);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  transform: translate3d(0, 0, 0); /* força renderização no iOS */
}

/* Classes com imagens de fundo */
.gal1 { background-image: url('../img/gallery/gal1.jpg'); }
.gal2 { background-image: url('../img/gallery/gal2.jpg'); }
.gal3 { background-image: url('../img/gallery/gal3.jpg'); }
.gal4 { background-image: url('../img/gallery/gal4.jpg'); }
.gal5 { background-image: url('../img/gallery/gal5.jpg'); }
.gal6 { background-image: url('../img/gallery/gal6.jpg'); }
.gal7 { background-image: url('../img/gallery/gal7.jpg'); }

.galeria-item:hover {
  transform: scale(1.03);
  box-shadow: 0 8px 40px rgba(255, 255, 255, 0.15);
}

/* Brilho decorativo */
.galeria-item::before,
.galeria-item::after {
  content: "";
  position: absolute;
  pointer-events: none;
  border-radius: inherit;
}

.galeria-item::before {
  top: -50%;
  left: -50%;
  width: 200%;
  height: 200%;
  background: radial-gradient(circle at center, rgba(255, 255, 255, 0.05), transparent 70%);
  transform: rotate(25deg);
  z-index: 1;
}

.galeria-item::after {
  bottom: 0;
  left: 0;
  width: 100%;
  height: 30%;
  background: linear-gradient(to top, rgba(255, 255, 255, 0.05), transparent);
  z-index: 1;
}

/* Botões */
.galeria-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background-color: var(--cor-destaque);
  color: var(--cor-principal);
  border: none;
  border-radius: 50%;
  width: 42px;
  height: 42px;
  font-size: 1.2rem;
  cursor: pointer;
  z-index: 10;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.3);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.3s ease;
}

.galeria-btn:hover {
  background-color: var(--cor-principal);
  color: #fff;
}

.galeria-btn-prev {
  left: 0.5rem;
}

.galeria-btn-next {
  right: 0.5rem;
}

/* ========== LIGHTBOX ========== */
.lightbox {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.85);
  display: none;
  justify-content: center;
  align-items: center;
  z-index: 3000;
}

.lightbox.active {
  display: flex;
}

.lightbox-content {
  position: relative;
  max-width: 90%;
  max-height: 90vh;
  padding: 1rem;
  background: #000;
  border-radius: var(--radius);
  box-shadow: 0 0 20px rgba(255, 255, 255, 0.1);
}

.lightbox-content img {
  max-width: 100%;
  max-height: 80vh;
  object-fit: contain;
  border-radius: var(--radius);
  display: block;
}

/* Fechar e Navegar */
.lightbox-close,
.lightbox-prev,
.lightbox-next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  font-size: 2.4rem;
  color: #fff;
  background: rgba(255, 255, 255, 0.1);
  border: none;
  border-radius: 50%;
  width: 48px;
  height: 48px;
  cursor: pointer;
  transition: background 0.3s ease;
  z-index: 10;
}

.lightbox-close {
  top: 1rem;
  right: 1rem;
  transform: none;
}

.lightbox-prev {
  left: -3rem;
}

.lightbox-next {
  right: -3rem;
}

.lightbox-close:hover,
.lightbox-prev:hover,
.lightbox-next:hover {
  background: rgba(255, 255, 255, 0.3);
}

/* Responsividade */
@media (max-width: 1024px) {
  .galeria-item {
    min-width: calc((100% - 2rem) / 3);
  }
}

@media (max-width: 768px) {
  .galeria-item {
    min-width: calc((100% - 1rem) / 2);
  }
}

@media (max-width: 480px) {
  .galeria-item {
    min-width: 100%;
    height: 200px;
  }
}

/* ---------- CTA FINAL (versão clara) ---------- */
.cta-final{
  background: linear-gradient(135deg, #F7F5EF 0%, #ECE6D9 100%);
  color: var(--ink-body,#2A2A2A);
  text-align:center;
  padding:5rem 2rem 6rem;
  position:relative; overflow:hidden;
  font-family:var(--font-base,"Inter",sans-serif);
}

/* halos decorativos – dourado suave e brilho branco */
.cta-final::before,
.cta-final::after{
  content:""; position:absolute; z-index:0;
  width:300px; height:300px; border-radius:50%;
  filter:blur(45px);
}
.cta-final::before{
  top:-80px; left:-80px;
  background:radial-gradient(circle,
              rgba(220,164,78,.28) 0%, transparent 70%);
}
.cta-final::after{
  bottom:-80px; right:-80px;
  background:radial-gradient(circle,
              rgba(255,255,255,.40) 0%, transparent 75%);
}

.cta-final h2{
  position:relative; z-index:1;
  font-size:clamp(2rem,4.5vw,2.6rem);
  font-weight:700;
  color:var(--gold,#DCA44E);
  margin-bottom:1rem;
}

.cta-final p{
  position:relative; z-index:1;
  font-size:1.15rem; max-width:640px;
  margin:0 auto 2.8rem;
  color:var(--ink-sub,#4B4B4B);
}

/* Botão */
.cta-botao{
  position:relative; z-index:1;
  display:inline-block;
  padding:1rem 2.6rem;
  border-radius:50px;
  font-weight:700; font-size:1rem;
  background:var(--gold,#DCA44E); color:#0F1B2B;
  text-decoration:none;
  transition:background .3s, transform .3s, box-shadow .3s;
}
.cta-botao:hover{
  background:#FFF; color:#0F1B2B;
  transform:translateY(-3px);
  box-shadow:0 0 18px rgba(220,164,78,.35);
}

/* --- Responsivo --- */
@media (max-width:768px){
  .cta-final{ padding:4rem 1.5rem 5rem; }
  .cta-final p{ font-size:1.05rem; }
}

.secao-mapa {
  background: #fdfcf9;
  padding: 5rem 2rem;
  font-family: var(--font-base);
}

.container-mapa {
  display: flex;
  flex-wrap: wrap;
  gap: 3rem;
  max-width: 1200px;
  margin: 0 auto;
  align-items: center;
  justify-content: space-between;
}

.mapa-info {
  flex: 1 1 320px;
}

.mapa-info h2 {
  font-size: 2rem;
  color: var(--gold, #dca44e);
  margin-bottom: 0.8rem;
}

.mapa-info p {
  font-size: 1rem;
  color: #444;
  margin-bottom: 2rem;
}

.horario h3 {
  font-size: 1.2rem;
  margin-bottom: 1rem;
  color: #222;
}

.horario ul {
  list-style: none;
  padding: 0;
  font-size: 1rem;
}

.horario li {
  margin-bottom: 0.6rem;
  color: #333;
}

.horario span {
  font-weight: 600;
  color: #111;
}

.mapa-embed {
  flex: 1 1 480px;
  min-height: 320px;
  border-radius: 1rem;
  overflow: hidden;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.08);
  position:relative;
}

.map-overlay {
  position: absolute;
  inset: 0;                 /* cobre 100 % do iframe */
  text-indent: -9999px;     /* invisível para o utilizador */
  cursor: pointer;
}

.footer{
  background:linear-gradient(135deg, #f4efe9 0%, #f7e6c6 100%);
  padding: 5rem 2rem 0;
  font-family: var(--font-base, "Poppins", sans-serif);
  color: var(--cor-texto);
}

/* ---------- Grid de colunas ---------- */
.footer-container{
  max-width: 1200px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 2.5rem;
}

/* ---------- Cabeçalhos & listas ---------- */
.footer-col h4{
  font-size: 1.1rem;
  color: var(--cor-destaque);
  margin-bottom: 1.2rem;
}

.footer-list{
  list-style: none;
  padding: 0;
  margin: 0;
  font-size: .95rem;
}
.footer-list li{ margin-bottom: .65rem; }

.footer-list a{
  color: var(--cor-texto);
  text-decoration: none;
  transition: var(--transicao-suave);
}
.footer-list a:hover{ color: var(--cor-destaque); }

.footer-logo{ width: 140px; margin-bottom: .9rem; }

.footer-frase{
  max-width: 240px;
  font-size: .95rem;
  color: var(--cor-texto);
  opacity: .82;
}

/* ---------- Social icons ---------- */
.social-links{
  display: flex;
  gap: .75rem;
}
.social-links a{
  display: inline-grid;
  place-items: center;
  width: 40px; height: 40px;
  background: var(--cor-fundo);
  border-radius: 50%;
  box-shadow: var(--sombra-suave);
  transition: var(--transicao-suave);
}
.social-links a img{ width: 20px; height: 20px; }
.social-links a:hover{
  transform: translateY(-4px);
  box-shadow: var(--sombra-intensa);
}

/* ---------- Barra inferior ---------- */
.footer-bottom{
  margin-top: 3rem;
  padding: 1.4rem 0 3rem;
  border-top: 1px solid var(--line, #e4dfd3);
  display: flex;
  flex-direction: column;          /* empilha */
  align-items: center;
  text-align: center;
  gap: .7rem;
}

.footer-bottom p{
  margin: 0;
  color: var(--cor-texto);
  opacity: .75;
}

/* ---------- Links legais ------------- */
.legal-links{
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1.2rem .8rem;
  margin: .3rem 0 0;
  padding: 0;
}

.legal-links a{
  color: var(--cor-texto);
  text-decoration: none;
  transition: var(--transicao-suave);
}
.legal-links a:hover{ color: var(--cor-destaque); }

/* “BY AIVY” numa linha própria para destaque */
.legal-links li:last-child{
  width: 100%;
  margin-top: .4rem;
}
.legal-links li:last-child a{
  font-weight: 600;
  letter-spacing: .3px;
}

/* ---------- Halo dourado nos links ---------- */
.footer-col a:not(.social-links a){
  position: relative;
}
.footer-col a:not(.social-links a)::after{
  content:"";
  position:absolute; inset:0;
  border-radius: calc(var(--radius) / 2);
  box-shadow: 0 0 0 0 rgba(220,164,78,.35);
  opacity: 0;
  transition: var(--transicao-suave);
}
.footer-col a:not(.social-links a):hover::after{
  box-shadow: 0 0 14px 4px rgba(220,164,78,.25);
  opacity: 1;
}

/* ---------- Responsivo extra ---------- */
@media (min-width: 601px){
  .legal-links li:last-child{ width: auto; margin-top: 0; }
}