/*
       SISTEMA DE ESCALA PROPORCIONAL 1920px
       Padronização Rendimento Solution Architecture — mesmo sistema usado
       no Hero+Vídeo e no Escopo Técnico (padding 140px/100px), pra alinhar
       as margens laterais com as seções vizinhas em qualquer largura de tela.
    */
    @font-face{
      font-family: 'RGAL Lemon Milk';
      src: url('/fontes/lemonmilk-bold.woff2') format('woff2');
      font-weight: 700; font-display: swap;
    }
    @font-face{
      font-family: 'RGAL Ekster';
      src: url('/fontes/ekster-regular.woff2') format('woff2');
      font-weight: 400; font-display: swap;
    }
    @font-face{
      font-family: 'RGAL Ekster';
      src: url('/fontes/ekster-medium.woff2') format('woff2');
      font-weight: 500; font-display: swap;
    }
    @font-face{
      font-family: 'RGAL Ekster';
      src: url('/fontes/ekster-bold.woff2') format('woff2');
      font-weight: 700; font-display: swap;
    }

    #block-galeria #rgal-section,
#block-galeria #rgal-section *,
#block-galeria #rgal-section *::before,
#block-galeria #rgal-section *::after{
      margin: 0; padding: 0; box-sizing: border-box;
    }

    #block-galeria #rgal-section{
      --rgal-navy: #253064;
      --rgal-gold: #D89A14;
      --rgal-gray: #555f6d;
      --rgal-radius: 16px;
      --rgal-gap: 16px;

      width: 100%;
      position: relative;
      overflow: hidden;
      background: #f7f8fc;
      font-family: 'RGAL Ekster', sans-serif;
      color: var(--rgal-navy);
    }

    /* Sem fotos cadastradas = a seção inteira some (funciona em qualquer navegador atual) */
    #block-galeria #rgal-section:has(.rgal-grid:empty){
      display: none;
    }

    #block-galeria #rgal-scaling{
      width: 1920px;
      position: absolute;
      top: 0;
      left: 50%;
      transform: translateX(-50%) scale(1);
      transform-origin: top center;
      padding: 60px 140px;
      display: flex;
      flex-direction: column;
      align-items: center;
    }

    /* ── GRADE ADAPTATIVA (1 a 8 fotos) ────────────── */
    #block-galeria #rgal-section .rgal-grid{
      display: grid;
      gap: var(--rgal-gap);
      grid-auto-rows: 250px;
      width: 100%;
      max-width: 1640px;
    }

    #block-galeria #rgal-section .rgal-item{
      position: relative;
      overflow: hidden;
      border-radius: var(--rgal-radius);
      background: #e2e6f0;
      cursor: zoom-in;
    }

    #block-galeria #rgal-section .rgal-item img{
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
      transition: transform 0.5s cubic-bezier(0.23, 1, 0.32, 1);
      pointer-events: none;
      user-select: none;
      -webkit-user-drag: none;
    }

    #block-galeria #rgal-section .rgal-item::after{
      content: '';
      position: absolute;
      inset: 0;
      background: linear-gradient(180deg, transparent 55%, rgba(20, 24, 45, 0.4));
      opacity: 0;
      transition: opacity 0.3s ease;
    }

    #block-galeria #rgal-section .rgal-item:hover img{ transform: scale(1.07); }
    #block-galeria #rgal-section .rgal-item:hover::after{ opacity: 1; }

    /* 1 foto: banner único */
    #block-galeria #rgal-section .rgal-grid[data-count="1"]{
      grid-template-columns: 1fr;
      grid-auto-rows: 480px;
    }

    /* 2 fotos: lado a lado */
    #block-galeria #rgal-section .rgal-grid[data-count="2"]{
      grid-template-columns: 1fr 1fr;
      grid-auto-rows: 420px;
    }

    /* 3 fotos: 1 grande + 2 empilhadas */
    #block-galeria #rgal-section .rgal-grid[data-count="3"]{
      grid-template-columns: 1.4fr 1fr;
      grid-template-rows: repeat(2, 250px);
    }
    #block-galeria #rgal-section .rgal-grid[data-count="3"] .rgal-item:nth-child(1){ grid-column: 1; grid-row: 1 / 3; }
    #block-galeria #rgal-section .rgal-grid[data-count="3"] .rgal-item:nth-child(2){ grid-column: 2; grid-row: 1; }
    #block-galeria #rgal-section .rgal-grid[data-count="3"] .rgal-item:nth-child(3){ grid-column: 2; grid-row: 2; }

    /* 4 fotos: grade 2x2 */
    #block-galeria #rgal-section .rgal-grid[data-count="4"]{
      grid-template-columns: repeat(2, 1fr);
      grid-template-rows: repeat(2, 250px);
    }

    /* 5 fotos: 1 grande + grade 2x2 ao lado */
    #block-galeria #rgal-section .rgal-grid[data-count="5"]{
      grid-template-columns: 1.3fr 1fr 1fr;
      grid-template-rows: repeat(2, 250px);
    }
    #block-galeria #rgal-section .rgal-grid[data-count="5"] .rgal-item:nth-child(1){ grid-column: 1; grid-row: 1 / 3; }
    #block-galeria #rgal-section .rgal-grid[data-count="5"] .rgal-item:nth-child(2){ grid-column: 2; grid-row: 1; }
    #block-galeria #rgal-section .rgal-grid[data-count="5"] .rgal-item:nth-child(3){ grid-column: 3; grid-row: 1; }
    #block-galeria #rgal-section .rgal-grid[data-count="5"] .rgal-item:nth-child(4){ grid-column: 2; grid-row: 2; }
    #block-galeria #rgal-section .rgal-grid[data-count="5"] .rgal-item:nth-child(5){ grid-column: 3; grid-row: 2; }

    /* 6 fotos: grade 3x2 uniforme */
    #block-galeria #rgal-section .rgal-grid[data-count="6"]{
      grid-template-columns: repeat(3, 1fr);
      grid-template-rows: repeat(2, 250px);
    }

    /* 7 fotos: 1 grande (2 linhas) + 6 preenchendo o resto automaticamente */
    #block-galeria #rgal-section .rgal-grid[data-count="7"]{
      grid-template-columns: repeat(4, 1fr);
      grid-template-rows: repeat(2, 250px);
    }
    #block-galeria #rgal-section .rgal-grid[data-count="7"] .rgal-item:nth-child(1){ grid-column: 1; grid-row: 1 / 3; }

    /* 8 fotos: grade 4x2 uniforme */
    #block-galeria #rgal-section .rgal-grid[data-count="8"]{
      grid-template-columns: repeat(4, 1fr);
      grid-template-rows: repeat(2, 250px);
    }

    /* ── REVEAL ────────────────────────────────────── */
    #block-galeria #rgal-section .rgal-reveal{
      opacity: 0;
      transform: translate3d(0, 30px, 0);
      filter: blur(10px);
      transition:
        opacity 0.32s cubic-bezier(0.23, 1, 0.32, 1),
        transform 0.32s cubic-bezier(0.23, 1, 0.32, 1),
        filter 0.32s ease;
      transition-delay: var(--rgal-reveal-delay, 0s);
      will-change: transform, opacity, filter;
    }
    #block-galeria #rgal-section .rgal-reveal.is-visible{
      opacity: 1;
      transform: translate3d(0, 0, 0);
      filter: blur(0);
    }

    /* ── LIGHTBOX ──────────────────────────────────── */
    #block-galeria #rgal-section .rgal-lightbox{
      position: fixed;
      inset: 0;
      background: rgba(10, 12, 26, 0.92);
      z-index: 99999;
      display: flex;
      align-items: center;
      justify-content: center;
      opacity: 0;
      visibility: hidden;
      transition: opacity 0.3s ease;
    }
    #block-galeria #rgal-section .rgal-lightbox.is-aberta{ opacity: 1; visibility: visible; }

    #block-galeria #rgal-section .rgal-lb-img{
      max-width: 88vw;
      max-height: 82vh;
      border-radius: 8px;
      box-shadow: 0 30px 80px rgba(0, 0, 0, 0.5);
      user-select: none;
    }

    #block-galeria #rgal-section .rgal-lb-fechar,
