/* BeClean - menu de navegacao
   Cores da marca: azul royal #0860E8, azul profundo #041EAA, marinho #1A3D93, rosa #FCA2D3 */
:root {
  --bc-blue: #0860E8;
  --bc-deep: #041EAA;
  --bc-navy: #1A3D93;
  --bc-sky: #5B9DFF;
  --bc-pink: #FCA2D3;
  --bc-pink-soft: #FFE3F1;
  --bc-ink: #12204A;
  --bc-glass: rgba(255, 255, 255, .5);
  --bc-shadow: 0 10px 35px -12px rgba(8, 40, 140, .35);
  --bc-radius: 999px;
}

/* Menu antigo do Elementor (substituido) e selo do reCAPTCHA (a chave so vale em beclean.pt) */
.elementor-element-c6fc4fd { display: none !important; }
.grecaptcha-badge { visibility: hidden !important; }
/* Banner da home: espaco para o menu fixo nao tapar o titulo */
.home .elementor-element.elementor-element-733a1bda { margin-top: 0 !important; } /* tinha -105px para o banner subir sob o menu antigo */
.elementor-element-7a5a3b7b > .elementor-container { padding-top: 84px; padding-bottom: 40px; }
@media (min-width: 1025px) {
  .elementor-element-7a5a3b7b > .elementor-container {
    min-height: clamp(560px, 86vh, 820px) !important;
    padding-top: 90px; /* menu fino sobre o banner + respiro */
    padding-bottom: 110px; /* respiro + curva inferior */
  }
}
@media (min-width: 768px) and (max-width: 1024px) {
  .elementor-element-7a5a3b7b > .elementor-container { min-height: 520px !important; padding-top: 110px; padding-bottom: 100px; }
}

/* Cards de servicos da home: cartao inteiro clicavel, titulo e descricao mais sofisticados */
.home .elementor-widget-image-box .elementor-image-box-wrapper {
  position: relative;
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
  border-radius: 22px;
  background: #fff;
  text-align: left !important;
  box-shadow: 0 1px 0 #E8EEF9, 0 14px 34px -20px rgba(8, 40, 140, .4);
  transition: transform .35s ease, box-shadow .35s ease;
}
.home .elementor-widget-image-box .elementor-image-box-wrapper:hover {
  transform: translateY(-6px);
  box-shadow: 0 1px 0 #E8EEF9, 0 26px 46px -22px rgba(8, 40, 140, .55);
}
.home .elementor-widget-image-box .elementor-image-box-img {
  width: 100% !important;
  margin: 0 !important;
  overflow: hidden;
  aspect-ratio: 3 / 2;
}
.home .elementor-widget-image-box .elementor-image-box-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 0 !important;
  transition: transform .6s ease;
}
.home .elementor-widget-image-box .elementor-image-box-wrapper:hover img { transform: scale(1.06); }
.home .elementor-widget-image-box .elementor-image-box-content {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 22px 24px 24px;
}
.home .elementor-widget-image-box .elementor-image-box-title {
  margin: 0 0 10px !important;
  padding-left: 12px;
  border-left: 4px solid;
  border-image: linear-gradient(var(--bc-pink), var(--bc-blue)) 1; /* traco da marca */
  font-family: "Rubik", system-ui, sans-serif !important;
  font-size: 19px !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
  letter-spacing: -.2px !important;
  text-transform: none !important;
}
.home .elementor-widget-image-box .elementor-image-box-title::first-letter { text-transform: uppercase; }
.home .elementor-widget-image-box .elementor-image-box-title a {
  color: var(--bc-ink) !important;
  text-decoration: none !important;
  transition: color .25s;
}
.home .elementor-widget-image-box .elementor-image-box-title a::after { /* torna o cartao todo clicavel */
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
}
.home .elementor-widget-image-box .elementor-image-box-wrapper:hover .elementor-image-box-title a { color: var(--bc-blue) !important; }
.home .elementor-widget-image-box .elementor-image-box-description {
  margin: 0 0 18px;
  font-family: "Rubik", system-ui, sans-serif !important;
  font-size: 14.5px !important;
  font-weight: 400 !important;
  line-height: 1.7 !important;
  color: #6B7393 !important;
}
.home .elementor-widget-image-box .elementor-image-box-content::after {
  content: "Saber mais  →";
  margin-top: auto;
  white-space: pre;
  font: 600 14px/1 "Rubik", system-ui, sans-serif;
  color: var(--bc-blue);
  transition: letter-spacing .3s ease;
}
.home .elementor-widget-image-box .elementor-image-box-wrapper:hover .elementor-image-box-content::after { letter-spacing: .4px; }
.home .elementor-widget-image-box,
.home .elementor-widget-image-box > .elementor-widget-container { height: 100%; }

