/* Galeria. */
.preview-gallery-section { padding: clamp(4rem, 7vw, 6rem) 0 !important; background: #000; }
.preview-gallery-layout { display: grid; grid-template-columns: .7fr 1.3fr; align-items: center; gap: clamp(2rem, 5vw, 5rem); }
.preview-gallery-copy h2 { max-width: 480px; }
.preview-gallery-images { display: grid; grid-template-columns: 1.2fr .8fr; grid-template-rows: repeat(2, minmax(140px, 190px)); gap: .6rem; }
.preview-gallery-images img { width: 100%; height: 100%; min-height: 0; border-radius: .65rem; object-fit: cover; }
.preview-gallery-images img:first-child { grid-row: span 2; }
.all-gallery-page { background: #030504; }
.all-gallery-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 4px; }
.all-gallery-image { margin: 0; overflow: hidden; background: #101411; aspect-ratio: 4 / 3; }
.all-gallery-open { display: block; width: 100%; height: 100%; padding: 0; overflow: hidden; border: 0; background: transparent; cursor: zoom-in; }
.all-gallery-image img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.all-gallery-open:hover img, .all-gallery-open:focus-visible img { transform: scale(1.04); }
.gallery-lightbox .modal-content { border: 1px solid rgba(255,255,255,.12); background: #050705; }
.gallery-lightbox .modal-header { position: absolute; z-index: 1; top: 0; right: 0; border: 0; }
.gallery-lightbox .btn-close { filter: invert(1); }
.gallery-lightbox .modal-body { display: grid; min-height: 55vh; place-items: center; padding: 3.5rem 1rem 1rem; }
.gallery-lightbox img { display: block; max-width: 100%; max-height: calc(100vh - 6rem); object-fit: contain; }
.completed-events-section { padding: clamp(4rem, 8vw, 7rem) 0; background: #080b09; }
.completed-events-heading { margin-bottom: 2rem; }
.completed-events-heading h2 { margin: .8rem 0; color: #fff; font-size: clamp(2.1rem, 4vw, 3.5rem); font-weight: 700; letter-spacing: -.04em; }
.completed-events-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.completed-event-card { position: relative; min-height: 260px; overflow: hidden; border-radius: .85rem; background: #141a16; }
.completed-event-card img { width: 100%; height: 100%; min-height: 260px; object-fit: cover; transition: transform .6s ease; }
.completed-event-card:hover img { transform: scale(1.04); }
.completed-event-card span { position: absolute; inset: auto 0 0; padding: 3rem 1.1rem 1.1rem; color: #fff; font-weight: 700; background: linear-gradient(transparent, rgba(0,0,0,.85)); }
.completed-event-tags { display: flex; flex-wrap: wrap; gap: .65rem; margin-top: 1.5rem; }
.completed-event-tags span { padding: .5rem .85rem; border: 1px solid rgba(255,255,255,.16); border-radius: 999px; color: rgba(255,255,255,.78); font-size: .85rem; }
.services-page-hero.gallery-page-hero {
    min-height: clamp(300px, 38vh, 420px);
    padding: 7.5rem 0 3rem;
    background-image: linear-gradient(90deg, rgba(5, 7, 5, .96) 0%, rgba(5, 7, 5, .88) 38%, rgba(5, 7, 5, .28) 100%), url("../images/ROOFTOP/hero-espacos.jpg");
}
.gallery-page-hero h1 { margin: .65rem 0; font-size: clamp(2.7rem, 5vw, 4.7rem); }
.gallery-page-hero p { max-width: 760px; margin: 0; font-size: clamp(.95rem, 1.3vw, 1.1rem); line-height: 1.65; }
.sector-gallery-image .all-gallery-open { height: 100%; }
.infrastructure-cta, .services-feature-section, .sector-about, .sector-specs, .sector-contact,
.completed-events-section { background: #fff; }
.sector-gallery-image, .all-gallery-image { background: #e6e9e6; }
.completed-event-card { background: #e6e9e6; }
.completed-event-tags span { border-color: rgba(57,85,66,.25); color: var(--ink-muted); }
.preview-gallery-section { background: var(--surface-soft) !important; }
.preview-gallery-section h2, .preview-gallery-section h3 { color: var(--ink-main); }
.preview-gallery-section .text-brand { color: var(--brand-forest) !important; }
.gallery-lightbox .modal-body { position: relative; }
.gallery-lightbox-control { position: absolute; z-index: 2; top: 50%; display: grid; width: 3rem; height: 3rem; place-items: center; transform: translateY(-50%); border: 1px solid rgba(255,255,255,.55); border-radius: 50%; background: rgba(5,8,6,.62); color: #fff; font-size: 1.4rem; }
.gallery-lightbox-control:hover, .gallery-lightbox-control:focus-visible { background: var(--brand-forest); color: #fff; }
.gallery-lightbox-prev { left: 1rem; }
.gallery-lightbox-next { right: 1rem; }
.client-logos-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); max-width: 100%; margin-inline: auto; gap: .85rem; align-items: stretch; }
.client-logo-item { display: grid; min-height: 108px; place-items: center; padding: 1rem; border: 1px solid rgba(24,34,27,.1); border-radius: .8rem; background: #fff; }
.client-logo-item img { display: block; width: 100%; max-width: 190px; height: 70px; object-fit: contain; filter: grayscale(1) contrast(1.12); transition: filter .25s ease; }
.client-logo-item:hover img,
.client-logo-item:focus-within img { filter: grayscale(0) contrast(1.12); }
