/* ============================================================
   CASA PARAÍSO, lightbox de fotos + affordance de foto clicável
   Arquivo novo (cache imutável de /assets/*: bb.css intocado)
   ============================================================ */

/* ---------- affordance: a foto é clicável ---------- */
a[data-lightbox]{display:block;position:relative;cursor:zoom-in;overflow:hidden}
a[data-lightbox] img{transition:transform .5s cubic-bezier(.22,.61,.36,1)}
a[data-lightbox]::after{
  content:"";
  position:absolute;right:10px;bottom:10px;z-index:1;
  width:32px;height:32px;border-radius:50%;
  background:rgba(20,32,26,.55) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23F3EFE7' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 4h6v6M10 20H4v-6M20 4l-7 7M4 20l7-7'/%3E%3C/svg%3E") center/16px 16px no-repeat;
  backdrop-filter:blur(4px);
  opacity:.85;
  transition:opacity .3s,background-color .3s;
  pointer-events:none;
}
@media(hover:hover){
  a[data-lightbox]::after{opacity:0}
  a[data-lightbox]:hover::after,a[data-lightbox]:focus-visible::after{opacity:.95}
  a[data-lightbox]:hover img{transform:scale(1.025)}
}

/* ---------- overlay ---------- */
.cp-lightbox{
  position:fixed;inset:0;z-index:200;
  display:grid;place-items:center;
  visibility:hidden;opacity:0;
  transition:opacity .28s cubic-bezier(.22,.61,.36,1),visibility 0s linear .28s;
}
.cp-lightbox.is-open{visibility:visible;opacity:1;transition:opacity .28s cubic-bezier(.22,.61,.36,1)}
.cp-lightbox__backdrop{position:absolute;inset:0;background:rgba(18,28,23,.985)}
.cp-lightbox__stage{
  position:relative;margin:0;z-index:1;
  width:100%;height:100%;
  display:grid;grid-template-rows:1fr auto;
  align-items:center;justify-items:center;
  padding:clamp(12px,2.5vw,32px);
  padding-top:max(clamp(12px,2.5vw,32px),env(safe-area-inset-top));
  padding-bottom:max(clamp(12px,2.5vw,32px),env(safe-area-inset-bottom));
  pointer-events:none;
}
.cp-lightbox__img{
  max-width:100%;max-height:calc(100svh - 96px);
  width:auto;height:auto;
  pointer-events:auto;
  object-fit:contain;
  box-shadow:0 24px 80px rgba(0,0,0,.45);
  opacity:1;transform:none;
  transition:opacity .28s cubic-bezier(.22,.61,.36,1);
}
.cp-lightbox__img:not([src]){opacity:0}
.cp-lightbox.is-loading .cp-lightbox__img{opacity:.25}
.cp-lightbox__bar{
  display:flex;align-items:baseline;gap:1.2rem;
  max-width:min(92vw,900px);
  padding-top:.9rem;
  pointer-events:auto;
}
.cp-lightbox__caption{
  font-family:'Work Sans',system-ui,sans-serif;
  font-size:.78rem;letter-spacing:.08em;
  color:#F3EFE7;opacity:.92;
  text-align:center;
}
.cp-lightbox__count{
  flex:none;
  font-family:'Work Sans',system-ui,sans-serif;
  font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;
  color:#C6A15B;white-space:nowrap;
}

/* estado de erro de carregamento (rede falhou): aviso no lugar da imagem quebrada */
.cp-lightbox.is-error .cp-lightbox__stage::after{
  content:"N\00e3o foi poss\00edvel carregar a foto";
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  font-family:'Work Sans',system-ui,sans-serif;
  font-size:.85rem;letter-spacing:.08em;color:#F3EFE7;opacity:.85;
  white-space:nowrap;
}

/* spinner de carregamento */
.cp-lightbox.is-loading .cp-lightbox__stage::before{
  content:"";
  position:absolute;top:50%;left:50%;z-index:2;
  width:38px;height:38px;margin:-19px 0 0 -19px;
  border:2px solid rgba(243,239,231,.25);border-top-color:#C6A15B;
  border-radius:50%;
  animation:cp-lb-spin .8s linear infinite;
}
@keyframes cp-lb-spin{to{transform:rotate(360deg)}}

