/* LP Cartola Imobiliário — a estrutura da LP atual (soluções, lista de vídeos, portfólio, vantagens,
   logos, depoimentos, formulário) na identidade nova. O portfólio virou uma vitrine: um player só e
   um trilho filtrável por tipo de vídeo, em vez da grade de players da LP atual.
   A LP de vídeo institucional também carrega este arquivo (vitrine, vantagens, depoimentos, formulário). */

.imob-titulo { font-size: clamp(32px, 4.3vw, 60px); }
.pg-imob .abertura__conteudo { max-width: 1120px; }
/* no desktop, título e texto do topo ficam em duas linhas cada, de largura parecida (a quebra é do
   navegador: uma quebra fixa no título vazava da tela no celular) */
@media (min-width: 901px) { .pg-imob .imob-titulo { text-wrap: balance; } .pg-imob .abertura .lead { max-width: 84ch; text-wrap: balance; } }

/* ---------------------------------------------------------------- soluções */

/* a câmera (recorte sem fundo) fica de pé na borda de baixo da seção, como em O que fazemos */
.imob-solucoes { overflow: hidden; padding-bottom: 0; }
.imob-solucoes__miolo { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); grid-template-areas: "texto foto" "lista foto"; gap: clamp(28px, 4vw, 56px) clamp(32px, 5vw, 72px); align-items: start; }
.imob-solucoes__texto { grid-area: texto; display: grid; gap: 22px; }
/* foto quadrada apoiada na base da seção e saindo pela borda direita: o prédio, o monitor e a câmera */
/* a foto ocupa a coluna inteira, do topo à base da seção e até a borda da tela; o corte em pé fica na
   câmera, cujo monitor mostra o prédio, com a lateral do prédio entrando à esquerda */
.imob-solucoes__foto { grid-area: foto; align-self: stretch; position: relative; min-height: 560px; margin: calc(var(--secao) * -1) calc(var(--sangria) * -1) 0 0; }
.imob-solucoes__foto img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 78% center; }
.imob-solucoes__lista { grid-area: lista; display: grid; gap: 18px; justify-items: start; padding-bottom: var(--secao); }
.imob-solucoes__lista-tit { font: 600 13px/1.2 var(--f-texto); letter-spacing: .14em; text-transform: uppercase; color: var(--marinho); }
.imob-solucoes__lista ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 28px; width: 100%; border-top: 1px solid var(--fio-claro); }
.imob-solucoes__lista li { border-bottom: 1px solid var(--fio-claro); }
.imob-solucoes__lista li a, .imob-solucoes__item { display: flex; align-items: center; gap: 12px; padding: 15px 0; font: 600 16px/1.3 var(--f-texto); color: var(--tinta); }
.imob-solucoes__lista li a .seta { margin-left: auto; width: 14px; height: 14px; color: var(--azul); opacity: 0; transform: translateX(-4px); transition: opacity .2s, transform .2s var(--ease); }
.imob-solucoes__lista li a:hover { color: var(--marinho-medio); }
.imob-solucoes__lista li a:hover .seta { opacity: 1; transform: none; }
.imob-solucoes__lista .botao { margin-top: 10px; }
@media (max-width: 900px) {
  .imob-solucoes__miolo { grid-template-columns: 1fr; grid-template-areas: "texto" "lista" "foto"; }
  .imob-solucoes__lista { padding-bottom: clamp(32px, 7vw, 48px); }
  .imob-solucoes__foto { min-height: 0; aspect-ratio: 4 / 3; margin: 0 calc(var(--gutter) * -1); }
  .imob-solucoes__foto img { object-position: 65% center; }
}
@media (max-width: 520px) { .imob-solucoes__lista ul { grid-template-columns: 1fr; } .imob-solucoes__lista .botao { align-self: stretch; justify-self: stretch; } }

/* ---------------------------------------------------------------- vitrine (portfólio) */

