/* Bless: seções novas (clientes, eventos reais, galeria, pré-qualificação) */
.bless {
	--bl-fundo: #091118;
	--bl-fundo-2: #0d1923;
	--bl-navy: #172d41;
	--bl-linha: rgba(233, 248, 249, .12);
	--bl-linha-forte: rgba(233, 248, 249, .22);
	--bl-texto: #e9f8f9;
	--bl-suave: rgba(233, 248, 249, .68);
	--bl-ouro: #dca958;
	--bl-ouro-claro: #ecc683;
	--bl-curva: cubic-bezier(.22, .8, .24, 1);
	position: relative;
	background: var(--bl-fundo);
	color: var(--bl-texto);
	font-family: "Work Sans", sans-serif;
	font-size: 16px;
	line-height: 1.6;
	padding: 96px 0;
	-webkit-font-smoothing: antialiased;
}
.bless *, .bless *::before, .bless *::after { box-sizing: border-box; }
.bless [hidden] { display: none !important; }
.bless button { text-transform: none; letter-spacing: normal; box-shadow: none; }
.bless .bl-wrap { width: 100%; max-width: 1180px; margin: 0 auto; padding: 0 24px; }
.bless .bl-eyebrow {
	margin: 0 0 14px; color: var(--bl-ouro); font-size: 12px; font-weight: 600;
	letter-spacing: .22em; text-transform: uppercase;
}
.bless .bl-titulo {
	margin: 0; color: #fff; font-family: "Open Sans", sans-serif; font-weight: 700;
	font-size: clamp(28px, 3.6vw, 42px); line-height: 1.15; letter-spacing: -.01em; text-wrap: balance;
}
.bless .bl-sub { margin: 16px 0 0; color: var(--bl-suave); font-size: 17px; max-width: 58ch; }
.bless .bl-cabeca { margin-bottom: 48px; }

/* entrada suave */
.bless .bl-revela { opacity: 0; transform: translateY(24px); transition: opacity .9s var(--bl-curva), transform .9s var(--bl-curva); }
.bless .bl-revela.visivel { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .bless .bl-revela { opacity: 1; transform: none; transition: none; } }

/* ---------- Clientes ---------- */
.bless-clientes { padding: 80px 0; border-top: 1px solid var(--bl-linha); border-bottom: 1px solid var(--bl-linha); text-align: center; }
.bless-clientes .bl-titulo { font-size: clamp(22px, 2.4vw, 28px); }
.bless .bl-logos {
	list-style: none; margin: 44px 0 0; padding: 0;
	display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 28px 0;
}
.bless .bl-logos li {
	flex: 0 0 calc(100% / 7); display: flex; align-items: center; justify-content: center;
	height: 72px; padding: 0 18px; border-left: 1px solid var(--bl-linha);
}
.bless .bl-logos li:first-child { border-left: 0; }
.bless .bl-logos img { display: block; width: auto; max-width: 100%; opacity: .82; transition: opacity .4s var(--bl-curva); }
.bless .bl-logos li:hover img { opacity: 1; }
.bless .bl-logos img { height: var(--h, 40px); }