/* ---------- botões ---------- */
.cp-lightbox__btn{
  position:absolute;z-index:3;
  display:grid;place-items:center;
  width:48px;height:48px;
  border:1px solid rgba(243,239,231,.55);border-radius:50%;
  background:rgba(20,32,26,.8);color:#F3EFE7;
  font-family:Georgia,serif;font-size:1.6rem;line-height:1;
  cursor:pointer;
  transition:background .25s,border-color .25s,color .25s;
}
.cp-lightbox__btn:hover,.cp-lightbox__btn:focus-visible{background:#F3EFE7;color:#14201A;border-color:#F3EFE7}
.cp-lightbox__btn:focus-visible{outline:2px solid #C6A15B;outline-offset:3px}
.cp-lightbox__btn[hidden]{display:none}
.cp-lightbox__close{top:max(14px,env(safe-area-inset-top));right:max(14px,env(safe-area-inset-right));font-size:1.9rem}
.cp-lightbox__nav{top:50%;transform:translateY(-50%)}
.cp-lightbox__prev{left:max(10px,env(safe-area-inset-left))}
.cp-lightbox__next{right:max(10px,env(safe-area-inset-right))}
@media(max-width:700px){
  .cp-lightbox__nav{top:auto;bottom:max(14px,env(safe-area-inset-bottom));transform:none}
  .cp-lightbox__prev{left:14px}
  .cp-lightbox__next{right:14px}
  .cp-lightbox__img{max-height:calc(100svh - 132px)}
  .cp-lightbox__bar{flex-direction:column;align-items:center;gap:.35rem;padding-bottom:64px}
}

/* ---------- reduced motion ---------- */
@media(prefers-reduced-motion:reduce){
  .cp-lightbox,.cp-lightbox__img,a[data-lightbox] img{transition:none!important}
  .cp-lightbox.is-loading .cp-lightbox__stage::before{animation:none;border-color:rgba(243,239,231,.5);border-top-color:#C6A15B}
  a[data-lightbox]:hover img{transform:none}
}
.cp-lightbox.no-motion,.cp-lightbox.no-motion .cp-lightbox__img{transition:none!important}

/* ============================================================
   POLISH FINAL (vistoria 2026-07-04), micro-correções aditivas
   ============================================================ */

/* títulos sem órfã de uma palavra (progressive enhancement) */
h1,h2{text-wrap:balance}

/* subtítulo do hero legível sobre áreas claras da foto */
.bb-hero__sub{text-shadow:0 1px 16px rgba(20,32,26,.6)}

/* header rolado: menos vazamento de formas por trás da barra */
.bb-header.is-scrolled{background:rgba(252,251,248,.97);backdrop-filter:blur(14px)}

/* citação única não fica presa à coluna esquerda do grid de 3 */
.quotes:has(> .quote:only-child){grid-template-columns:1fr}

/* assinaturas dos depoimentos niveladas na mesma linha de base */
.quotes .quote{display:flex;flex-direction:column}
.quotes .quote cite{margin-top:auto;padding-top:1rem}

/* CTAs em bloco editorial centrado acompanham o eixo do texto */
.editorial .btn-row{justify-content:center}

/* estatísticas: grade par no mobile, último item centralizado quando ímpar */
@media(max-width:700px){
  .stat-row{display:grid;grid-template-columns:repeat(2,1fr);gap:2.4rem 1rem;justify-items:center}
  .stat-row .stat:last-child:nth-child(odd){grid-column:1/-1}
}

/* pares de CTA uniformes no mobile (mesma largura, toque confortável) */
@media(max-width:700px){
  .btn-row{flex-direction:column;align-items:stretch}
  .btn-row .btn{width:100%;text-align:center}
}

/* galeria com nº ímpar de fotos: última ocupa a linha inteira no mobile */
@media(max-width:759px){
  .gallery > *:last-child:nth-child(odd){grid-column:1/-1}
}

/* galeria de exatamente 2 fotos: cada uma em largura total no mobile */
@media(max-width:759px){
  .gallery > *:first-child:nth-last-child(2),
  .gallery > *:first-child:nth-last-child(2) ~ *{grid-column:1/-1}
}
