/* ==========================================================
   Muvula — ajustes ao template Arsha para o conteúdo dinâmico
   ========================================================== */

.header .logo img { max-height: 42px; margin-right: 8px; }

/* Conteúdo vindo do editor (blog, serviços, páginas) */
.rich-content img { max-width: 100%; height: auto; border-radius: 8px; margin: 10px 0; }
.rich-content h2, .rich-content h3 { margin-top: 1.5rem; }
.rich-content blockquote { border-left: 4px solid var(--accent-color); padding: 12px 20px; margin: 20px 0; background: color-mix(in srgb, var(--accent-color), transparent 92%); font-style: italic; }
.rich-content .ql-align-center { text-align: center; }
.rich-content .ql-align-right { text-align: right; }
.rich-content .ql-align-justify { text-align: justify; }
.rich-content iframe, .rich-content .ql-video { width: 100%; aspect-ratio: 16/9; border: 0; border-radius: 8px; }
.service-details .rich-content ul { list-style: none; padding: 0; }
.service-details .rich-content ul li { padding: 5px 0; display: flex; align-items: center; }
.service-details .rich-content ul li::before { content: "\F26A"; font-family: "bootstrap-icons"; color: var(--accent-color); margin-right: 8px; font-size: 18px; }

/* Formulário de comentários com mensagens AJAX */
.blog-comment-form .php-email-form { background: transparent; padding: 0; box-shadow: none; }
.blog-comment-form .loading, .blog-comment-form .error-message, .blog-comment-form .sent-message { margin-bottom: 15px; }
.blog-comment-form .reply-info { font-size: 14px; margin-top: 8px; }

/* Newsletter / subscribe */
.subscribe .php-email-form { background: transparent; box-shadow: none; padding: 0; }

.portfolio-details .portfolio-info ul li a { color: var(--accent-color); }
.blog-posts article .post-img img { width: 100%; aspect-ratio: 16/10; object-fit: cover; }

/* Avatar de iniciais nos comentários (sem dependências externas) */
.blog-comments .avatar-wrapper .comment-initials { display: flex; align-items: center; justify-content: center; width: 50px; height: 50px; border-radius: 15px; background: color-mix(in srgb, var(--accent-color), transparent 85%); color: var(--accent-color); font-weight: 700; font-size: 20px; border: 3px solid var(--surface-color); box-shadow: 0 3px 15px rgba(0, 0, 0, 0.05); }
@media (min-width: 768px) { .blog-comments .avatar-wrapper .comment-initials { width: 70px; height: 70px; font-size: 26px; } }

