/* ================================================
   NB FULL-BLEED INTEGRADO — foto-é-seção
   carrega depois de site.css e nb-components.css
   ================================================ */

/* hero principal — foto sangra a seção inteira */
.fb-hero { position: relative; min-height: 100vh; min-height: 100svh; overflow: hidden; display: flex; align-items: flex-end; padding: 0 0 clamp(60px, 10vh, 110px); }
.fb-hero__bg { position: absolute; inset: 0; z-index: 0; background: var(--carvao-2); }
.fb-hero__bg img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; filter: brightness(.66) contrast(1.05) saturate(.72); }
.fb-hero__veil { position: absolute; inset: 0; z-index: 1; background:
  linear-gradient(180deg, rgba(15,15,18,.45) 0%, rgba(15,15,18,.15) 30%, rgba(15,15,18,.92) 100%),
  linear-gradient(90deg, rgba(15,15,18,.55) 0%, transparent 55%); }
.fb-hero__grid { position: absolute; inset: 0; z-index: 1; opacity: .18; pointer-events: none;
  background-image: linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px);
  background-size: 64px 64px;
  -webkit-mask-image: radial-gradient(120% 90% at 50% 50%, #000 0%, transparent 70%);
          mask-image: radial-gradient(120% 90% at 50% 50%, #000 0%, transparent 70%); }
.fb-hero__in { position: relative; z-index: 2; padding: 0 var(--gutter); max-width: var(--maxw); margin: 0 auto; width: 100%; }
.fb-hero__eyebrow { color: var(--grafite-2); font-size: .72rem; letter-spacing: .25em; text-transform: uppercase; font-weight: 600; margin-bottom: var(--s-5); display: flex; align-items: center; gap: 12px; }
.fb-hero__eyebrow::before { content: ""; width: 22px; height: 1px; background: var(--verde-text); }
.fb-hero__title { font-weight: var(--w-black); font-size: clamp(2.4rem, 6.8vw, 6rem); line-height: .92; letter-spacing: -.045em; text-wrap: balance; margin: 0; }
.fb-hero__title .ln { display: block; }
.fb-hero__title .accent { color: var(--verde-text); }
.fb-hero__sub { margin-top: var(--s-6); font-size: var(--t-lead); color: var(--cinza); max-width: 52ch; line-height: 1.5; font-weight: var(--w-light); }
.fb-hero__actions { margin-top: var(--s-7); display: flex; gap: var(--s-3); flex-wrap: wrap; }
.fb-hero__corner { position: absolute; top: clamp(96px, 13vh, 140px); right: var(--gutter); z-index: 3; display: flex; flex-direction: column; gap: 12px; align-items: flex-end; text-align: right; }
.fb-hero__corner .kpi { font-size: .68rem; letter-spacing: .15em; color: var(--grafite-2); text-transform: uppercase; }
.fb-hero__corner .kpi b { color: var(--verde-text); font-weight: 900; letter-spacing: -.01em; font-size: 1.6rem; display: block; line-height: 1; margin-bottom: 4px; }
.fb-hero__sig { position: absolute; bottom: 24px; right: var(--gutter); z-index: 3; font-size: .68rem; letter-spacing: .15em; color: var(--grafite-2); text-transform: uppercase; font-family: var(--font-mono, "Inter"); }

/* seção integrada — foto inteira como fundo da seção */
.fb-section { position: relative; min-height: 90vh; min-height: 90svh; overflow: hidden; display: flex; align-items: center; padding: clamp(80px, 12vh, 140px) 0; }
.fb-section__bg { position: absolute; inset: 0; z-index: 0; background: var(--carvao-2); }
.fb-section__bg img { width: 100%; height: 100%; object-fit: cover; filter: brightness(.62) contrast(1.05) saturate(.72); transition: transform 1.2s ease; }
.fb-section:hover .fb-section__bg img { transform: scale(1.02); }
.fb-section__veil { position: absolute; inset: 0; z-index: 1; background:
  linear-gradient(90deg, rgba(15,15,18,.85) 0%, rgba(15,15,18,.5) 40%, rgba(15,15,18,.15) 100%); }
.fb-section__veil--right { background: linear-gradient(270deg, rgba(15,15,18,.85) 0%, rgba(15,15,18,.5) 40%, rgba(15,15,18,.15) 100%); }
.fb-section__veil--bottom { background: linear-gradient(180deg, rgba(15,15,18,.15) 0%, rgba(15,15,18,.5) 60%, rgba(15,15,18,.95) 100%); }
.fb-section__grid { position: absolute; inset: 0; z-index: 1; opacity: .12; pointer-events: none;
  background-image: linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px);
  background-size: 64px 64px; }
.fb-section__in { position: relative; z-index: 2; padding: 0 var(--gutter); max-width: var(--maxw); margin: 0 auto; width: 100%; }
.fb-section__eyebrow { color: var(--verde-text); font-size: .72rem; letter-spacing: .25em; text-transform: uppercase; font-weight: 600; margin-bottom: var(--s-5); display: flex; align-items: center; gap: 12px; }
.fb-section__eyebrow::before { content: ""; width: 22px; height: 1px; background: var(--verde-text); }
.fb-section__title { font-weight: var(--w-black); font-size: clamp(2.2rem, 5.5vw, 5rem); line-height: .96; letter-spacing: -.04em; text-wrap: balance; max-width: 18ch; margin: 0; }
.fb-section__title .accent { color: var(--verde-text); }
.fb-section__lead { margin-top: var(--s-6); font-size: var(--t-lead); color: var(--cinza); max-width: 50ch; line-height: 1.55; font-weight: var(--w-light); }

/* anotações flutuantes — números/specimen como notas técnicas sobre a foto */
.fb-notes { position: absolute; z-index: 3; display: flex; flex-direction: column; gap: 18px; }
.fb-notes--tr { top: clamp(100px, 13vh, 140px); right: var(--gutter); align-items: flex-end; text-align: right; }
.fb-notes--br { bottom: 60px; right: var(--gutter); align-items: flex-end; text-align: right; }
.fb-notes--bl { bottom: 60px; left: var(--gutter); align-items: flex-start; }
.fb-note { display: flex; flex-direction: column; padding: 14px 18px; border: 1px solid var(--line-2); background: rgba(15,15,18,.55); backdrop-filter: blur(8px); min-width: 200px; }
.fb-note b { color: var(--verde-text); font-weight: 900; font-size: 1.8rem; letter-spacing: -.02em; line-height: 1; margin-bottom: 4px; }
.fb-note span { font-size: .68rem; letter-spacing: .15em; color: var(--cinza); text-transform: uppercase; }

/* lista de pontos sobre foto */
.fb-list { list-style: none; padding: 0; margin: var(--s-6) 0 0; display: grid; grid-template-columns: 1fr 1fr; gap: var(--s-4); max-width: 60ch; }
.fb-list li { padding-top: var(--s-3); border-top: 1px solid var(--line-2); font-size: .95rem; color: var(--cinza); font-weight: var(--w-light); line-height: 1.4; }
.fb-list b { color: var(--branco); font-weight: 600; }

/* faixa fina cliente strip / breadcrumb / faixa horizontal entre seções */
.fb-strip { padding: clamp(40px,6vh,64px) var(--gutter); background: var(--carvao-2); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); position: relative; z-index: 2; }
.fb-strip__lbl { font-size: .7rem; letter-spacing: .2em; color: var(--grafite); text-transform: uppercase; margin-bottom: var(--s-5); }
.fb-strip__row { display: flex; gap: clamp(24px, 4vw, 56px); align-items: center; flex-wrap: wrap; font-size: clamp(.95rem, 1.5vw, 1.15rem); }