#block-galeria #rgal-section .rgal-lb-seta{
      position: absolute;
      background: rgba(255, 255, 255, 0.12);
      border: 1.5px solid rgba(255, 255, 255, 0.3);
      color: #fff;
      border-radius: 50%;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 0;
      transition: all 0.25s ease;
    }
    #block-galeria #rgal-section .rgal-lb-fechar:hover,
#block-galeria #rgal-section .rgal-lb-seta:hover{
      background: var(--rgal-gold);
      border-color: var(--rgal-gold);
    }
    #block-galeria #rgal-section .rgal-lb-fechar svg,
#block-galeria #rgal-section .rgal-lb-seta svg{
      display: block;
      stroke: currentColor;
      fill: none;
    }

    #block-galeria #rgal-section .rgal-lb-fechar{
      top: 24px; right: 28px;
      width: 42px; height: 42px;
    }
    #block-galeria #rgal-section .rgal-lb-fechar svg{ width: 18px; height: 18px; }

    #block-galeria #rgal-section .rgal-lb-seta{
      top: 50%;
      transform: translateY(-50%);
      width: 52px; height: 52px;
    }
    #block-galeria #rgal-section .rgal-lb-seta svg{ width: 22px; height: 22px; }
    #block-galeria #rgal-section .rgal-lb-anterior{ left: 24px; }
    #block-galeria #rgal-section .rgal-lb-proxima{ right: 24px; }

    #block-galeria #rgal-section .rgal-lb-contador{
      position: absolute;
      bottom: 26px;
      left: 50%;
      transform: translateX(-50%);
      color: rgba(255, 255, 255, 0.75);
      font-size: 14px;
      letter-spacing: 0.5px;
    }

    /* ── MOBILE: sai do sistema de escala, vira responsivo normal ──── */
    @media (max-width: 1024px){
      #block-galeria #rgal-section{ height: auto !important; padding: 60px 24px; }

      #block-galeria #rgal-scaling{
        position: relative !important;
        width: 100% !important;
        left: auto !important;
        transform: none !important;
        padding: 0;
        align-items: center;
        text-align: center;
      }

      #block-galeria #rgal-section .rgal-grid{
        grid-template-columns: repeat(2, 1fr) !important;
        grid-auto-rows: 200px !important;
        grid-template-rows: none !important;
      }
      #block-galeria #rgal-section .rgal-grid .rgal-item{
        grid-column: auto !important;
        grid-row: auto !important;
      }
      #block-galeria #rgal-section .rgal-grid[data-count="1"]{ grid-template-columns: 1fr !important; }
      #block-galeria #rgal-section .rgal-grid[data-count="1"] .rgal-item{ grid-auto-rows: 260px !important; height: 260px; }
      #block-galeria #rgal-section .rgal-lb-seta{ width: 42px; height: 42px; }
      #block-galeria #rgal-section .rgal-lb-seta svg{ width: 18px; height: 18px; }
      #block-galeria #rgal-section .rgal-lb-anterior{ left: 10px; }
      #block-galeria #rgal-section .rgal-lb-proxima{ right: 10px; }
    }

    @media (max-width: 560px){
      #block-galeria #rgal-section .rgal-grid{
        grid-template-columns: 1fr !important;
        grid-auto-rows: 220px !important;
      }
    }