/* Botão "Entrar" / "Painel" no cabeçalho */
.header .btn-login,
.header .btn-login:focus {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--nav-color, #fff);
  border: 1px solid color-mix(in srgb, var(--nav-color, #fff), transparent 60%);
  font-size: 14px;
  padding: 7px 18px;
  margin: 0 0 0 12px;
  border-radius: 50px;
  transition: 0.3s;
  white-space: nowrap;
}
.header .btn-login i { font-size: 16px; line-height: 1; }
.header .btn-login:hover {
  color: var(--contrast-color, #fff);
  background: var(--accent-color);
  border-color: var(--accent-color);
}
@media (max-width: 1200px) {
  .header .btn-login { order: 2; margin: 0 15px 0 0; padding: 6px 12px; }
}
@media (max-width: 575px) {
  .header .btn-login span { display: none; }
  .header .btn-login { padding: 6px 10px; }
}

/* Botão "Ver todos" nas secções resumidas da página inicial */
.btn-ver-todos { display: inline-flex; align-items: center; gap: 8px; padding: 10px 28px; border-radius: 50px; border: 2px solid var(--accent-color); color: var(--accent-color); font-weight: 500; transition: .3s; }
.btn-ver-todos:hover { background: var(--accent-color); color: var(--contrast-color, #fff); }
.page-intro .lead { color: color-mix(in srgb, var(--default-color), transparent 20%); font-size: 1.1rem; }

/* ==========================================================
   Botões flutuantes (WhatsApp e redes sociais)
   ========================================================== */
.flutuantes { position: fixed; bottom: 70px; z-index: 9990; display: flex; flex-direction: column; align-items: center; gap: 10px; }
.flutuantes-direita { right: 16px; }
.flutuantes-esquerda { left: 16px; bottom: 18px; }
.flutuante { position: relative; width: 50px; height: 50px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: var(--cor, #25D366); color: #fff !important; font-size: 23px; box-shadow: 0 6px 16px rgba(0,0,0,.2); transition: transform .2s ease, box-shadow .2s ease; border: 0; text-decoration: none; }
.flutuante:hover, .flutuante:focus-visible { transform: scale(1.08); box-shadow: 0 8px 22px rgba(0,0,0,.28); outline: none; }
.flutuante::after { content: attr(data-rotulo); position: absolute; top: 50%; transform: translateY(-50%); white-space: nowrap; background: #1f2937; color: #fff; font-size: 12px; font-weight: 500; padding: 5px 10px; border-radius: 6px; opacity: 0; pointer-events: none; transition: opacity .2s; }
.flutuantes-direita .flutuante::after { right: 60px; }
.flutuantes-esquerda .flutuante::after { left: 60px; }
.flutuante:hover::after, .flutuante:focus-visible::after { opacity: 1; }
.flutuante-principal { --cor: var(--accent-color); cursor: pointer; }
.flutuante-principal::after { display: none; }
.flutuante-principal .icone-fechar, .flutuantes.aberto .flutuante-principal .icone-abrir { display: none; }
.flutuantes.aberto .flutuante-principal .icone-fechar { display: inline; }
.flutuantes-menu .flutuantes-lista { display: flex; flex-direction: column; gap: 10px; opacity: 0; visibility: hidden; transform: translateY(12px); transition: all .25s ease; }
.flutuantes-menu.aberto .flutuantes-lista { opacity: 1; visibility: visible; transform: none; }
.flutuante.pulsar::before { content: ""; position: absolute; inset: 0; border-radius: 50%; background: var(--cor); z-index: -1; animation: fl-pulsar 2s ease-out infinite; }
@keyframes fl-pulsar { 0% { transform: scale(1); opacity: .6; } 100% { transform: scale(1.7); opacity: 0; } }
.flutuante-balao { position: absolute; bottom: 4px; width: 230px; background: #fff; color: #1f2937; border-radius: 12px; padding: 12px 30px 12px 14px; box-shadow: 0 10px 30px rgba(0,0,0,.18); font-size: 13.5px; line-height: 1.4; opacity: 0; visibility: hidden; transform: translateY(8px); transition: all .3s ease; }
.flutuantes-direita .flutuante-balao { right: 62px; }
.flutuantes-esquerda .flutuante-balao { left: 62px; }
.flutuante-balao.visivel { opacity: 1; visibility: visible; transform: none; }
.flutuante-balao a { color: #1f2937; text-decoration: none; display: block; }
.flutuante-balao a i { color: #25D366; }
.flutuante-balao .fechar { position: absolute; top: 4px; right: 6px; border: 0; background: none; font-size: 18px; line-height: 1; color: #9ca3af; cursor: pointer; }
@media (max-width: 575px) {
  .flutuantes-sem-mobile { display: none; }
  .flutuante { width: 46px; height: 46px; font-size: 21px; }
  .flutuante::after { display: none; }
  .flutuante-balao { width: 190px; }
}
@media (prefers-reduced-motion: reduce) { .flutuante.pulsar::before { animation: none; } }

/* ==========================================================
   Banner de cookies
   ========================================================== */
.cookie-banner { position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 9995; max-width: 760px; margin: 0 auto; background: #fff; color: #1f2937; border-radius: 14px; box-shadow: 0 16px 40px rgba(0,0,0,.2); padding: 16px 18px; display: flex; align-items: center; gap: 16px; flex-wrap: wrap; transition: opacity .3s, transform .3s; }
.cookie-banner[hidden] { display: none; }
.cookie-banner.saindo { opacity: 0; transform: translateY(12px); }
.cookie-texto { display: flex; gap: 12px; align-items: flex-start; flex: 1 1 360px; }
.cookie-texto i { font-size: 26px; color: var(--accent-color); }
.cookie-texto p { margin: 0; font-size: 14px; line-height: 1.5; }
.cookie-texto a { color: var(--accent-color); text-decoration: underline; }
.cookie-botoes { display: flex; gap: 8px; }
.cookie-botoes button { border-radius: 50px; padding: 8px 20px; font-size: 14px; font-weight: 500; cursor: pointer; border: 1px solid var(--accent-color); }
.cookie-aceitar { background: var(--accent-color); color: #fff; }
.cookie-recusar { background: #fff; color: var(--accent-color); }

/* ---------- SweetAlert2 no website ---------- */
.swal2-container { z-index: 100500 !important; }
.swal2-popup { font-family: var(--default-font, "Open Sans"), system-ui, sans-serif !important; border-radius: 14px !important; }
.swal2-title { font-family: var(--heading-font, "Jost"), sans-serif !important; }
.swal2-styled.swal2-confirm { border-radius: 50px !important; padding: .6em 2em !important; }

/* =========================================================
   Cabeçalho com cor própria (Definições → Geral)
   ========================================================= */
.header { transition: background .4s, box-shadow .4s; }
.header.header-linha { border-bottom: 3px solid var(--accent-color); }
.header .navmenu a:hover, .header .navmenu .active { color: #fff; }
.header .navmenu .active::after, .header .navmenu a:hover::after { background: var(--accent-color); }

/* =========================================================
   Secção principal (hero) — alturas
   ========================================================= */
.hero.hero-compacta { min-height: 0; padding: 130px 0 60px; }
.hero.hero-compacta h1 { font-size: 40px; line-height: 1.2; }
.hero.hero-compacta p { font-size: 19px; }
.hero.hero-compacta .hero-img img { max-height: 340px; width: auto; margin: 0 auto; display: block; }
.hero.hero-media { min-height: 62vh; padding: 130px 0 60px; }
.hero.hero-media .hero-img img { max-height: 420px; width: auto; margin: 0 auto; display: block; }
.hero.hero-grande { min-height: 80vh; }
@media (max-width: 991px) {
  .hero.hero-compacta, .hero.hero-media { padding: 110px 0 40px; }
  .hero.hero-compacta h1 { font-size: 30px; }
  .hero.hero-compacta .hero-img img { max-height: 240px; }
}

/* =========================================================
   Carrossel de apresentação
   ========================================================= */
.carrossel-hero { position: relative; background: #0b1b33; color: #fff; overflow: hidden; padding: 0 !important; }
.carrossel-hero .swiper, .carrossel-hero .swiper-wrapper, .carrossel-hero .swiper-slide { height: 100%; }
.carrossel-pequena { height: 480px; }
.carrossel-media { height: 640px; }
.carrossel-grande { height: min(820px, 92vh); min-height: 600px; }
.carrossel-ecra { height: 100vh; height: 100svh; min-height: 600px; }
.carrossel-hero .swiper-slide { position: relative; display: flex; align-items: center; overflow: hidden; background: #0b1b33; }
.carrossel-hero .ch-fundo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transform: scale(1.06); transition: transform 7s ease; }
.carrossel-hero .swiper-slide-active .ch-fundo { transform: scale(1); }
.carrossel-hero .ch-escurecer { position: absolute; inset: 0; background: linear-gradient(90deg, #06142b 0%, rgba(6, 20, 43, .75) 55%, rgba(6, 20, 43, .35) 100%); }
.carrossel-hero .ch-conteudo { position: relative; z-index: 2; padding-top: 70px; display: flex; }
.carrossel-hero .ch-texto { max-width: 640px; }
.carrossel-hero .ch-centro { justify-content: center; text-align: center; }
.carrossel-hero .ch-centro .ch-botoes { justify-content: center; }
.carrossel-hero .ch-direita { justify-content: flex-end; text-align: right; }
.carrossel-hero .ch-direita .ch-botoes { justify-content: flex-end; }
.carrossel-hero .ch-etiqueta { display: inline-block; padding: 6px 14px; border-radius: 50px; background: color-mix(in srgb, var(--accent-color), transparent 75%); border: 1px solid color-mix(in srgb, var(--accent-color), transparent 40%); color: #fff; font-size: 13px; font-weight: 600; letter-spacing: .6px; text-transform: uppercase; margin-bottom: 16px; }
.carrossel-hero .ch-titulo { font-size: 46px; line-height: 1.15; font-weight: 700; color: #fff; margin: 0 0 14px; text-shadow: 0 2px 18px rgba(0,0,0,.25); }
.carrossel-hero .ch-sub { font-size: 18px; line-height: 1.6; color: rgba(255,255,255,.88); margin: 0 0 26px; }
.carrossel-hero .ch-botoes { display: flex; flex-wrap: wrap; gap: 12px; }
.carrossel-hero .ch-btn { display: inline-flex; align-items: center; gap: 8px; padding: 12px 28px; border-radius: 50px; background: var(--accent-color); color: #fff; font-weight: 600; border: 2px solid var(--accent-color); transition: .3s; }
.carrossel-hero .ch-btn:hover { background: color-mix(in srgb, var(--accent-color), #000 15%); border-color: color-mix(in srgb, var(--accent-color), #000 15%); color: #fff; transform: translateY(-2px); }
.carrossel-hero .ch-btn-linha { background: transparent; border-color: rgba(255,255,255,.75); }
.carrossel-hero .ch-btn-linha:hover { background: #fff; color: #0b1b33; border-color: #fff; }
.carrossel-hero .swiper-slide .ch-texto > * { opacity: 0; transform: translateY(24px); transition: opacity .7s ease, transform .7s ease; }
.carrossel-hero .swiper-slide-active .ch-texto > * { opacity: 1; transform: none; }
.carrossel-hero .swiper-slide-active .ch-texto > *:nth-child(2) { transition-delay: .15s; }
.carrossel-hero .swiper-slide-active .ch-texto > *:nth-child(3) { transition-delay: .3s; }
.carrossel-hero .swiper-slide-active .ch-texto > *:nth-child(4) { transition-delay: .45s; }
.carrossel-hero .swiper-pagination { bottom: 22px !important; }
.carrossel-hero .swiper-pagination-bullet { width: 10px; height: 10px; background: #fff; opacity: .5; transition: .3s; }
.carrossel-hero .swiper-pagination-bullet-active { opacity: 1; width: 28px; border-radius: 6px; background: var(--accent-color); }
.carrossel-hero .swiper-button-prev, .carrossel-hero .swiper-button-next { width: 48px; height: 48px; border-radius: 50%; background: rgba(255,255,255,.12); backdrop-filter: blur(4px); color: #fff; transition: .3s; }
.carrossel-hero .swiper-button-prev::after, .carrossel-hero .swiper-button-next::after { font-size: 18px; font-weight: 700; }
.carrossel-hero .swiper-button-prev:hover, .carrossel-hero .swiper-button-next:hover { background: var(--accent-color); }
@media (max-width: 991px) {
  .carrossel-media, .carrossel-grande { height: 560px; min-height: 0; }
  .carrossel-ecra { min-height: 520px; }
  .carrossel-hero .ch-titulo { font-size: 32px; }
  .carrossel-hero .ch-sub { font-size: 16px; }
  .carrossel-hero .swiper-button-prev, .carrossel-hero .swiper-button-next { display: none; }
}

/* =========================================================
   Rodapé — ligações legais
   ========================================================= */
.footer .rodape-legal { margin-top: 6px; font-size: 13px; }
.footer .rodape-legal a { color: color-mix(in srgb, var(--default-color), transparent 25%); }
.footer .rodape-legal a:hover { color: var(--accent-color); }

/* =========================================================
   Janela de boas-vindas: termos, privacidade e cookies
   ========================================================= */
html.consent-aberto { overflow: hidden; }
.consent { position: fixed; inset: 0; z-index: 100200; display: flex; align-items: center; justify-content: center; padding: 16px; background: rgba(8, 18, 38, .62); backdrop-filter: blur(3px); opacity: 0; transition: opacity .25s; }
.consent[hidden] { display: none; }
.consent.visivel { opacity: 1; }
.consent-caixa { position: relative; width: 100%; max-width: 560px; max-height: calc(100vh - 32px); overflow-y: auto; background: #fff; color: #1f2937; border-radius: 20px; padding: 30px 30px 22px; box-shadow: 0 40px 80px -20px rgba(0,0,0,.45); transform: translateY(18px) scale(.98); transition: transform .3s ease; font-family: var(--default-font), system-ui, sans-serif; }
.consent.visivel .consent-caixa { transform: none; }
.consent-caixa::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 5px; border-radius: 20px 20px 0 0; background: linear-gradient(90deg, var(--accent-color), #37517e); }
.consent-topo { display: flex; gap: 14px; align-items: center; margin-bottom: 14px; }
.consent-ico { flex: none; width: 52px; height: 52px; border-radius: 16px; display: flex; align-items: center; justify-content: center; font-size: 24px; color: #fff; background: linear-gradient(135deg, var(--accent-color), #37517e); box-shadow: 0 10px 20px -8px color-mix(in srgb, var(--accent-color), transparent 30%); }
.consent-topo h2 { font-size: 20px; font-weight: 700; margin: 0; color: #0f2747; font-family: var(--heading-font), sans-serif; }
.consent-site { margin: 2px 0 0; font-size: 13px; color: #6b7280; }
.consent-texto { font-size: 14.5px; line-height: 1.65; color: #4b5563; margin: 0 0 16px; }
.consent-docs { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 14px; }
.consent-docs a { display: flex; align-items: center; gap: 10px; padding: 11px 12px; border: 1px solid #e5e7eb; border-radius: 12px; color: #1f2937; font-size: 12.5px; line-height: 1.3; transition: .2s; }
.consent-docs a:hover { border-color: var(--accent-color); background: color-mix(in srgb, var(--accent-color), transparent 93%); }
.consent-docs a > i:first-child { font-size: 20px; color: var(--accent-color); }
.consent-docs a > i:last-child { margin-left: auto; font-size: 12px; color: #9ca3af; }
.consent-docs b { display: block; font-size: 13px; }
.consent-docs span { color: #6b7280; }
.consent-pref { border: 1px solid #e5e7eb; border-radius: 12px; padding: 0 14px; margin-bottom: 14px; }
.consent-pref summary { cursor: pointer; padding: 11px 0; font-size: 13.5px; font-weight: 600; color: #374151; list-style: none; }
.consent-pref summary::-webkit-details-marker { display: none; }
.consent-pref summary::after { content: "\F282"; font-family: "bootstrap-icons"; float: right; transition: transform .2s; }
.consent-pref[open] summary::after { transform: rotate(180deg); }
.consent-opt { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 10px 0; border-top: 1px solid #f1f2f4; font-size: 12.5px; color: #6b7280; cursor: pointer; }
.consent-opt b { display: block; color: #1f2937; font-size: 13.5px; }
.consent-opt input { flex: none; width: 40px; height: 22px; appearance: none; -webkit-appearance: none; border-radius: 22px; background: #d1d5db; position: relative; cursor: pointer; transition: background .2s; }
.consent-opt input::after { content: ""; position: absolute; top: 3px; left: 3px; width: 16px; height: 16px; border-radius: 50%; background: #fff; transition: transform .2s; box-shadow: 0 1px 3px rgba(0,0,0,.2); }
.consent-opt input:checked { background: var(--accent-color); }
.consent-opt input:checked::after { transform: translateX(18px); }
.consent-opt input:disabled { opacity: .6; cursor: not-allowed; }
.consent-aceito { display: flex; gap: 10px; align-items: flex-start; padding: 12px 14px; border-radius: 12px; background: #f8fafc; border: 1px solid #e5e7eb; font-size: 13.5px; color: #374151; cursor: pointer; margin-bottom: 16px; }
.consent-aceito input { width: 18px; height: 18px; margin-top: 1px; accent-color: var(--accent-color); flex: none; cursor: pointer; }
.consent-aceito a { color: var(--accent-color); text-decoration: underline; }
.consent-aceito.erro { border-color: #f04438; background: #fef3f2; animation: consent-tremer .4s; }
@keyframes consent-tremer { 20%, 60% { transform: translateX(-6px); } 40%, 80% { transform: translateX(6px); } }
.consent-botoes { display: flex; flex-wrap: wrap; gap: 10px; justify-content: flex-end; }
.consent-botoes .c-btn { flex: 1 1 auto; padding: 12px 18px; border-radius: 50px; font-weight: 600; font-size: 14px; cursor: pointer; transition: .2s; }
.consent-botoes .c-linha { background: #fff; border: 1.5px solid #d1d5db; color: #374151; }
.consent-botoes .c-linha:hover { border-color: #9ca3af; }
.consent-botoes .c-cheio { background: var(--accent-color); border: 1.5px solid var(--accent-color); color: #fff; box-shadow: 0 10px 20px -10px var(--accent-color); }
.consent-botoes .c-cheio:hover { filter: brightness(.93); }
.consent-nota { margin: 14px 0 0; font-size: 12px; color: #9ca3af; text-align: center; }
@media (max-width: 575px) {
  .consent-caixa { padding: 24px 18px 18px; border-radius: 16px; }
  .consent-docs { grid-template-columns: 1fr; }
  .consent-botoes .c-btn { width: 100%; }
}

/* =========================================================
   Rodapé com as cores do cabeçalho
   ========================================================= */
.footer { border-top: 3px solid var(--accent-color); }
.footer .footer-newsletter { background: rgba(255, 255, 255, .06); border-bottom: 1px solid rgba(255, 255, 255, .08); }
.footer .footer-newsletter h4, .footer h4, .footer .sitename { color: #fff; }
.footer .footer-newsletter .newsletter-form { background: rgba(255, 255, 255, .95); border-color: transparent; }
.footer .footer-newsletter .newsletter-form input[type=email] { background: transparent; color: #1f2937; }
.footer .footer-newsletter .newsletter-form input[type=email]::placeholder { color: #6b7280; }
.footer .footer-links ul a, .footer .footer-contact p, .footer .footer-contact span { color: rgba(255, 255, 255, .78); }
.footer .footer-links ul a:hover { color: #fff; }
.footer .footer-links ul i { color: var(--accent-color); }
.footer .social-links a { color: #fff; border-color: rgba(255, 255, 255, .35); }
.footer .social-links a:hover { background: var(--accent-color); border-color: var(--accent-color); color: #fff; }
.footer .copyright p, .footer .credits { color: rgba(255, 255, 255, .7); }
.footer .credits a, .footer .rodape-legal a { color: rgba(255, 255, 255, .85); }
.footer .credits a:hover, .footer .rodape-legal a:hover { color: var(--accent-color); }

/* =========================================================
   Rodapé compacto (marca à esquerda, contactos, ligações e barra inferior)
   ========================================================= */
@media (min-width: 1680px) {
  .header .container-xl, .footer .container { max-width: 1600px; padding-left: 24px; padding-right: 24px; }
}
.footer { font-size: 14px; padding-bottom: 0; }
.footer .footer-top { padding-top: 38px; padding-bottom: 6px; }
.footer .footer-top h4 { font-size: 15px; padding-bottom: 8px; margin-bottom: 12px; letter-spacing: .3px; }
.footer .footer-top h4::after { content: ""; position: absolute; left: 0; bottom: 0; width: 28px; height: 2px; border-radius: 2px; background: var(--accent-color); }
.footer .footer-links { margin-bottom: 0; }
.footer .footer-links ul li { padding: 5px 0; }
.footer .footer-links ul li:first-child { padding-top: 5px; }
.footer .footer-links ul a { position: relative; padding-left: 14px; line-height: 1.4; }
.footer .footer-links ul a::before { content: "\F285"; font-family: "bootstrap-icons"; position: absolute; left: 0; top: 50%; transform: translateY(-50%); font-size: 10px; color: var(--accent-color); }
.footer .rodape-links-grelha { display: grid; grid-template-columns: repeat(2, minmax(0, max-content)); column-gap: 28px; }

.footer .rodape-marca { display: inline-flex; align-items: center; gap: 14px; text-transform: none; font-size: inherit; }
.footer .rodape-marca img { height: 104px; max-width: 100%; width: auto; object-fit: contain; border-radius: 16px; box-shadow: 0 16px 34px -14px rgba(0, 0, 0, .55), 0 0 0 3px rgba(255, 255, 255, .12); transition: transform .3s; }
.footer .rodape-marca:hover img { transform: translateY(-2px); }
.footer .rodape-marca-ico { width: 56px; height: 56px; flex: none; border-radius: 16px; display: flex; align-items: center; justify-content: center; font-family: var(--heading-font); font-size: 30px; font-weight: 800; color: #fff; background: linear-gradient(135deg, var(--accent-color), color-mix(in srgb, var(--accent-color), #0b2447 55%)); box-shadow: 0 10px 24px -8px var(--accent-color), inset 0 0 0 1px rgba(255, 255, 255, .25); }
.footer .rodape-marca-txt { display: flex; flex-direction: column; line-height: 1.1; }
.footer .rodape-marca .sitename { font-family: var(--heading-font); font-size: 30px; font-weight: 800; letter-spacing: 2.5px; text-transform: uppercase; color: #fff; }
.footer .rodape-marca-txt small { margin-top: 5px; font-family: var(--default-font); font-size: 12.5px; font-weight: 500; letter-spacing: .4px; color: color-mix(in srgb, var(--accent-color), #fff 35%); }
.footer .rodape-desc { margin: 14px 0 16px; max-width: 380px; line-height: 1.6; color: rgba(255, 255, 255, .72); }
.footer .social-links a { width: 36px; height: 36px; margin-right: 8px; font-size: 15px; }

.footer .rodape-contactos { list-style: none; padding: 0; margin: 0; }
.footer .rodape-contactos li { display: flex; align-items: flex-start; gap: 10px; padding: 5px 0; color: rgba(255, 255, 255, .78); line-height: 1.45; }
.footer .rodape-contactos i { flex: none; width: 28px; height: 28px; border-radius: 8px; display: flex; align-items: center; justify-content: center; font-size: 13px; color: var(--accent-color); background: rgba(255, 255, 255, .07); margin-top: -3px; }
.footer .rodape-contactos a { color: rgba(255, 255, 255, .85); }
.footer .rodape-contactos a:hover { color: #fff; }

.footer .rodape-base { margin-top: 26px; border-top: 1px solid rgba(255, 255, 255, .1); background: rgba(0, 0, 0, .14); }
.footer .rodape-base .container { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 22px; padding-top: 13px; padding-bottom: 13px; font-size: 13px; }
.footer .rodape-base p { margin: 0; color: rgba(255, 255, 255, .7); }
.footer .rodape-base strong { color: #fff; }
.footer .rodape-base .rodape-legal { display: flex; flex-wrap: wrap; gap: 4px 16px; margin: 0; font-size: 13px; }
.footer .rodape-base .credits { margin: 0; font-size: 12.5px; }
@media (max-width: 767px) {
  .footer .rodape-base .container { justify-content: center; text-align: center; }
  .footer .rodape-base .rodape-legal { justify-content: center; }
}

/* =========================================================
   Página inicial — conteúdo próprio
   ========================================================= */
.inicio-etiqueta { display: inline-flex; align-items: center; gap: 8px; padding: 6px 14px; border-radius: 50px; font-size: 12.5px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: var(--accent-color); background: color-mix(in srgb, var(--accent-color), transparent 88%); margin-bottom: 14px; }
.inicio-etiqueta::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--accent-color); }
.inicio-titulo { font-size: clamp(26px, 3vw, 38px); font-weight: 800; line-height: 1.2; color: var(--heading-color); margin-bottom: 16px; }
.inicio-texto { font-size: 16px; line-height: 1.75; color: color-mix(in srgb, var(--default-color), transparent 15%); }
.inicio-btn { display: inline-flex; align-items: center; gap: 8px; padding: 12px 26px; border-radius: 50px; font-weight: 600; font-size: 15px; color: #fff; background: var(--accent-color); border: 2px solid var(--accent-color); box-shadow: 0 12px 24px -12px var(--accent-color); transition: .3s; }
.inicio-btn:hover { color: #fff; transform: translateY(-2px); background: color-mix(in srgb, var(--accent-color), #000 10%); }
.inicio-btn i { transition: transform .3s; }
.inicio-btn:hover i.bi-arrow-right { transform: translateX(4px); }

/* Apresentação */
.inicio-apres { padding: 80px 0; }
.apres-visual { position: relative; padding: 0 24px 24px 0; }
.apres-visual::before { content: ""; position: absolute; right: 0; bottom: 0; width: 75%; height: 75%; border-radius: 24px; background: linear-gradient(135deg, var(--marca-1, #0b2447), var(--marca-2, #19376d)); z-index: 0; }
.apres-visual img { position: relative; z-index: 1; width: 100%; aspect-ratio: 4 / 3.4; object-fit: cover; border-radius: 22px; box-shadow: 0 24px 50px -24px rgba(11, 36, 71, .45); }
.apres-selo { position: absolute; z-index: 2; left: -14px; bottom: 44px; display: flex; flex-direction: column; padding: 16px 22px; border-radius: 18px; background: #fff; box-shadow: 0 18px 40px -16px rgba(11, 36, 71, .4); border-left: 4px solid var(--accent-color); }
.apres-selo strong { font-size: 34px; line-height: 1; font-weight: 800; color: var(--heading-color); }
.apres-selo span { font-size: 13px; color: color-mix(in srgb, var(--default-color), transparent 25%); margin-top: 4px; }
.apres-pontos { list-style: none; padding: 0; margin: 22px 0 28px; display: grid; grid-template-columns: 1fr 1fr; gap: 12px 22px; }
.apres-pontos li { display: flex; gap: 10px; align-items: flex-start; font-weight: 500; color: var(--heading-color); line-height: 1.45; }
.apres-pontos i { color: var(--accent-color); font-size: 19px; line-height: 1.2; }
.apres-accoes { display: flex; flex-wrap: wrap; align-items: center; gap: 18px 28px; }
.apres-tel { display: inline-flex; align-items: center; gap: 12px; color: var(--heading-color); }
.apres-tel-ico { width: 46px; height: 46px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 18px; color: var(--accent-color); border: 2px solid color-mix(in srgb, var(--accent-color), transparent 70%); transition: .3s; }
.apres-tel:hover .apres-tel-ico { background: var(--accent-color); color: #fff; }
.apres-tel small { display: block; font-size: 12px; color: color-mix(in srgb, var(--default-color), transparent 35%); }
.apres-tel strong { font-size: 16px; }

/* Números */
.inicio-numeros { padding: 46px 0; background: linear-gradient(100deg, var(--marca-1, #0b2447) 0%, var(--marca-2, #19376d) 100%); position: relative; overflow: hidden; }
.inicio-numeros::after { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 85% 20%, color-mix(in srgb, var(--accent-color), transparent 75%), transparent 45%); pointer-events: none; }
.numero-item { position: relative; z-index: 1; display: flex; align-items: center; gap: 16px; padding: 6px 4px; }
.numero-item > i { width: 58px; height: 58px; flex: none; border-radius: 16px; display: flex; align-items: center; justify-content: center; font-size: 26px; color: #fff; background: rgba(255, 255, 255, .1); border: 1px solid rgba(255, 255, 255, .18); }
.numero-item strong { display: block; font-size: 36px; line-height: 1; font-weight: 800; color: #fff; }
.numero-item span { color: rgba(255, 255, 255, .78); font-size: 14px; }
.numero-item strong span { color: #fff; font-size: inherit; }

/* Porquê escolher-nos */
.inicio-dif { background: #f5f8fc; }
.dif-item { position: relative; height: 100%; padding: 30px 26px 26px; border-radius: 18px; background: #fff; border: 1px solid #e8edf3; box-shadow: 0 12px 30px -20px rgba(11, 36, 71, .25); transition: transform .3s, box-shadow .3s; overflow: hidden; }
.dif-item:hover { transform: translateY(-5px); box-shadow: 0 24px 44px -22px rgba(11, 36, 71, .4); }
.dif-num { position: absolute; right: 20px; top: 14px; font-size: 44px; font-weight: 800; line-height: 1; color: color-mix(in srgb, var(--accent-color), transparent 88%); font-family: var(--heading-font); }
.dif-ico { width: 54px; height: 54px; border-radius: 15px; display: flex; align-items: center; justify-content: center; font-size: 24px; color: #fff; background: linear-gradient(135deg, var(--accent-color), var(--marca-2, #19376d)); margin-bottom: 18px; box-shadow: 0 10px 20px -10px var(--accent-color); }
.dif-item h3 { font-size: 18px; font-weight: 700; margin-bottom: 8px; color: var(--heading-color); }
.dif-item p { margin: 0; font-size: 14.5px; line-height: 1.65; color: color-mix(in srgb, var(--default-color), transparent 18%); }

/* Missão, visão e valores */
.mvv-card { height: 100%; padding: 32px 28px; border-radius: 20px; background: #fff; border: 1px solid #e8edf3; box-shadow: 0 12px 30px -22px rgba(11, 36, 71, .3); }
.mvv-card h3 { font-size: 21px; font-weight: 700; margin: 0 0 10px; color: var(--heading-color); }
.mvv-card p { margin: 0; line-height: 1.7; color: color-mix(in srgb, var(--default-color), transparent 15%); }
.mvv-ico { width: 52px; height: 52px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 22px; color: var(--accent-color); background: color-mix(in srgb, var(--accent-color), transparent 88%); margin-bottom: 16px; }
.mvv-destaque { background: linear-gradient(140deg, var(--marca-1, #0b2447), var(--marca-2, #19376d)); border-color: transparent; }
.mvv-destaque h3 { color: #fff; }
.mvv-destaque p { color: rgba(255, 255, 255, .82); }
.mvv-destaque .mvv-ico { background: rgba(255, 255, 255, .12); color: #fff; }
.mvv-valores { list-style: none; padding: 0; margin: 0; }
.mvv-valores li { display: flex; gap: 8px; padding: 4px 0; color: var(--heading-color); font-weight: 500; }
.mvv-valores i { color: var(--accent-color); }

/* Sectores */
.inicio-sec { background: linear-gradient(180deg, #ffffff 0%, #f5f8fc 100%); }
.sec-grelha { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.sec-item { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; text-align: center; padding: 22px 12px; border-radius: 16px; background: #fff; border: 1px solid #e8edf3; font-weight: 600; font-size: 14px; color: var(--heading-color); transition: .3s; }
.sec-item i { font-size: 28px; color: var(--accent-color); transition: .3s; }
.sec-item:hover { background: linear-gradient(140deg, var(--marca-1, #0b2447), var(--marca-2, #19376d)); color: #fff; border-color: transparent; transform: translateY(-3px); }
.sec-item:hover i { color: #fff; }

/* Contacto rápido */
.inicio-cta { padding: 20px 0 70px; background: #f5f8fc; }
.cta-caixa { position: relative; overflow: hidden; padding: 46px 48px; border-radius: 26px; color: #fff; background: linear-gradient(110deg, var(--marca-1, #0b2447) 0%, var(--marca-2, #19376d) 100%); box-shadow: 0 30px 60px -30px rgba(11, 36, 71, .6); }
.cta-caixa::before { content: ""; position: absolute; width: 380px; height: 380px; right: -120px; top: -160px; border-radius: 50%; background: color-mix(in srgb, var(--accent-color), transparent 70%); filter: blur(10px); }
.cta-caixa > .row { position: relative; z-index: 1; }
.cta-caixa h2 { color: #fff; font-size: clamp(26px, 3vw, 36px); font-weight: 800; margin-bottom: 12px; }
.cta-caixa p { color: rgba(255, 255, 255, .82); font-size: 16px; line-height: 1.7; margin-bottom: 24px; }
.cta-botoes { display: flex; flex-wrap: wrap; gap: 12px; }
.inicio-btn-claro { background: #fff; color: var(--marca-1, #0b2447); border-color: #fff; }
.inicio-btn-claro:hover { background: var(--accent-color); border-color: var(--accent-color); color: #fff; }
.inicio-btn-linha { background: transparent; border-color: rgba(255, 255, 255, .5); box-shadow: none; }
.inicio-btn-linha:hover { background: #25d366; border-color: #25d366; }
.cta-dados { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.cta-dados > a, .cta-dados > div { display: flex; align-items: center; gap: 12px; padding: 14px 16px; border-radius: 14px; background: rgba(255, 255, 255, .08); border: 1px solid rgba(255, 255, 255, .12); color: #fff; font-weight: 600; font-size: 14.5px; transition: .3s; min-width: 0; }
.cta-dados > a:hover { background: rgba(255, 255, 255, .16); color: #fff; }
.cta-dados i { flex: none; width: 40px; height: 40px; border-radius: 12px; display: flex; align-items: center; justify-content: center; font-size: 17px; background: var(--accent-color); color: #fff; }
.cta-dados span { min-width: 0; overflow-wrap: anywhere; }
.cta-dados small { display: block; font-size: 11.5px; font-weight: 500; text-transform: uppercase; letter-spacing: .8px; color: rgba(255, 255, 255, .6); }

@media (max-width: 991px) {
  .inicio-apres { padding: 60px 0; }
  .sec-grelha { grid-template-columns: repeat(2, 1fr); }
  .cta-caixa { padding: 34px 26px; }
}
@media (max-width: 575px) {
  .apres-pontos, .cta-dados { grid-template-columns: 1fr; }
  .numero-item { flex-direction: column; text-align: center; gap: 10px; }
  .numero-item strong { font-size: 30px; }
  .apres-selo { left: 0; bottom: 34px; padding: 12px 16px; }
}

/* evita deslocação horizontal causada pelas animações de entrada (AOS) */
.main, main { overflow-x: clip; }

/* newsletter do rodapé numa só linha (texto à esquerda, formulário à direita) */
.footer .footer-newsletter { padding: 26px 0; }
.footer .footer-newsletter h4 { font-size: 19px; margin-bottom: 4px; display: flex; align-items: center; gap: 10px; }
.footer .footer-newsletter h4 i { color: var(--accent-color); }
.footer .footer-newsletter p { margin: 0; color: rgba(255, 255, 255, .72); }
.footer .footer-newsletter .newsletter-form { margin-top: 0; }

/* =========================================================
   Construtor da página inicial — invólucro dos blocos
   ========================================================= */
.bloco { position: relative; }
.bloco > section { position: relative; z-index: 1; }
.bloco.fundo-branco > section { background: #fff !important; }
.bloco.fundo-cinza > section { background: #f5f8fc !important; }
.bloco.fundo-marca { background: linear-gradient(110deg, var(--marca-1, #0b2447) 0%, var(--marca-2, #19376d) 100%); }
.bloco.fundo-brilho { background: #0a1230; overflow: hidden; }
.bloco.fundo-marca > section, .bloco.fundo-brilho > section { background: transparent !important; }
.bloco-escuro { --default-color: rgba(255, 255, 255, .78); --heading-color: #ffffff; --background-color: transparent; color: var(--default-color); }
.bloco-escuro .section-title p, .bloco-escuro .inicio-texto { color: rgba(255, 255, 255, .78); }
.bloco-escuro .apres-pontos li, .bloco-escuro .apres-tel, .bloco-escuro .inicio-titulo { color: #fff; }
.bloco-escuro .inicio-etiqueta { background: rgba(255, 255, 255, .1); color: #cfe3ff; }
.bloco-escuro .inicio-etiqueta::before { background: #cfe3ff; }
.bloco-escuro .section-title h2::before { background: rgba(255, 255, 255, .25); }
/* cartões brancos mantêm as cores normais dentro de fundos escuros */
.bloco-escuro .dif-item, .bloco-escuro .mvv-card:not(.mvv-destaque), .bloco-escuro .sec-item, .bloco-escuro .apres-selo,
.bloco-escuro .service-item, .bloco-escuro .team-member, .bloco-escuro .testimonial-item, .bloco-escuro .pricing-item, .bloco-escuro .faq-item {
  --default-color: #444444; --heading-color: #37517e; color: var(--default-color);
}
.bloco.espaco-compacto > section { padding-top: 34px !important; padding-bottom: 34px !important; }
.bloco.espaco-amplo > section { padding-top: 100px !important; padding-bottom: 100px !important; }
.bloco.espaco-nenhum > section { padding-top: 0 !important; padding-bottom: 0 !important; }
.bloco-carrossel > section { padding: 0 !important; }

/* Efeito «brilho + pontos» (fundo escuro com luz azul ao centro e grelha de pontos) */
.efeito-brilho { position: absolute; inset: -20% -10%; z-index: 0; pointer-events: none; background: radial-gradient(40% 45% at 50% 50%, color-mix(in srgb, var(--fd-luz, #153deb), transparent 55%), transparent 70%); }
.efeito-pontos { position: absolute; inset: 0; z-index: 0; pointer-events: none; background-image: radial-gradient(rgba(255, 255, 255, .14) 1px, transparent 1.2px); background-size: 22px 22px; -webkit-mask-image: radial-gradient(70% 60% at 50% 35%, #000 30%, transparent 100%); mask-image: radial-gradient(70% 60% at 50% 35%, #000 30%, transparent 100%); }

/* Faixa com texto animado */
.faixa-destaque { position: relative; overflow: hidden; background: #0a1230; color: #fff; padding: clamp(56px, 7vw, 104px) 0; }
.bloco.fundo-brilho > .faixa-destaque > .efeito-brilho, .bloco.fundo-brilho > .faixa-destaque > .efeito-pontos { display: none; }
.faixa-destaque .container { position: relative; z-index: 1; }
.fd-cabeca { max-width: 860px; margin: 0 auto; text-align: center; }
.fd-etiqueta { display: inline-flex; align-items: center; padding: 6px 14px; border-radius: 999px; font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #b9c6ff; background: rgba(255, 255, 255, .08); border: 1px solid rgba(255, 255, 255, .16); }
.fd-titulo { margin: 14px 0 0; color: #fff; font-size: clamp(30px, 3.8vw, 46px); font-weight: 800; letter-spacing: -.02em; line-height: 1.08; text-wrap: balance; }
.fd-pilula-wrap { margin: clamp(22px, 3vw, 38px) 0; }
.fd-pilula { display: inline-flex; align-items: center; max-width: 100%; padding: .55rem 1.5rem .6rem 1.25rem; border-radius: 999px; border: 1px solid rgba(255, 255, 255, .12); background: rgba(255, 255, 255, .06); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .08), 0 24px 60px -24px rgba(0, 0, 0, .6); font-family: var(--heading-font); font-size: clamp(24px, 5vw, 56px); font-weight: 800; letter-spacing: -.03em; line-height: 1.2; white-space: nowrap; overflow: hidden; }
.fd-ico { flex: none; margin-right: .5em; font-size: .5em; color: #7ee2a3; }
.fd-palavra { color: #b9c6ff; white-space: pre; }
.fd-fixo { color: #fff; white-space: pre; }
.fd-cursor { display: inline-block; width: .06em; height: .95em; margin: 0 .06em 0 .02em; vertical-align: -.12em; background: #b9c6ff; animation: fd-piscar 1s steps(2) infinite; }
@keyframes fd-piscar { 0% { opacity: 1; } 100% { opacity: 0; } }
.fd-texto { margin: 0 auto; max-width: 720px; font-size: 17px; line-height: 1.65; color: rgba(255, 255, 255, .72); }
.fd-cartoes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; max-width: 1100px; margin: clamp(30px, 4vw, 48px) auto 0; padding: 0; list-style: none; }
.fd-cartoes.fd-n1 { grid-template-columns: minmax(0, 420px); justify-content: center; }
.fd-cartoes.fd-n2 { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 760px; }
.fd-cartoes.fd-n4 { grid-template-columns: repeat(4, minmax(0, 1fr)); max-width: 1240px; }
.fd-cartoes li { padding: 20px 22px; border-radius: 16px; border: 1px solid rgba(255, 255, 255, .12); background: rgba(255, 255, 255, .05); transition: background .3s, border-color .3s, transform .3s; }
.fd-cartoes li:hover { background: rgba(255, 255, 255, .08); border-color: rgba(255, 255, 255, .22); transform: translateY(-3px); }
.fd-cartoes li > i { font-size: 22px; color: #b9c6ff; }
.fd-cartoes h3 { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 12px 0 5px; font-size: 16px; font-weight: 700; color: #fff; }
.fd-cartoes p { margin: 0; font-size: 14.5px; line-height: 1.55; color: rgba(255, 255, 255, .72); }
.fd-tag { display: inline-flex; padding: 2px 8px; border-radius: 999px; font-size: 11px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: #dfe6ff; background: rgba(255, 255, 255, .12); }
@media (max-width: 991px) { .fd-cartoes, .fd-cartoes.fd-n4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .fd-cartoes, .fd-cartoes.fd-n2, .fd-cartoes.fd-n4 { grid-template-columns: 1fr; } .fd-pilula { padding: .45rem 1rem; } }

/* Outros blocos */
.texto-estreito { max-width: 780px; }
.dif-link { display: block; color: inherit; }
.dif-link:hover { color: inherit; }
.dif-mais { display: inline-flex; align-items: center; gap: 6px; margin-top: 14px; font-size: 14px; font-weight: 600; color: var(--accent-color); }
.dif-link:hover .dif-mais i { transform: translateX(4px); }
.dif-mais i { transition: transform .3s; }
.apres-visual.apres-direita { padding: 0 0 24px 24px; }
.apres-visual.apres-direita::before { right: auto; left: 0; }
.apres-visual.apres-direita .apres-selo { left: auto; right: -14px; }
.video-moldura { position: relative; max-width: 960px; margin: 0 auto; aspect-ratio: 16 / 9; border-radius: 20px; overflow: hidden; box-shadow: 0 30px 60px -30px rgba(11, 36, 71, .55); background: #000; }
.video-moldura iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.galeria-item { display: block; overflow: hidden; border-radius: 14px; aspect-ratio: 4 / 3; }
.galeria-item img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.galeria-item:hover img { transform: scale(1.06); }
.bloco-cta-sec { padding: 60px 0; }
.bloco-cta-caixa { position: relative; overflow: hidden; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px; padding: 46px 48px; border-radius: 26px; color: #fff; background: linear-gradient(110deg, var(--marca-1, #0b2447), var(--marca-2, #19376d)); box-shadow: 0 30px 60px -30px rgba(11, 36, 71, .6); }
.bloco-cta-sec.com-imagem .bloco-cta-caixa { background: linear-gradient(110deg, color-mix(in srgb, var(--marca-1, #0b2447), transparent 8%), color-mix(in srgb, var(--marca-2, #19376d), transparent 25%)), var(--cta-img) center / cover; }
.bloco-cta-caixa h2 { margin: 0 0 8px; color: #fff; font-size: clamp(24px, 3vw, 34px); font-weight: 800; }
.bloco-cta-caixa p { margin: 0; color: rgba(255, 255, 255, .82); max-width: 640px; }
.bloco-espaco { display: flex; align-items: center; }
.bloco-espaco .container { width: 100%; }
.bloco-espaco hr { margin: 0; opacity: .12; }

/* =========================================================
   Cabeçalho flutuante (pílula branca que estica ao descer)
   ========================================================= */
.header.header-flutuante {
  --nav-color: #2a2e38; --nav-hover-color: var(--accent-color); --heading-color: #0e1015;
  --hd-ease: .32s cubic-bezier(.3, .8, .3, 1);
  background: transparent !important; box-shadow: none !important; border-bottom: 0 !important;
  padding: 12px 0; top: 10px;
  transition: top var(--hd-ease), padding var(--hd-ease), background var(--hd-ease), box-shadow var(--hd-ease);
}
.header-flutuante .header-pilula {
  width: 100%; margin-inline: auto; gap: 6px; padding: 7px 8px 7px 18px; min-height: 58px;
  border-radius: 999px; background: rgba(255, 255, 255, .96); border: 1px solid rgba(14, 16, 21, .09);
  box-shadow: 0 1px 2px rgba(14, 16, 21, .04), 0 4px 14px rgba(14, 16, 21, .05), 0 18px 40px -22px rgba(11, 36, 71, .35);
  -webkit-backdrop-filter: saturate(160%) blur(8px); backdrop-filter: saturate(160%) blur(8px);
  transition: width var(--hd-ease), border-radius var(--hd-ease), background var(--hd-ease), box-shadow var(--hd-ease), border-color var(--hd-ease), padding var(--hd-ease);
}
@media (min-width: 1200px) { .header-flutuante .header-pilula { width: 94%; } }
.header.header-flutuante.header-rolado { top: 0; padding: 0; background: #fff !important; box-shadow: 0 1px 0 rgba(14, 16, 21, .09), 0 10px 30px -10px rgba(14, 16, 21, .18) !important; }
.header-flutuante.header-rolado .header-pilula { width: 100%; border-radius: 0; background: transparent; border-color: transparent; box-shadow: none; padding-left: 0; padding-right: 0; -webkit-backdrop-filter: none; backdrop-filter: none; }
.header-flutuante .logo img { max-height: 40px; margin-right: 6px; }
.header-flutuante .logo h1 { color: #0e1015; font-size: 24px; font-weight: 700; letter-spacing: 1px; }
@media (min-width: 1200px) {
  .header-flutuante .navmenu ul { gap: 2px; }
  .header-flutuante .navmenu > ul > li > a, .header-flutuante .navmenu > ul > li > a:focus { padding: 8px 13px; border-radius: 999px; font-size: 14.5px; font-weight: 500; color: var(--nav-color); transition: background .15s, color .15s; }
  .header-flutuante .navmenu > ul > li:last-child > a { padding-right: 13px; }
  .header-flutuante .navmenu > ul > li > a:hover, .header-flutuante .navmenu > ul > li:hover > a { color: var(--accent-color); }
  .header-flutuante .navmenu > ul > li > a.active { color: var(--accent-color); background: color-mix(in srgb, var(--accent-color), transparent 90%); }
  .header-flutuante .navmenu a::after { display: none !important; }
  .header-flutuante .navmenu .dropdown ul { border-radius: 16px; border: 1px solid rgba(14, 16, 21, .09); box-shadow: 0 10px 30px -10px rgba(14, 16, 21, .25); padding: 6px; }
  .header-flutuante .navmenu .dropdown ul a { border-radius: 10px; }
}
.header-flutuante .btn-getstarted, .header-flutuante .btn-getstarted:focus {
  display: inline-flex; align-items: center; line-height: 1.2; color: #fff; font-weight: 500; font-size: 14.5px; padding: 11px 20px; margin: 0 0 0 6px; border-radius: 999px;
  background: linear-gradient(120deg, color-mix(in srgb, var(--accent-color), #fff 18%) 0%, color-mix(in srgb, var(--accent-color), var(--marca-2, #19376d) 55%) 100%);
  background-size: 140% 140%; background-position: 0% 50%;
  box-shadow: 0 8px 22px -8px color-mix(in srgb, var(--accent-color), var(--marca-2, #19376d) 40%);
  transition: transform .18s, box-shadow .18s, background-position .3s;
}
.header-flutuante .btn-getstarted:hover, .header-flutuante .btn-getstarted:focus:hover { color: #fff; transform: translateY(-1px); background-position: 100% 50%; box-shadow: 0 12px 26px -8px color-mix(in srgb, var(--accent-color), var(--marca-2, #19376d) 40%); }
.header-flutuante .btn-login, .header-flutuante .btn-login:focus { color: #2a2e38; border-color: transparent; background: transparent; margin: 0 0 0 4px; padding: 9px 14px; font-weight: 500; }
.header-flutuante .btn-login:hover { color: #0e1015; background: rgba(14, 16, 21, .05); border-color: transparent; }
@media (max-width: 1199px) {
  .header-flutuante .header-pilula { padding: 6px 8px 6px 14px; min-height: 54px; }
  .header-flutuante .mobile-nav-toggle { color: #0e1015; width: 40px; height: 40px; border-radius: 999px; background: rgba(14, 16, 21, .05); display: inline-flex; align-items: center; justify-content: center; font-size: 22px; margin: 0 0 0 6px; }
  .mobile-nav-active .header-flutuante .mobile-nav-toggle { color: #fff; background: transparent; }
  .header-flutuante .btn-getstarted { margin: 0 4px 0 0; padding: 8px 14px; font-size: 13.5px; }
  .header-flutuante .btn-login { margin: 0 2px 0 0; }
}
@media (max-width: 575px) {
  .header-flutuante .logo img { max-height: 32px; }
  .header-flutuante .btn-getstarted { display: none; }
}
/* páginas internas: espaço para a pílula sem sobrepor o título */
.header.header-flutuante.sticky-top { top: 0; padding-top: 12px; }
.header.header-flutuante.sticky-top.header-rolado { padding-top: 0; }

/* =========================================================
   Rodapé ainda mais compacto + efeito de brilho e pontos
   ========================================================= */
.footer { position: relative; overflow: hidden; }
.footer > *:not(.efeito-brilho):not(.efeito-pontos) { position: relative; z-index: 1; }
.footer .rodape-brilho { inset: -40% -10% auto; height: 180%; background: radial-gradient(35% 50% at 50% 0%, color-mix(in srgb, var(--accent-color), transparent 72%), transparent 70%); }
.footer .footer-top { padding-top: 26px; padding-bottom: 0; }
.footer .footer-top h4 { margin-bottom: 8px; padding-bottom: 6px; font-size: 14px; }
.footer .footer-links ul li, .footer .rodape-contactos li { padding: 3px 0; }
.footer .footer-links ul li:first-child { padding-top: 3px; }
.footer .rodape-contactos i { width: 24px; height: 24px; font-size: 12px; margin-top: -2px; }
.footer .rodape-marca-linha { display: flex; align-items: center; gap: 18px; }
.footer .rodape-marca img { height: 84px; }
.footer .rodape-marca-info { min-width: 0; }
.footer .rodape-desc { margin: 0 0 10px; font-size: 13.5px; line-height: 1.5; }
.footer .social-links a { width: 32px; height: 32px; font-size: 14px; margin-right: 6px; }
.footer .rodape-base { margin-top: 16px; }
.footer .rodape-base .container { padding-top: 10px; padding-bottom: 10px; }
.footer .footer-newsletter { padding: 18px 0; }
@media (max-width: 575px) {
  .footer .rodape-marca-linha { flex-direction: column; align-items: flex-start; gap: 12px; }
  .footer .rodape-marca img { height: 72px; }
}
@media (max-width: 991px) {
  .header-flutuante ~ main .carrossel-hero .ch-conteudo { padding-top: 84px; padding-bottom: 46px; }
}

/* Cabeçalho flutuante com a cor da marca (igual ao rodapé) */
.header.header-flutuante.header-escuro { --nav-color: rgba(255, 255, 255, .86); --heading-color: #fff; }
.header-escuro .header-pilula {
  background: linear-gradient(100deg, var(--marca-1-a, rgba(11, 36, 71, .94)) 0%, var(--marca-2-a, rgba(25, 55, 109, .94)) 100%);
  border-color: rgba(255, 255, 255, .12);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .08), 0 10px 30px -12px rgba(5, 15, 35, .55), 0 18px 44px -24px color-mix(in srgb, var(--accent-color), transparent 40%);
  position: relative; overflow: visible;
}
.header-escuro .header-pilula::before {
  content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none;
  background-image: radial-gradient(rgba(255, 255, 255, .12) 1px, transparent 1.2px); background-size: 18px 18px;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 30%, #000 70%, transparent); mask-image: linear-gradient(90deg, transparent, #000 30%, #000 70%, transparent);
  transition: opacity var(--hd-ease);
}
.header-escuro .header-pilula > *:not(.navmenu) { position: relative; }
.header.header-flutuante.header-escuro.header-rolado { background: linear-gradient(100deg, var(--marca-1, #0b2447) 0%, var(--marca-2, #19376d) 100%) !important; box-shadow: 0 1px 0 rgba(255, 255, 255, .08), 0 12px 30px -12px rgba(5, 15, 35, .55) !important; border-bottom: 2px solid var(--accent-color) !important; }
.header-escuro.header-rolado .header-pilula { background: transparent; box-shadow: none; border-color: transparent; }
.header-escuro.header-rolado .header-pilula::before { opacity: 0; }
.header-escuro .logo h1 { color: #fff; }
@media (min-width: 1200px) {
  .header-escuro .navmenu > ul > li > a:hover, .header-escuro .navmenu > ul > li:hover > a { color: #fff; }
  .header-escuro .navmenu > ul > li > a.active { color: #fff; background: rgba(255, 255, 255, .12); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .1); }
}
.header-escuro .btn-login, .header-escuro .btn-login:focus { color: rgba(255, 255, 255, .9); }
.header-escuro .btn-login:hover { color: #fff; background: rgba(255, 255, 255, .1); }
.header-escuro .btn-getstarted, .header-escuro .btn-getstarted:focus { background: linear-gradient(120deg, color-mix(in srgb, var(--accent-color), #fff 22%) 0%, var(--accent-color) 100%); background-size: 140% 140%; box-shadow: 0 8px 22px -8px var(--accent-color); }
@media (max-width: 1199px) {
  .header-escuro .mobile-nav-toggle { color: #fff; background: rgba(255, 255, 255, .1); }
}

/* Faixa com texto animado — cores e opções editáveis no painel */
.faixa-destaque { background: var(--fd-fundo, #0a1230); }
.faixa-destaque .efeito-brilho { --fd-forca: 55%; background: radial-gradient(40% 45% at 50% 50%, color-mix(in srgb, var(--fd-luz, #153deb), transparent var(--fd-forca)), transparent 70%); }
.faixa-destaque.fd-brilho-suave .efeito-brilho { --fd-forca: 75%; }
.faixa-destaque.fd-brilho-forte .efeito-brilho { --fd-forca: 30%; }
.faixa-destaque .fd-titulo { color: var(--fd-titulo, #fff); }
.faixa-destaque .fd-texto, .faixa-destaque .fd-cartoes p { color: color-mix(in srgb, var(--fd-texto, #c4cbe0), transparent 8%); }
.faixa-destaque .fd-cartoes h3, .faixa-destaque .fd-fixo { color: var(--fd-titulo, #fff); }
.faixa-destaque .fd-palavra, .faixa-destaque .fd-cartoes li > i, .faixa-destaque .fd-cartao-link > i, .faixa-destaque .fd-etiqueta { color: var(--fd-palavra, #b9c6ff); }
.faixa-destaque .fd-cursor { background: var(--fd-palavra, #b9c6ff); }
.faixa-destaque .fd-ico { color: var(--fd-icone, #7ee2a3); }
.faixa-destaque.fd-sem-cursor .fd-cursor { display: none; }
.faixa-destaque.fd-media .fd-pilula { font-size: clamp(22px, 4vw, 42px); }
.faixa-destaque.fd-pequena .fd-pilula { font-size: clamp(20px, 3vw, 30px); }
.fd-botoes { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 26px; }
.fd-btn { display: inline-flex; align-items: center; gap: 8px; padding: 12px 24px; border-radius: 999px; font-weight: 600; color: #fff; background: linear-gradient(120deg, color-mix(in srgb, var(--fd-luz, #153deb), #fff 25%), var(--fd-luz, #153deb)); box-shadow: 0 10px 26px -10px var(--fd-luz, #153deb); transition: transform .2s, box-shadow .2s; }
.fd-btn:hover { color: #fff; transform: translateY(-2px); box-shadow: 0 14px 30px -10px var(--fd-luz, #153deb); }
.fd-btn-linha { background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .22); box-shadow: none; }
.fd-btn-linha:hover { background: rgba(255, 255, 255, .12); box-shadow: none; }
.fd-cartao-link { display: block; color: inherit; }
.fd-cartao-link:hover { color: inherit; }

/* Atalho «Editar bloco» (só para quem tem sessão no painel) */
.bloco-editar { position: absolute; top: 14px; right: 14px; z-index: 20; display: inline-flex; align-items: center; gap: 6px; padding: 7px 14px; border-radius: 999px; font-size: 13px; font-weight: 600; color: #fff; background: rgba(11, 18, 48, .82); border: 1px solid rgba(255, 255, 255, .2); box-shadow: 0 8px 20px -8px rgba(0, 0, 0, .5); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); opacity: 0; transform: translateY(-4px); transition: opacity .2s, transform .2s, background .2s; }
.bloco:hover > .bloco-editar, .bloco-editar:focus { opacity: 1; transform: none; }
.bloco-editar:hover { color: #fff; background: var(--accent-color); }
.bloco-carrossel > .bloco-editar { top: 104px; }
@media (hover: none) { .bloco-editar { opacity: .9; transform: none; } }

/* menu do telemóvel: o painel fixo não pode ficar preso dentro da pílula */
@media (max-width: 1199px) {
  .header-flutuante .header-pilula { -webkit-backdrop-filter: none; backdrop-filter: none; }
  .mobile-nav-active .header-flutuante .header-pilula::before { display: none; }
}
@media (max-width: 1199px) {
  .header .navmenu a:hover, .header .navmenu .active, .header .navmenu .active:focus { color: var(--accent-color); }
}

/* =========================================================
   Páginas interiores: rodapé sempre no fundo + título com a cor da marca
   ========================================================= */
body { min-height: 100vh; display: flex; flex-direction: column; }
body > .main { flex: 1 0 auto; }
body > .footer { flex-shrink: 0; }

.page-title {
  --default-color: rgba(255, 255, 255, .8); --heading-color: #fff;
  position: relative; overflow: hidden; color: var(--default-color);
  background: linear-gradient(100deg, var(--marca-1, #0b2447) 0%, var(--marca-2, #19376d) 100%);
  padding: 34px 0 38px; border-bottom: 3px solid var(--accent-color);
}
.page-title > .container { position: relative; z-index: 1; }
.page-title .page-title-brilho { inset: -60% -10% -40%; background: radial-gradient(38% 60% at 50% 40%, color-mix(in srgb, var(--accent-color), transparent 72%), transparent 70%); }
.page-title h1 { color: #fff; font-size: clamp(26px, 3.2vw, 38px); font-weight: 800; letter-spacing: -.01em; }
.page-title .breadcrumbs ol { padding-bottom: 8px; font-size: 13.5px; }
.page-title .breadcrumbs a { color: color-mix(in srgb, var(--accent-color), #fff 35%); }
.page-title .breadcrumbs a:hover { color: #fff; }
.page-title .breadcrumbs .current { color: rgba(255, 255, 255, .75); }
.page-title .breadcrumbs ol li + li::before { color: rgba(255, 255, 255, .35); }
/* com o cabeçalho flutuante a pílula fica por cima da barra do título */
.cab-flutuante .page-title { padding-top: 118px; }
@media (max-width: 1199px) { .cab-flutuante .page-title { padding-top: 104px; } }
.cab-flutuante .header.header-flutuante.fixed-top { top: 10px; }
.cab-flutuante .header.header-flutuante.fixed-top.header-rolado { top: 0; }

/* imagem inteira no carrossel: a imagem fica completa e o fundo é a mesma imagem desfocada */
.carrossel-hero .ch-fundo-desfocado { position: absolute; inset: -40px; width: calc(100% + 80px); height: calc(100% + 80px); object-fit: cover; filter: blur(28px) saturate(1.1); opacity: .75; }
.carrossel-hero .ch-fundo.ch-inteira { object-fit: contain; }

/* =========================================================
   Botões — estilo sóbrio e consistente (cor sólida, cantos discretos,
   sem degradês, brilhos nem saltos). Fundos claros: cor da marca.
   Fundos escuros: dourado do logótipo com texto escuro.
   ========================================================= */
:root { --btn-escuro: var(--marca-1, #0b2447); --btn-texto-ouro: #14213a; }

/* base comum */
.inicio-btn, .btn-ver-todos, .ch-btn, .fd-btn, .btn-getstarted, .btn-login,
.hero .btn-get-started, .call-to-action .cta-btn, .pricing .buy-btn, .about .read-more,
.contact .php-email-form button[type=submit], .blog-comment-form button[type=submit],
.error-404 .error-action .btn-primary, .subscribe .cta-form .btn, .consent-botoes .c-btn,
.footer .footer-newsletter .newsletter-form input[type=submit] {
  border-radius: var(--btn-raio, 6px) !important;
  background-image: none !important;
  box-shadow: none !important;
  font-weight: 600; letter-spacing: .01em;
  transition: background-color .15s ease, border-color .15s ease, color .15s ease !important;
}
.inicio-btn, .ch-btn, .fd-btn, .btn-ver-todos { padding: 12px 22px; font-size: 15px; line-height: 1.2; }
.inicio-btn:hover, .ch-btn:hover, .fd-btn:hover, .btn-getstarted:hover, .btn-ver-todos:hover,
.hero .btn-get-started:hover, .call-to-action .cta-btn:hover, .pricing .buy-btn:hover { transform: none !important; }
.inicio-btn:active, .ch-btn:active, .fd-btn:active, .btn-getstarted:active, .btn-ver-todos:active,
.hero .btn-get-started:active, .call-to-action .cta-btn:active, .pricing .buy-btn:active,
.contact .php-email-form button[type=submit]:active, .subscribe .cta-form .btn:active { transform: translateY(1px) !important; }
.inicio-btn i, .ch-btn i, .fd-btn i { transform: none !important; }
.inicio-btn:focus-visible, .ch-btn:focus-visible, .fd-btn:focus-visible, .btn-getstarted:focus-visible, .btn-ver-todos:focus-visible,
.contact .php-email-form button[type=submit]:focus-visible, .subscribe .cta-form .btn:focus-visible { outline: 2px solid var(--btn-ouro); outline-offset: 2px; }

/* principal sobre fundo claro: cor da marca */
.inicio-btn, .contact .php-email-form button[type=submit], .blog-comment-form button[type=submit],
.error-404 .error-action .btn-primary, .subscribe .cta-form .btn, .pricing .featured .buy-btn, .consent-botoes .c-btn.c-cheio {
  background-color: var(--btn-escuro) !important; border: 1px solid var(--btn-escuro) !important; color: #fff !important;
}
.inicio-btn:hover, .contact .php-email-form button[type=submit]:hover, .blog-comment-form button[type=submit]:hover,
.error-404 .error-action .btn-primary:hover, .subscribe .cta-form .btn:hover, .pricing .featured .buy-btn:hover, .consent-botoes .c-btn.c-cheio:hover {
  background-color: color-mix(in srgb, var(--btn-escuro), #000 22%) !important; border-color: color-mix(in srgb, var(--btn-escuro), #000 22%) !important; color: #fff !important;
}

/* secundário sobre fundo claro: contorno */
.btn-ver-todos, .pricing .buy-btn, .about .read-more, .consent-botoes .c-btn.c-linha {
  background-color: transparent !important; border: 1px solid color-mix(in srgb, var(--btn-escuro), transparent 55%) !important; color: var(--btn-escuro) !important;
}
.btn-ver-todos:hover, .pricing .buy-btn:hover, .about .read-more:hover, .consent-botoes .c-btn.c-linha:hover {
  background-color: color-mix(in srgb, var(--btn-escuro), transparent 92%) !important; border-color: var(--btn-escuro) !important; color: var(--btn-escuro) !important;
}

/* principal sobre fundo escuro: dourado do logótipo */
.header-escuro .btn-getstarted, .carrossel-hero .ch-btn:not(.ch-btn-linha), .hero .btn-get-started, .call-to-action .cta-btn,
.cta-caixa .inicio-btn-claro, .bloco-cta-caixa .inicio-btn-claro, .fd-btn:not(.fd-btn-linha), .bloco-escuro .inicio-btn:not(.inicio-btn-linha),
.footer .footer-newsletter .newsletter-form input[type=submit] {
  background-color: var(--btn-ouro) !important; border: 1px solid var(--btn-ouro) !important; color: var(--btn-texto-ouro) !important;
}
.header-escuro .btn-getstarted:hover, .carrossel-hero .ch-btn:not(.ch-btn-linha):hover, .hero .btn-get-started:hover, .call-to-action .cta-btn:hover,
.cta-caixa .inicio-btn-claro:hover, .bloco-cta-caixa .inicio-btn-claro:hover, .fd-btn:not(.fd-btn-linha):hover, .bloco-escuro .inicio-btn:not(.inicio-btn-linha):hover,
.footer .footer-newsletter .newsletter-form input[type=submit]:hover {
  background-color: color-mix(in srgb, var(--btn-ouro), #fff 16%) !important; border-color: color-mix(in srgb, var(--btn-ouro), #fff 16%) !important; color: var(--btn-texto-ouro) !important;
}

/* secundário sobre fundo escuro: contorno claro */
.carrossel-hero .ch-btn-linha, .inicio-btn-linha, .fd-btn-linha {
  background-color: transparent !important; border: 1px solid rgba(255, 255, 255, .55) !important; color: #fff !important;
}
.carrossel-hero .ch-btn-linha:hover, .inicio-btn-linha:hover, .fd-btn-linha:hover { background-color: rgba(255, 255, 255, .1) !important; border-color: #fff !important; color: #fff !important; }
.inicio-btn-linha:hover .bi-whatsapp { color: #25d366; }

/* cabeçalho */
.header-flutuante .btn-getstarted, .header-flutuante .btn-getstarted:focus { padding: 10px 18px !important; font-size: 14px; }
.header-flutuante:not(.header-escuro) .btn-getstarted { background-color: var(--btn-escuro) !important; color: #fff !important; border: 1px solid var(--btn-escuro) !important; }
.header .btn-login, .header .btn-login:focus { border-radius: var(--btn-raio, 6px) !important; }

/* janelas de alerta do site */
.swal2-styled.swal2-confirm { border-radius: var(--btn-raio, 6px) !important; background: var(--btn-escuro) !important; box-shadow: none !important; }
.swal2-styled.swal2-cancel, .swal2-styled.swal2-deny { border-radius: var(--btn-raio, 6px) !important; box-shadow: none !important; }
.swal2-styled:focus { box-shadow: 0 0 0 3px color-mix(in srgb, var(--btn-ouro), transparent 50%) !important; }

/* campos do formulário da newsletter alinhados com os botões */
.subscribe .cta-form .form-control { border-radius: var(--btn-raio, 6px) 0 0 var(--btn-raio, 6px) !important; }
.subscribe .cta-form .btn { border-radius: 0 var(--btn-raio, 6px) var(--btn-raio, 6px) 0 !important; }
.footer .footer-newsletter .newsletter-form { border-radius: var(--btn-raio, 6px) !important; padding: 4px; }
.page-title p.h1 { color: #fff; font-size: clamp(26px, 3.2vw, 38px); font-weight: 800; letter-spacing: -.01em; margin: 0; font-family: var(--heading-font); }

/* Carrossel maior: ecrã inteiro e textos com mais presença */
.carrossel-ecra { height: 100vh; height: 100svh; min-height: 640px; }
.carrossel-hero .ch-conteudo { padding-top: 96px; padding-bottom: 40px; }
.carrossel-hero .ch-texto { max-width: 780px; }
.carrossel-hero .ch-etiqueta { font-size: 14px; padding: 7px 16px; margin-bottom: 20px; }
.carrossel-hero .ch-titulo { font-size: clamp(38px, 4vw, 68px); line-height: 1.06; letter-spacing: -.015em; margin-bottom: 20px; }
.carrossel-hero .ch-sub { font-size: clamp(17px, 1.35vw, 22px); max-width: 640px; margin-bottom: 32px; }
.carrossel-hero .ch-direita .ch-sub, .carrossel-hero .ch-centro .ch-sub { margin-left: auto; }
.carrossel-hero .ch-centro .ch-sub { margin-right: auto; }
.carrossel-hero .ch-btn { padding: 15px 28px; font-size: 16px; }
.carrossel-hero .swiper-pagination { bottom: 30px !important; }
@media (max-width: 991px) {
  .carrossel-ecra { min-height: 560px; }
  .carrossel-hero .ch-titulo { font-size: clamp(32px, 8vw, 46px); }
  .carrossel-hero .ch-btn { padding: 13px 22px; font-size: 15px; }
}

/* Alturas do carrossel proporcionais ao ecrã, com limites (não fica enorme em monitores grandes) */
.carrossel-pequena { height: clamp(420px, 50vh, 520px); min-height: 0; }
.carrossel-media { height: clamp(480px, 62vh, 660px); min-height: 0; }
.carrossel-grande { height: clamp(540px, 72vh, 780px); min-height: 0; }
.carrossel-ecra { height: min(100vh, 920px); height: min(100svh, 920px); min-height: 560px; }
.carrossel-hero .ch-titulo { font-size: clamp(34px, 3.4vw, 58px); }
@media (max-width: 991px) {
  .carrossel-media, .carrossel-grande { height: 560px; }
  .carrossel-ecra { height: min(100svh, 720px); min-height: 520px; }
  .carrossel-hero .ch-titulo { font-size: clamp(30px, 7.5vw, 42px); }
}

  html { overflow-x: clip; scroll-padding-top: 88px; }
  body { min-width: 320px; overflow-x: clip; }
  img, video, iframe { max-width: 100%; }

  @media (max-width: 767px) {
    .section { padding-block: 52px; }
    .section-title { padding-bottom: 24px; }
    .section-title h2 { font-size: clamp(26px, 7vw, 34px); }
    .inicio-titulo { font-size: clamp(25px, 7vw, 32px); line-height: 1.18; }
    .inicio-texto { font-size: 15px; line-height: 1.7; }

    .carrossel-hero .ch-conteudo {
      width: 100%;
      padding: 92px 18px 58px;
    }
    .carrossel-hero .ch-texto { width: 100%; max-width: 620px; }
    .carrossel-hero .ch-titulo { font-size: clamp(30px, 7.6vw, 42px); line-height: 1.12; }
    .carrossel-hero .ch-sub { font-size: 16px; line-height: 1.55; }
    .carrossel-hero .ch-botoes { gap: 10px; }
    .carrossel-hero .ch-btn { padding: 12px 17px; font-size: 14px; }
    .carrossel-hero .swiper-button-prev,
    .carrossel-hero .swiper-button-next { display: none; }
    .carrossel-hero .swiper-pagination { bottom: 18px !important; }
    .carrossel-hero .ch-fundo-desfocado { transform: scale(1.08); }

    .inicio-apres { padding-block: 52px; }
    .apres-visual { max-width: 560px; margin-inline: auto; }
    .apres-visual img { aspect-ratio: 4 / 3; }
    .apres-selo { left: 8px; bottom: 34px; max-width: calc(100% - 32px); }
    .apres-visual.apres-direita .apres-selo { right: 8px; left: auto; }

    .inicio-numeros { padding-block: 30px; }
    .numero-item { min-width: 0; padding: 10px 6px; }
    .numero-item strong { font-size: clamp(24px, 7vw, 32px); }
    .numero-item span { font-size: 12px; }

    .sec-grelha { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    .sec-item { min-width: 0; padding: 17px 10px; font-size: 13px; overflow-wrap: anywhere; }
    .sec-item i { font-size: 25px; }

    .cta-caixa, .bloco-cta-caixa { padding: 28px 20px; border-radius: 20px; }
    .cta-caixa h2, .bloco-cta-caixa h2 { font-size: clamp(25px, 7vw, 32px); }
    .cta-caixa p { font-size: 15px; }
    .cta-dados { grid-template-columns: minmax(0, 1fr); }
    .cta-botoes { gap: 10px; }
    .cta-botoes .inicio-btn { flex: 1 1 100%; justify-content: center; }
    .fd-botoes { gap: 10px; padding-inline: 12px; }
    .fd-btn { justify-content: center; }

    .subscribe .cta-image { max-width: 520px; margin-inline: auto; }
    .subscribe .cta-image img { width: 100%; height: auto; }
    .subscribe .cta-form .input-group { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; }
    .subscribe .cta-form .form-control,
    .subscribe .cta-form .btn { width: 100%; min-height: 46px; border-radius: var(--btn-raio, 6px) !important; }

    .flutuantes-direita { right: 10px; }
    .cookie-banner { left: 10px; right: 10px; bottom: 10px; padding: 14px; gap: 12px; }
    .cookie-texto { flex-basis: 100%; }
    .cookie-botoes { width: 100%; }
    .cookie-botoes button { flex: 1 1 0; padding-inline: 12px; }
  }

  @media (max-width: 380px) {
    .carrossel-hero .ch-conteudo { padding-inline: 14px; }
    .carrossel-hero .ch-titulo { font-size: 29px; }
    .carrossel-hero .ch-btn { padding-inline: 13px; }
    .header.header-flutuante .header-pilula { padding-left: 10px; padding-right: 6px; }
    .header-flutuante .btn-login { padding-inline: 8px; }
  }