/* CTA bar full-bleed pequena */
.fb-ctabar { position: absolute; bottom: clamp(40px, 8vh, 80px); left: var(--gutter); right: var(--gutter); z-index: 3; display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; }

/* sectional posters — full-bleed apenas com título gigante e imagem */
.fb-poster { position: relative; min-height: 70vh; min-height: 70svh; overflow: hidden; display: flex; align-items: center; }
.fb-poster__bg { position: absolute; inset: 0; z-index: 0; background: var(--carvao-2); }
.fb-poster__bg img { width: 100%; height: 100%; object-fit: cover; filter: brightness(.55) contrast(1.1) saturate(.7); }
.fb-poster__veil { position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(15,15,18,.55), rgba(15,15,18,.55)); }
.fb-poster__in { position: relative; z-index: 2; padding: 0 var(--gutter); max-width: var(--maxw); margin: 0 auto; width: 100%; }
.fb-poster__title { font-weight: var(--w-black); font-size: clamp(2.4rem, 7vw, 6.4rem); line-height: .94; letter-spacing: -.04em; text-wrap: balance; max-width: 16ch; margin: 0 0 var(--s-5); }
.fb-poster__title .accent { color: var(--verde-text); }
.fb-poster__sub { font-size: var(--t-lead); color: var(--cinza); max-width: 50ch; line-height: 1.5; font-weight: var(--w-light); margin: 0 0 var(--s-6); }