.vitrine__dica { color: var(--texto-2); font-size: 15px; max-width: 32ch; }
.vitrine { display: grid; grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); grid-template-areas: "controles controles" "palco trilho"; gap: 24px clamp(20px, 2.4vw, 32px); }
.vitrine__controles { grid-area: controles; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; }
.vitrine__palco { grid-area: palco; display: grid; gap: 18px; align-content: start; }
.vitrine__tela { position: relative; aspect-ratio: 16 / 9; border-radius: var(--raio); overflow: hidden; background: #000; box-shadow: 0 30px 70px rgba(0, 0, 0, .35); }
.vitrine__tela iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.vitrine__capa { position: absolute; inset: 0; padding: 0; border: 0; background: none; }
.vitrine__capa img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease); }
.vitrine__capa::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(4, 24, 42, 0) 40%, rgba(4, 24, 42, .5)); }
.vitrine__capa:hover img { transform: scale(1.02); }
.vitrine__play { position: absolute; left: 50%; top: 50%; translate: -50% -50%; z-index: 1; width: 84px; height: 84px; border-radius: 50%; display: grid; place-items: center; background: rgba(239, 252, 255, .94); color: var(--marinho); transition: transform .3s var(--ease); }
.vitrine__play svg { width: 24px; height: 24px; margin-left: 4px; }
.vitrine__capa:hover .vitrine__play { transform: scale(1.06); }
.vitrine__legenda { display: grid; gap: 6px; }
.vitrine__tipo { font: 600 12px/1.2 var(--f-texto); letter-spacing: .14em; text-transform: uppercase; color: var(--ceu); }
.vitrine__setas { display: none; gap: 8px; }
.vitrine__seta { width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; background: transparent; border: 1px solid var(--fio); color: var(--gelo); transition: background .2s, border-color .2s; }
.vitrine__seta:hover { background: rgba(149, 201, 216, .1); border-color: rgba(149, 201, 216, .5); }
.vitrine__seta svg { width: 16px; height: 16px; }