/* ---------- Eventos reais ---------- */
.bless-casos { background: linear-gradient(180deg, var(--bl-fundo) 0%, #0b1824 100%); }
.bless .bl-casos { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; }
.bless .bl-caso {
	display: grid; grid-template-columns: minmax(0, 250px) 1fr; gap: 28px; align-items: start;
	padding: 20px; border: 1px solid var(--bl-linha); border-radius: 22px;
	background: rgba(23, 45, 65, .35);
}
.bless .bl-video { position: relative; aspect-ratio: 9 / 16; border-radius: 14px; overflow: hidden; background: #000; }
.bless .bl-video video { width: 100%; height: 100%; object-fit: cover; display: block; }
.bless .bl-play {
	position: absolute; inset: 0; margin: auto; width: 68px; height: 68px; border-radius: 50%;
	border: 1px solid rgba(255, 255, 255, .5); background: rgba(9, 17, 24, .55); color: #fff;
	display: grid; place-items: center; cursor: pointer; padding: 0;
	-webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
	transition: transform .5s var(--bl-curva), background .4s var(--bl-curva);
}
.bless .bl-play svg { width: 26px; height: 26px; margin-left: 3px; }
.bless .bl-play:hover, .bless .bl-play:focus-visible { transform: scale(1.08); background: var(--bl-ouro); color: #091118; }
.bless .bl-video.tocando .bl-play { opacity: 0; pointer-events: none; }
.bless .bl-caso-info { padding-top: 6px; }
.bless .bl-ficha { margin: 0 0 18px; display: grid; gap: 12px; }
.bless .bl-ficha div { display: grid; gap: 2px; }
.bless .bl-ficha dt { color: var(--bl-ouro); font-size: 11px; letter-spacing: .2em; text-transform: uppercase; font-weight: 600; }
.bless .bl-ficha dd { margin: 0; color: #fff; font-family: "Open Sans", sans-serif; font-weight: 700; font-size: 18px; line-height: 1.3; }
.bless .bl-caso-info p { margin: 0 0 20px; color: var(--bl-suave); font-size: 15px; }
.bless .bl-link {
	color: var(--bl-ouro-claro); text-decoration: none; font-weight: 600; font-size: 15px;
	border-bottom: 1px solid rgba(220, 169, 88, .4); padding-bottom: 2px; transition: border-color .3s;
}
.bless .bl-link span { display: inline-block; transition: transform .4s var(--bl-curva); }
.bless .bl-link:hover { border-color: var(--bl-ouro); }
.bless .bl-link:hover span { transform: translateX(4px); }

/* ---------- Galeria ---------- */
.bless .bl-abas {
	display: grid; grid-template-columns: 1fr 1fr; gap: 6px; width: min(420px, 100%);
	padding: 6px; border: 1px solid var(--bl-linha); border-radius: 999px; margin: -16px 0 32px;
}
.bless .bl-abas button {
	font: inherit; font-size: 14px; font-weight: 500; color: var(--bl-suave); background: transparent;
	border: 0; border-radius: 999px; padding: 10px 14px; cursor: pointer; transition: background .35s var(--bl-curva), color .35s;
}
.bless .bl-abas button:hover { color: #fff; }
.bless .bl-abas button[aria-selected="true"] { background: var(--bl-ouro); color: #091118; }
.bless .bl-grade { display: grid; gap: 14px; }
.bless .bl-grade-eventos { grid-template-columns: repeat(4, 1fr); grid-auto-rows: 230px; }
.bless .bl-grade-eventos figure:nth-child(1) { grid-column: span 2; grid-row: span 2; }
.bless .bl-grade-eventos figure:nth-child(6) { grid-column: span 2; }
.bless .bl-grade-eventos figure:nth-child(6) img { object-position: center 80%; }
.bless .bl-grade-espacos { grid-template-columns: repeat(3, 1fr); grid-auto-rows: 300px; }
.bless .bl-grade figure { position: relative; margin: 0; border-radius: 16px; overflow: hidden; background: var(--bl-fundo-2); }
.bless .bl-foto { display: block; width: 100%; height: 100%; padding: 0; border: 0; background: none; cursor: zoom-in; }
.bless .bl-foto img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 1.2s var(--bl-curva); }
.bless .bl-grade figure:hover img { transform: scale(1.045); }
.bless .bl-grade figcaption {
	position: absolute; left: 0; right: 0; bottom: 0; padding: 36px 16px 14px; pointer-events: none;
	background: linear-gradient(transparent, rgba(5, 10, 15, .85)); color: #fff; font-size: 14px; font-weight: 500;
}
.bless .bl-luz {
	width: fit-content; max-width: 94vw; max-height: 92vh; padding: 0; border: 0; border-radius: 16px; background: #05090d; color: #fff; overflow: visible;
}
.bless .bl-luz::backdrop { background: rgba(3, 6, 9, .88); }
.bless .bl-luz img { display: block; width: auto; height: auto; max-width: 94vw; max-height: 82vh; border-radius: 16px 16px 0 0; }
.bless .bl-luz-leg { margin: 0; padding: 12px 18px 16px; color: var(--bl-suave); font-size: 14px; }
.bless .bl-luz button {
	position: absolute; width: 46px; height: 46px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .3);
	background: rgba(9, 17, 24, .7); color: #fff; font-size: 26px; line-height: 1; cursor: pointer; display: grid; place-items: center; padding: 0;
}
.bless .bl-luz button:hover { background: var(--bl-ouro); color: #091118; }
.bless .bl-luz-x { top: -16px; right: -16px; }
.bless .bl-luz-ant { left: -23px; top: 40%; }
.bless .bl-luz-prox { right: -23px; top: 40%; }

/* ---------- Formulário ---------- */
.bless-form { background: radial-gradient(120% 80% at 0% 0%, #12263a 0%, var(--bl-fundo) 60%); }
.bless .bl-form-grade { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 56px; align-items: start; }
.bless .bl-form-intro { position: sticky; top: 40px; }
.bless .bl-garantias { list-style: none; margin: 32px 0; padding: 0; display: grid; gap: 18px; }
.bless .bl-garantias li { display: grid; gap: 2px; padding-left: 22px; position: relative; }
.bless .bl-garantias li::before { content: ""; position: absolute; left: 0; top: 9px; width: 8px; height: 8px; border-radius: 50%; background: var(--bl-ouro); }
.bless .bl-garantias strong { color: #fff; font-weight: 600; }
.bless .bl-garantias span { color: var(--bl-suave); font-size: 15px; }
.bless .bl-whats-inline { display: inline-flex; align-items: center; gap: 10px; color: #fff; text-decoration: none; font-weight: 500; font-size: 15px; }
.bless .bl-whats-inline svg { color: #25d366; flex: none; }
.bless .bl-whats-inline:hover span { text-decoration: underline; text-underline-offset: 3px; }

.bless .bl-card {
	border: 1px solid var(--bl-linha); border-radius: 24px; padding: 32px;
	background: linear-gradient(180deg, rgba(23, 45, 65, .55), rgba(13, 25, 35, .75));
	box-shadow: 0 30px 80px -40px rgba(0, 0, 0, .7);
}
.bless .bl-passos { display: grid; grid-template-columns: repeat(3, 1fr); font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--bl-suave); }
.bless .bl-passos span:nth-child(2) { text-align: center; }
.bless .bl-passos span:nth-child(3) { text-align: right; }
.bless .bl-passos .ativo { color: var(--bl-ouro); font-weight: 600; }
.bless .bl-barra { height: 3px; border-radius: 3px; background: var(--bl-linha); margin: 10px 0 28px; overflow: hidden; }
.bless .bl-barra i { display: block; height: 100%; width: 33.33%; background: var(--bl-ouro); border-radius: 3px; transition: width .6s var(--bl-curva); }
.bless .bl-form fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.bless .bl-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.bless .bl-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.bless .bl-campo { margin-bottom: 26px; }
.bless .bl-rot { margin: 0 0 12px; color: #fff; font-weight: 600; font-size: 16px; }
.bless .bl-rot em { font-style: normal; font-weight: 400; color: var(--bl-suave); font-size: 14px; margin-left: 6px; }
.bless .bl-ops { display: grid; gap: 10px; }
.bless .bl-c4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.bless .bl-op { position: relative; display: block; cursor: pointer; }
.bless .bl-op input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.bless .bl-op span {
	display: flex; align-items: center; justify-content: center; text-align: center; height: 100%; min-height: 54px;
	padding: 10px 12px; border: 1px solid var(--bl-linha-forte); border-radius: 12px;
	color: var(--bl-texto); font-size: 14px; line-height: 1.3; background: rgba(9, 17, 24, .35);
	transition: border-color .3s var(--bl-curva), background .3s var(--bl-curva), color .3s;
}
.bless .bl-op:hover span { border-color: rgba(220, 169, 88, .6); }
.bless .bl-op input:focus-visible + span { outline: 2px solid var(--bl-ouro); outline-offset: 2px; }
.bless .bl-op input:checked + span { border-color: var(--bl-ouro); background: rgba(220, 169, 88, .14); color: #fff; box-shadow: inset 0 0 0 1px var(--bl-ouro); }
.bless .bl-campo.invalido .bl-op span, .bless .bl-txt.invalido .bl-in { border-color: #f08a7e; }
.bless .bl-linha { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.bless .bl-txt { display: grid; gap: 8px; margin-bottom: 18px; }
.bless .bl-txt > span, .bless .bl-data > span { color: #fff; font-weight: 600; font-size: 15px; }
.bless .bl-data { display: grid; gap: 8px; margin-top: 14px; max-width: 260px; }
.bless .bl-data > span { font-weight: 500; color: var(--bl-suave); font-size: 14px; }
.bless .bl-in {
	width: 100%; font: inherit; font-size: 16px; color: #fff; background: rgba(9, 17, 24, .55);
	border: 1px solid var(--bl-linha-forte); border-radius: 12px; padding: 13px 14px; min-height: 50px;
	transition: border-color .3s, box-shadow .3s; color-scheme: dark;
}
.bless textarea.bl-in { resize: vertical; min-height: 92px; }
.bless .bl-in::placeholder { color: rgba(233, 248, 249, .38); }
.bless .bl-in:focus, .bless .bl-in:focus-visible { outline: 0; background: rgba(9, 17, 24, .55); color: #fff; border-color: var(--bl-ouro); box-shadow: 0 0 0 3px rgba(220, 169, 88, .18); }
/* autopreenchimento do navegador sem trocar a cor do campo */
.bless .bl-in:-webkit-autofill,
.bless .bl-in:-webkit-autofill:hover,
.bless .bl-in:-webkit-autofill:focus {
	-webkit-text-fill-color: #fff;
	-webkit-box-shadow: 0 0 0 1000px #0e1a25 inset !important;
	caret-color: #fff;
	transition: background-color 9999s ease-out 0s;
}
.bless .bl-outro { margin-top: 10px; }
.bless .bl-lgpd { margin: 4px 0 0; color: var(--bl-suave); font-size: 13px; }
.bless .bl-erro { margin: 0 0 16px; padding: 12px 14px; border-radius: 12px; background: rgba(240, 138, 126, .12); border: 1px solid rgba(240, 138, 126, .4); color: #ffd3cd; font-size: 14px; }
.bless .bl-acoes { display: flex; gap: 12px; justify-content: flex-end; margin-top: 8px; }
.bless .bl-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 10px;
	font: inherit; font-weight: 600; font-size: 15px; letter-spacing: .01em; text-transform: none; text-decoration: none; line-height: 1.2;
	min-height: 52px; padding: 14px 28px; border-radius: 999px; border: 1px solid var(--bl-ouro);
	background: var(--bl-ouro); color: #091118; cursor: pointer;
	transition: transform .35s var(--bl-curva), background .3s, box-shadow .3s;
}
.bless .bl-btn:hover { background: var(--bl-ouro-claro); box-shadow: 0 10px 30px -10px rgba(220, 169, 88, .6); }
.bless .bl-btn:active { transform: scale(.98); }
.bless .bl-btn:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.bless .bl-btn[disabled] { opacity: .6; cursor: wait; }
.bless .bl-btn-sec { background: transparent; color: #fff; border-color: var(--bl-linha-forte); }
.bless .bl-btn-sec:hover { background: rgba(255, 255, 255, .06); box-shadow: none; }
.bless .bl-btn-whats { background: #0e8241; border-color: #0e8241; color: #fff; font-size: 16px; }
.bless .bl-btn-whats svg { color: #fff; }
.bless .bl-btn-whats:hover { background: #0b7037; border-color: #0b7037; box-shadow: 0 10px 30px -10px rgba(14, 130, 65, .7); }
.bless .bl-btn-whats:focus-visible { outline-color: #25d366; }
.bless .bl-ok { text-align: center; padding: 28px 8px; outline: 0; }
.bless .bl-ok-ico { width: 64px; height: 64px; margin: 0 auto 18px; border-radius: 50%; display: grid; place-items: center; background: rgba(220, 169, 88, .16); color: var(--bl-ouro); }
.bless .bl-ok-ico svg { width: 30px; height: 30px; }
.bless .bl-ok h3 { margin: 0 0 10px; color: #fff; font-family: "Open Sans", sans-serif; font-size: 26px; }
.bless .bl-ok p { margin: 0 auto 24px; color: var(--bl-suave); max-width: 46ch; }

/* ---------- Responsivo ---------- */
@media (max-width: 1024px) {
	.bless .bl-casos { grid-template-columns: 1fr; }
	.bless .bl-form-grade { grid-template-columns: 1fr; gap: 40px; }
	.bless .bl-form-intro { position: static; }
	.bless .bl-logos li { flex-basis: 25%; }
	.bless .bl-logos li:nth-child(5) { border-left: 0; }
}
@media (max-width: 767px) {
	.bless { padding: 72px 0; }
	.bless .bl-wrap { padding: 0 16px; }
	.bless .bl-cabeca { margin-bottom: 32px; }
	.bless-clientes { padding: 60px 0; }
	.bless .bl-logos { gap: 22px 0; }
	.bless .bl-logos li { flex-basis: 33.333%; height: 60px; padding: 0 12px; }
	.bless .bl-logos li:nth-child(5) { border-left: 1px solid var(--bl-linha); }
	.bless .bl-logos li:nth-child(3n + 1) { border-left: 0; }
	.bless .bl-logos img { height: calc(var(--h, 40px) * .75); }
	.bless .bl-caso { grid-template-columns: 1fr; padding: 14px; gap: 20px; }
	.bless .bl-video { max-width: 340px; width: 100%; margin: 0 auto; }
	.bless .bl-caso-info { padding: 0 6px 8px; }
	.bless .bl-abas { margin-top: -8px; }
	.bless .bl-grade-eventos { grid-template-columns: 1fr 1fr; grid-auto-rows: 170px; gap: 10px; }
	.bless .bl-grade-eventos figure:nth-child(1) { grid-column: span 2; grid-row: span 2; }
	.bless .bl-grade-eventos figure:nth-child(6) { grid-column: span 2; }
	.bless .bl-grade-espacos { grid-template-columns: 1fr 1fr; grid-auto-rows: 200px; gap: 10px; }
	.bless .bl-grade figcaption { font-size: 12px; padding: 28px 10px 10px; }
	.bless .bl-luz-ant { left: 6px; top: auto; bottom: 60px; }
	.bless .bl-luz-prox { right: 6px; top: auto; bottom: 60px; }
	.bless .bl-luz-x { top: 8px; right: 8px; }
	.bless .bl-card { padding: 22px 16px; border-radius: 20px; }
	.bless .bl-c4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.bless .bl-linha { grid-template-columns: 1fr; gap: 0; }
	.bless .bl-acoes { flex-direction: column-reverse; }
	.bless .bl-acoes .bl-btn { width: 100%; }
	.bless .bl-data { max-width: none; }
}

/* =======================================================================
   Formulário no topo da página (hero)
   O formulário foi desenhado para uma seção de largura inteira. Aqui ele
   vive numa coluna estreita, então: duas colunas de opções em vez de
   quatro, tipografia e espaços menores, e nada de rolagem dentro do
   cartão — quem rola é a página.
   ======================================================================= */
.bl-hero-wrap.bless-form { background: none; padding: 0; }
.bl-hero-wrap { display: flex; justify-content: flex-end; width: 100%; }

.bless .bl-card.bl-card--hero {
  width: min(480px, 100%);
  margin: 0;
  padding: 26px 24px;
  background: rgba(9, 17, 24, .88);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border: 1px solid var(--bl-linha-forte);
  border-radius: 22px;
  box-shadow: 0 30px 70px rgba(0, 0, 0, .5);
}

/* duas colunas: o rótulo cabe sem quebrar em pedaços */
.bl-card--hero .bl-ops,
.bl-card--hero .bl-c4 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.bl-card--hero .bl-op span {
  min-height: 46px;
  padding: 10px 12px;
  font-size: 13.5px;
  line-height: 1.25;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  hyphens: none;
}

/* respiro menor entre blocos, para o cartão não ficar interminável */
.bl-card--hero .bl-campo { margin-bottom: 18px; }
.bl-card--hero .bl-rot { font-size: 14.5px; margin-bottom: 9px; }
.bl-card--hero .bl-passos { font-size: 11px; }
.bl-card--hero .bl-linha { grid-template-columns: 1fr; gap: 0; }
.bl-card--hero .bl-txt span { font-size: 13px; }
.bl-card--hero .bl-lgpd { font-size: 11.5px; }
.bl-card--hero .bl-acoes { margin-top: 18px; }

/* o cartão fica logo no topo: nasce visível, sem animação de entrada
   (animar aqui deixava um vazio na tela nos primeiros instantes) */
.bless .bl-card.bl-card--hero.bl-revela {
  opacity: 1 !important;
  transform: none !important;
  transition: none !important;
}

/* telas médias: o cartão desce e ocupa a largura toda */
@media (max-width: 1024px) {
  .bl-hero-wrap { justify-content: center; }
  .bless .bl-card.bl-card--hero { width: 100%; max-width: 560px; }
}
@media (max-width: 480px) {
  .bless .bl-card.bl-card--hero { padding: 22px 16px; }
  .bl-card--hero .bl-op span { min-height: 44px; font-size: 13px; }
}