.bc-nav, .bc-nav * { box-sizing: border-box; }
.bc-nav {
  position: absolute; /* fica no topo e rola com a pagina: o visual nunca muda */
  top: 14px;
  left: 0;
  right: 0;
  margin: 0 auto; /* sem transform: senao o painel fixo mobile fica preso a barra */
  z-index: 9990;
  width: min(1180px, calc(100% - 28px));
  font-family: "Rubik", system-ui, sans-serif;
  transition: top .35s ease;
}
.bc-nav__bar {
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 10px 10px 10px 22px;
  border-radius: var(--bc-radius);
  background: var(--bc-glass);
  -webkit-backdrop-filter: saturate(180%) blur(18px);
  backdrop-filter: saturate(180%) blur(18px);
  border: 1px solid rgba(255, 255, 255, .7);
  box-shadow: var(--bc-shadow);
  transition: background .35s ease, box-shadow .35s ease, border-color .35s ease;
}

/* Sobre o banner da home: barra transparente com texto branco ate rolar */
.bc-nav--over-hero:not(.is-scrolled) .bc-nav__bar {
  background: rgba(10, 20, 70, .18);
  border-color: rgba(255, 255, 255, .22);
  box-shadow: none;
}
.bc-nav--over-hero:not(.is-scrolled) .bc-nav__link,
.bc-nav--over-hero:not(.is-scrolled) .bc-logo__clean { color: #fff; }
.bc-nav--over-hero:not(.is-scrolled) .bc-burger span { background: #fff; }
.bc-nav.is-scrolled { top: 8px; }

/* Logotipo */
.bc-logo {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  text-decoration: none !important;
  flex-shrink: 0;
}
.bc-logo img { width: 38px; height: auto; display: block; transition: transform .4s ease; }
.bc-logo:hover img { transform: translateY(-2px) rotate(-6deg); }
.bc-logo__text { font-size: 25px; line-height: 1; letter-spacing: -.5px; white-space: nowrap; }
.bc-logo__be { color: var(--bc-pink); font-weight: 800; }
.bc-logo__clean { color: var(--bc-deep); font-weight: 300; transition: color .3s; }

/* Links */
.bc-nav__menu {
  display: flex;
  align-items: center;
  gap: 2px;
  margin: 0 0 0 auto;
  padding: 0;
  list-style: none;
}
.bc-nav__item { position: relative; margin: 0; }
.bc-nav__link {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 16px;
  border: 0;
  background: none;
  border-radius: var(--bc-radius);
  font: 500 15px/1 "Rubik", system-ui, sans-serif;
  color: var(--bc-ink);
  text-decoration: none !important;
  cursor: pointer;
  transition: color .25s, background .25s;
}
.bc-nav__link::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 4px;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--bc-pink);
  transform: translateX(-50%) scale(0);
  transition: transform .25s ease;
}
.bc-nav__link:hover,
.bc-nav__link:focus-visible { color: var(--bc-blue); background: rgba(8, 96, 232, .08); outline: none; }
.bc-nav--over-hero:not(.is-scrolled) .bc-nav__link:hover { color: #fff; background: rgba(255, 255, 255, .14); }
.bc-nav__link.is-active::after,
.bc-nav__link:hover::after { transform: translateX(-50%) scale(1); }
.bc-nav__link.is-active { color: var(--bc-blue); }
.bc-nav--over-hero:not(.is-scrolled) .bc-nav__link.is-active { color: #fff; }
.bc-chevron { width: 10px; height: 10px; transition: transform .25s; }
.bc-nav__item--has-sub:hover .bc-chevron,
.bc-nav__item--has-sub.is-open .bc-chevron { transform: rotate(180deg); }

/* Dropdown de servicos */
.bc-sub {
  position: absolute;
  top: calc(100% + 14px);
  left: 50%;
  width: 560px;
  padding: 14px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px;
  background: #fff;
  border-radius: 22px;
  box-shadow: 0 24px 60px -18px rgba(8, 40, 140, .45);
  opacity: 0;
  visibility: hidden;
  transform: translate(-50%, 8px);
  transition: opacity .22s ease, transform .22s ease, visibility .22s;
}
.bc-sub::before { /* ponte para o hover nao fechar */
  content: "";
  position: absolute;
  inset: -16px 0 auto 0;
  height: 16px;
}
.bc-nav__item--has-sub:hover .bc-sub,
.bc-nav__item--has-sub:focus-within .bc-sub,
.bc-nav__item--has-sub.is-open .bc-sub {
  opacity: 1;
  visibility: visible;
  transform: translate(-50%, 0);
}
.bc-sub__link {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 9px;
  border-radius: 14px;
  text-decoration: none !important;
  transition: background .2s;
}
.bc-sub__link:hover, .bc-sub__link:focus-visible { background: #F1F6FF; outline: none; }
.bc-sub__link.is-active { background: var(--bc-pink-soft); }
.bc-sub__thumb {
  flex-shrink: 0;
  width: 54px;
  height: 54px;
  border-radius: 12px;
  object-fit: cover;
  box-shadow: 0 0 0 3px #fff, 0 0 0 4px rgba(252, 162, 211, .8);
}
.bc-sub__title { display: block; font: 600 14px/1.25 "Rubik", sans-serif; color: var(--bc-ink); }
.bc-sub__desc { display: block; margin-top: 3px; font: 400 12px/1.35 "Rubik", sans-serif; color: #6B7393; }
.bc-sub__link:hover .bc-sub__title { color: var(--bc-blue); }

/* Botao de orcamento */
.bc-cta {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  flex-shrink: 0;
  padding: 12px 22px;
  border-radius: var(--bc-radius);
  background: linear-gradient(135deg, var(--bc-blue), var(--bc-deep));
  color: #fff !important;
  font: 600 14.5px/1 "Rubik", sans-serif;
  text-decoration: none !important;
  box-shadow: 0 8px 20px -8px rgba(8, 96, 232, .8), inset 0 0 0 2px rgba(255, 255, 255, .12);
  transition: transform .25s ease, box-shadow .25s ease;
}
.bc-cta i { font-size: 18px; }
.bc-cta:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 26px -8px rgba(8, 96, 232, .9), 0 0 0 4px rgba(252, 162, 211, .55);
}

/* Botao hamburguer */
.bc-burger {
  display: none;
  position: relative;
  width: 46px;
  height: 46px;
  margin-left: auto;
  border: 0;
  border-radius: 50%;
  background: transparent;
  cursor: pointer;
}
.bc-burger span {
  position: absolute;
  left: 13px;
  width: 20px;
  height: 2px;
  border-radius: 2px;
  background: var(--bc-ink);
  transition: transform .3s ease, opacity .2s, top .3s ease, background .3s;
}
.bc-burger span:nth-child(1) { top: 16px; }
.bc-burger span:nth-child(2) { top: 22px; width: 14px; }
.bc-burger span:nth-child(3) { top: 28px; }
.bc-nav.is-menu-open .bc-burger span { background: #fff; }
.bc-nav.is-menu-open .bc-burger span:nth-child(1) { top: 22px; transform: rotate(45deg); }
.bc-nav.is-menu-open .bc-burger span:nth-child(2) { opacity: 0; }
.bc-nav.is-menu-open .bc-burger span:nth-child(3) { top: 22px; transform: rotate(-45deg); }

/* Painel mobile */
.bc-panel {
  position: fixed;
  inset: 0;
  z-index: -1;
  height: 100vh;
  height: 100dvh;
  padding: 88px 22px 28px;
  overflow-y: auto;
  background:
    radial-gradient(120% 60% at 100% 0%, rgba(252, 162, 211, .45), transparent 60%),
    linear-gradient(160deg, var(--bc-blue) 0%, var(--bc-deep) 70%);
  clip-path: circle(0 at calc(100% - 50px) 40px);
  visibility: hidden;
  transition: clip-path .55s cubic-bezier(.7, 0, .2, 1), visibility .55s;
}
.bc-nav.is-menu-open .bc-panel { clip-path: circle(150% at calc(100% - 50px) 40px); visibility: visible; }
.bc-panel__links { margin: 0; padding: 0; list-style: none; }
.bc-panel__links > li {
  margin: 0;
  opacity: 0;
  transform: translateY(14px);
  transition: opacity .35s ease, transform .35s ease;
}
.bc-nav.is-menu-open .bc-panel__links > li { opacity: 1; transform: none; }
.bc-nav.is-menu-open .bc-panel__links > li:nth-child(2) { transition-delay: .05s; }
.bc-nav.is-menu-open .bc-panel__links > li:nth-child(3) { transition-delay: .1s; }
.bc-nav.is-menu-open .bc-panel__links > li:nth-child(4) { transition-delay: .15s; }
.bc-nav.is-menu-open .bc-panel__links > li:nth-child(5) { transition-delay: .2s; }
.bc-panel__link {
  display: block;
  padding: 11px 2px;
  border-bottom: 1px solid rgba(255, 255, 255, .14);
  font: 500 17px/1.3 "Rubik", sans-serif;
  color: #fff !important;
  text-decoration: none !important;
}
.bc-panel__link.is-active { color: var(--bc-pink) !important; }
.bc-panel__label {
  margin: 22px 0 10px;
  font: 600 12px/1 "Rubik", sans-serif;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--bc-pink);
}
.bc-panel__services { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 0; padding: 0; list-style: none; }
.bc-panel__services a {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 8px;
  border-radius: 14px;
  background: rgba(255, 255, 255, .1);
  font: 500 13px/1.25 "Rubik", sans-serif;
  color: #fff !important;
  text-decoration: none !important;
}
.bc-panel__services a.is-active { background: rgba(252, 162, 211, .3); }
.bc-panel__services img { width: 38px; height: 38px; border-radius: 10px; object-fit: cover; flex-shrink: 0; }
.bc-panel .bc-cta {
  display: flex;
  justify-content: center;
  margin-top: 28px;
  padding: 16px;
  background: #fff;
  color: var(--bc-deep) !important;
  font-size: 16px;
}
.bc-panel .bc-cta i { color: #25D366; }

/* Espaco para o menu fixo nas paginas internas */
.bc-nav-spacer { height: 64px; }

/* Topo de todas as paginas: menu simples, so links, sem barra (estilo do site original).
   Ao rolar, a barra translucida volta. Branco sobre o banner da home, azul-escuro no resto. */
.bc-nav:not(.is-scrolled) { top: 6px; }
.bc-nav:not(.is-scrolled):not(.is-menu-open) .bc-nav__bar {
  background: transparent;
  border-color: transparent;
  box-shadow: none;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
.bc-logo__badge { display: none !important; }

@media (min-width: 1025px) {
  .bc-nav:not(.is-scrolled) .bc-nav__bar { padding: 4px 0; }
  .bc-nav:not(.is-scrolled) .bc-logo,
  .bc-nav:not(.is-scrolled) .bc-nav__bar > .bc-cta { display: none; }
  .bc-nav:not(.is-scrolled) .bc-nav__menu { margin: 0 auto 0 50px; }
  .bc-nav:not(.is-scrolled) .bc-nav__link { padding: 10px 14px; font-weight: 600; font-size: 14.5px; }
  .bc-nav--over-hero:not(.is-scrolled) .bc-nav__link { text-shadow: 0 1px 8px rgba(0, 0, 0, .35); }
  .bc-nav:not(.is-scrolled) .bc-nav__link:hover { background: none; }
  .bc-nav:not(.is-scrolled) .bc-nav__link::after { /* ponto vira sublinhado */
    bottom: 2px;
    width: calc(100% - 20px);
    height: 3px;
    border-radius: 3px;
    background: var(--bc-blue);
    transform: translateX(-50%) scaleX(0);
  }
  .bc-nav:not(.is-scrolled) .bc-nav__link.is-active::after,
  .bc-nav:not(.is-scrolled) .bc-nav__link:hover::after { transform: translateX(-50%) scaleX(1); }
  .bc-nav:not(.is-scrolled) .bc-chevron { display: none; }
}

/* Mobile: logotipo redondo da marca no canto e botao do menu */
@media (max-width: 1024px) {
  .bc-logo img:not(.bc-logo__badge), .bc-logo__text { display: none !important; }
  .bc-logo__badge {
    display: block !important;
    width: 58px !important;
    height: 58px;
    border-radius: 50%;
    box-shadow: 0 6px 18px -6px rgba(4, 30, 170, .55);
    transition: width .3s ease, height .3s ease;
  }
  .bc-nav.is-scrolled .bc-logo__badge { width: 44px !important; height: 44px; }
  .bc-logo:hover img { transform: none; }
  .bc-nav:not(.is-scrolled) .bc-nav__bar { padding: 4px 0; }
  .bc-burger {
    background: rgba(8, 96, 232, .1);
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
  }
  .bc-nav--over-hero:not(.is-scrolled) .bc-burger { background: rgba(255, 255, 255, .2); }
  .bc-nav.is-menu-open .bc-burger { background: rgba(255, 255, 255, .15); }
}

body.bc-lock { overflow: hidden; }
body.bc-lock [id^="gb-widget"] { display: none !important; } /* botao flutuante do WhatsApp */

@media (max-width: 1024px) {
  .bc-nav__menu, .bc-nav__bar > .bc-cta { display: none; }
  .bc-burger { display: block; }
  .bc-nav__bar { padding: 6px 6px 6px 18px; }
  .bc-nav.is-menu-open .bc-nav__bar { background: transparent; border-color: transparent; box-shadow: none; }
  .bc-nav.is-menu-open .bc-logo__clean { color: #fff; }
}
@media (max-width: 420px) {
  .bc-logo__text { font-size: 22px; }
  .bc-logo img { width: 32px; }
  .bc-panel__services { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  .bc-nav *, .bc-panel { transition: none !important; }
}