/* lista ao lado do player (desktop): rola sozinha, na altura do player */
.vitrine__trilho {
  grid-area: trilho; display: grid; align-content: start; gap: 4px; margin: 0; padding-right: 6px;
  max-height: var(--alt-palco, 560px); overflow-y: auto; scroll-behavior: smooth; overscroll-behavior: contain;
  scrollbar-width: thin; scrollbar-color: rgba(149, 201, 216, .35) transparent;
}
.vitrine__trilho li[hidden] { display: none; }
.vitrine__item { width: 100%; display: grid; grid-template-columns: 136px 1fr; grid-template-rows: auto 1fr; column-gap: 14px; row-gap: 4px; align-items: start; padding: 8px; border: 0; border-radius: var(--raio-p); background: none; text-align: left; transition: background .2s; }
.vitrine__item:hover { background: rgba(149, 201, 216, .07); }
.vitrine__item[aria-pressed="true"] { background: rgba(149, 201, 216, .13); }
.vitrine__item-capa { grid-row: 1 / span 2; position: relative; aspect-ratio: 16 / 9; border-radius: 6px; overflow: hidden; }
.vitrine__item-capa img { width: 100%; height: 100%; object-fit: cover; opacity: .82; transition: opacity .25s; }
.vitrine__item:hover .vitrine__item-capa img, .vitrine__item[aria-pressed="true"] .vitrine__item-capa img { opacity: 1; }
/* o play aparece sempre, para o trilho se ler como lista de vídeos */
.vitrine__item-play { position: absolute; left: 8px; bottom: 8px; width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; background: rgba(239, 252, 255, .92); color: var(--marinho); transition: transform .25s var(--ease); }
.vitrine__item-play svg { width: 9px; height: 9px; margin-left: 1px; }
.vitrine__item:hover .vitrine__item-play { transform: scale(1.12); }
.vitrine__item-tit { font: 600 14px/1.35 var(--f-texto); color: var(--gelo); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.vitrine__item-tipo { font-size: 12px; color: var(--texto-2); }

/* celular e tablet: player em cima, lista vira trilho horizontal com setas */
@media (max-width: 900px) {
  .vitrine { grid-template-columns: minmax(0, 1fr); grid-template-areas: "controles" "palco" "trilho"; }
  .vitrine__setas { display: flex; }
  .vitrine__trilho { max-height: none; overflow-y: visible; overflow-x: auto; grid-auto-flow: column; grid-auto-columns: calc((100% - 16px) / 2.3); gap: 16px; scroll-snap-type: x mandatory; padding: 0 0 12px; }
  .vitrine__trilho li { scroll-snap-align: start; }
  .vitrine__item { grid-template-columns: 1fr; padding: 0; background: none !important; }
  .vitrine__item-capa { grid-row: auto; outline: 2px solid transparent; outline-offset: 3px; }
  .vitrine__item[aria-pressed="true"] .vitrine__item-capa { outline-color: var(--ceu); }
}
@media (max-width: 520px) { .vitrine__trilho { grid-auto-columns: 72%; } .vitrine__play { width: 64px; height: 64px; } }

/* ---------------------------------------------------------------- vantagens */

.vantagens { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); border-top: 1px solid var(--fio); }
.vantagens li { display: grid; gap: 12px; align-content: start; padding: 28px 22px 8px 0; }
.vantagens li + li { padding-left: 22px; border-left: 1px solid var(--fio); }
.vantagens h3 { font: 400 22px/1.2 var(--f-display); color: var(--gelo); }
.vantagens p { font-size: 15px; color: var(--texto); }
@media (max-width: 1080px) {
  .vantagens { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .vantagens li, .vantagens li + li { padding: 24px 20px 24px 0; border-left: 0; border-bottom: 1px solid var(--fio); }
}
@media (max-width: 560px) { .vantagens { grid-template-columns: 1fr; } }

/* ---------------------------------------------------------------- depoimentos */

.depo { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: clamp(32px, 5vw, 80px); align-items: start; }
.depo__cabeca { display: grid; gap: 22px; }
.depo__nomes { display: grid; margin-top: 12px; border-top: 1px solid var(--fio); }
.depo__nomes button { width: 100%; display: grid; gap: 4px; padding: 16px 0 16px 0; background: none; border: 0; border-bottom: 1px solid var(--fio); text-align: left; transition: padding .3s var(--ease); }
.depo__nomes strong { font: 600 16px/1.2 var(--f-texto); color: rgba(239, 252, 255, .66); transition: color .2s; }
.depo__nomes span { font-size: 13px; color: var(--texto-2); }
.depo__nomes button:hover strong { color: var(--gelo); }
.depo__nomes button[aria-selected="true"] { padding-left: 14px; box-shadow: inset 2px 0 0 var(--ceu); }
.depo__nomes button[aria-selected="true"] strong { color: var(--gelo); }
.depo__palco { position: relative; display: grid; gap: 28px; padding: clamp(28px, 4vw, 56px); border-radius: var(--raio); background: linear-gradient(160deg, rgba(11, 78, 128, .35), rgba(4, 24, 42, .2) 70%); border: 1px solid var(--fio); min-height: 420px; align-content: space-between; }
.depo__aspas { width: 48px; height: auto; color: var(--azul); }
.depo__item { margin: 0; display: grid; gap: 24px; }
.depo__item blockquote { margin: 0; font-size: clamp(22px, 2.2vw, 30px); line-height: 1.35; color: var(--gelo); }
.depo__item figcaption { display: grid; gap: 4px; padding-top: 18px; border-top: 1px solid var(--fio); }
.depo__item figcaption strong { font: 600 16px/1.2 var(--f-texto); color: var(--gelo); }
.depo__item figcaption span { font-size: 14px; color: var(--texto-2); }
.depo__nav { display: flex; align-items: center; gap: 14px; }
/* fio do tempo: enche até o próximo depoimento */
.depo__tempo { display: none; flex: 1; height: 1px; background: var(--fio); overflow: hidden; }
.tem-rodizio .depo__tempo { display: block; }
.depo__tempo i { display: block; height: 100%; transform-origin: left; transform: scaleX(0); background: var(--faixa); }
.depo__tempo i.is-contando { animation: enche-depo var(--tempo-depo, 8s) linear forwards; }
.is-pausado .depo__tempo i, .is-fora .depo__tempo i { animation-play-state: paused; }
@keyframes enche-depo { from { transform: scaleX(0); } to { transform: scaleX(1); } }
.depo__contador { font: 600 13px/1 var(--f-texto); color: var(--texto-2); font-variant-numeric: tabular-nums; min-width: 44px; text-align: center; }
@media (max-width: 900px) { .depo { grid-template-columns: 1fr; } .depo__nomes { display: none; } .depo__palco { min-height: 0; } }

/* ---------------------------------------------------------------- formulário */

.imob-form { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(32px, 5vw, 80px); align-items: start; }
.imob-form__texto { display: grid; gap: 22px; }
.imob-form__contatos { display: grid; gap: 8px; padding-top: 22px; border-top: 1px solid var(--fio); font-size: 17px; color: var(--gelo); }
.imob-form__contatos a:hover { color: var(--ceu); }
.imob-form__form { padding: clamp(24px, 3vw, 40px); border-radius: var(--raio); background: rgba(4, 24, 42, .6); border: 1px solid var(--fio); }
@media (max-width: 900px) { .imob-form { grid-template-columns: 1fr; } }