/* galeria full-bleed assimétrica — 4 imagens preenchendo toda a largura sem moldura */
.fb-gallery { display: grid; grid-template-columns: 2fr 1fr 1fr 2fr; min-height: 50vh; }
.fb-gallery__item { position: relative; overflow: hidden; border-right: 1px solid var(--line); }
.fb-gallery__item:last-child { border-right: none; }
.fb-gallery__item img { width: 100%; height: 100%; object-fit: cover; filter: brightness(.74) contrast(1.05) saturate(.75); transition: transform .6s ease, filter .6s ease; }
.fb-gallery__item:hover img { transform: scale(1.04); filter: brightness(.9) saturate(.85); }
.fb-gallery__item::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 60%, rgba(15,15,18,.7) 100%); pointer-events: none; }
.fb-gallery__cap { position: absolute; left: 16px; right: 16px; bottom: 14px; z-index: 2; display: flex; justify-content: space-between; font-size: .68rem; letter-spacing: .15em; color: rgba(247,246,243,.85); text-transform: uppercase; }
.fb-gallery__cap .nb-dot { width: 6px; height: 6px; background: var(--verde-6); border-radius: 50%; display: inline-block; margin-right: 6px; }

@media (max-width: 760px) {
  .fb-hero__corner, .fb-notes { display: none; }
  .fb-section__veil { background: linear-gradient(180deg, rgba(15,15,18,.45) 0%, rgba(15,15,18,.85) 70%); }
  .fb-list { grid-template-columns: 1fr; }
  .fb-gallery { grid-template-columns: 1fr 1fr; min-height: 0; }
  .fb-gallery__item { border-right: none; border-bottom: 1px solid var(--line); aspect-ratio: 3/4; }
}

@media (max-width: 600px) {
  .fb-hero { min-height: 92svh; }
  .fb-section { min-height: 0; padding: clamp(64px, 10vh, 100px) 0; }
  .fb-poster { min-height: 56svh; padding: 56px 0; }
  .fb-note { min-width: 0; padding: 10px 14px; }
  .fb-note b { font-size: 1.4rem; }
  .fb-ctabar { position: static; margin-top: var(--s-6); padding: 0 var(--gutter); }
}

/* ================================================
   OVERRIDES — neutralizar boxes nos slots existentes
   ================================================ */

/* slots em galeria virtual (.media, .media.wide) — remove border-radius e moldura */
.media, .media.wide { border-radius: 0 !important; overflow: hidden; position: relative; }
.media image-slot, .media.wide image-slot { border-radius: 0 !important; }
.media image-slot > * { border-radius: 0 !important; }

/* nb-frame perde a borda arredondada */
.nb-frame { border-radius: 0 !important; border: none !important; }
.nb-frame image-slot { border-radius: 0 !important; }

/* nb-card que carrega image-slot — perde a moldura no media */
.nb-card .mod__media { border-radius: 0 !important; overflow: hidden; }
.nb-card .mod__media .nb-frame { border-radius: 0 !important; }

/* fb-gallery-section: container da galeria full-width sem padding */
.fb-gallery-section { background: var(--carvao); padding: 0; margin: 0; }
.fb-gallery-section .fb-gallery { min-height: 56vh; }

/* fb-section ajuste para ter altura mais comportada quando empilhadas */
.fb-section + .fb-section { border-top: 1px solid var(--line-2); }
