@import url(‘https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;600&family=DM+Sans:wght@300;400;500&display=swap’);
.services-section {
padding: 100px 0;
background: #fff;
}
.srv-container {
width: 100%;
max-width: 1400px;
margin: 0 auto;
padding: 0 32px;
}
.srv-title {
font-family: “Playfair Display”, serif;
font-size: 2rem;
font-weight: 400;
text-align: center;
color: #111;
margin: 0 0 12px;
}
.srv-title::after {
content: “”;
display: block;
width: 48px;
height: 2px;
background: #c9a96e;
margin: 14px auto 48px;
border-radius: 2px;
}
.srv-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 20px;
}
.srv-card {
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
background: #fff;
border-radius: 10px;
overflow: hidden;
border: 1px solid rgba(201,169,110,0.3);
text-decoration: none !important;
color: #111 !important;
transition: all 0.25s ease;
cursor: pointer;
}
.srv-card:hover {
transform: translateY(-4px);
box-shadow: 0 12px 32px rgba(201,169,110,0.2);
border-color: #c9a96e;
}
.srv-img-wrap {
width: 100%;
overflow: hidden;
}
.srv-img-wrap img {
width: 100%;
height: 260px;
object-fit: cover;
display: block;
transition: transform 0.5s ease;
}
.srv-card:hover .srv-img-wrap img {
transform: scale(1.04);
}
.srv-card h3 {
font-family: “Playfair Display”, serif;
font-size: 1.05rem;
font-weight: 400;
margin: 0;
padding: 18px 16px;
color: #111;
}
.srv-btn-outline {
display: inline-block;
padding: 12px 32px;
border-radius: 999px;
border: 1.5px solid #c9a96e;
color: #111 !important;
font-family: “DM Sans”, sans-serif;
font-size: 0.9rem;
font-weight: 500;
text-decoration: none !important;
transition: all 0.2s ease;
}
.srv-btn-outline:hover {
background: #c9a96e;
color: #fff !important;
transform: translateY(-2px);
box-shadow: 0 10px 24px rgba(201,169,110,0.3);
}
/* LIGHTBOX */
.lb-overlay {
display: none;
position: fixed;
inset: 0;
z-index: 999;
background: rgba(0,0,0,0.85);
align-items: center;
justify-content: center;
padding: 20px;
}
.lb-overlay.active { display: flex; }
.lb-box {
background: #fff;
border-radius: 14px;
padding: 32px 28px 28px;
max-width: 820px;
width: 100%;
position: relative;
max-height: 90vh;
overflow-y: auto;
}
.lb-close {
position: absolute;
top: 14px; right: 18px;
background: none;
border: none;
font-size: 1.2rem;
cursor: pointer;
color: #888;
transition: color 0.2s;
}
.lb-close:hover { color: #111; }
.lb-title {
font-family: “Playfair Display”, serif;
font-size: 1.4rem;
font-weight: 400;
text-align: center;
margin: 0 0 20px;
color: #111;
}
.lb-main {
position: relative;
display: flex;
align-items: center;
justify-content: center;
gap: 12px;
}
.lb-img {
width: 100%;
max-height: 460px;
object-fit: contain;
border-radius: 8px;
display: block;
}
.lb-arrow {
background: rgba(255,255,255,0.9);
border: 1px solid rgba(201,169,110,0.4);
border-radius: 50%;
width: 40px;
height: 40px;
font-size: 1.4rem;
cursor: pointer;
color: #111;
flex-shrink: 0;
transition: all 0.2s ease;
display: flex;
align-items: center;
justify-content: center;
}
.lb-arrow:hover { background: #c9a96e; color: #fff; border-color: #c9a96e; }
.lb-thumbs {
display: flex;
gap: 8px;
justify-content: center;
flex-wrap: wrap;
margin-top: 16px;
}
.lb-thumbs img {
width: 60px;
height: 60px;
object-fit: cover;
border-radius: 6px;
cursor: pointer;
border: 2px solid transparent;
transition: border-color 0.2s ease, opacity 0.2s ease;
opacity: 0.65;
}
.lb-thumbs img.active,
.lb-thumbs img:hover { border-color: #c9a96e; opacity: 1; }
.lb-counter {
text-align: center;
font-size: 0.82rem;
color: #aaa;
margin-top: 10px;
font-family: “DM Sans”, sans-serif;
}
.lb-cta {
display: block;
text-align: center;
margin-top: 20px;
padding: 11px 28px;
border-radius: 999px;
background: #c9a96e;
color: #fff !important;
font-family: “DM Sans”, sans-serif;
font-size: 0.88rem;
font-weight: 500;
text-decoration: none !important;
transition: background 0.2s ease;
width: fit-content;
margin-left: auto;
margin-right: auto;
}
.lb-cta:hover { background: #b8944f; }
@media (max-width: 900px) {
.srv-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
.srv-container { padding: 0 18px; }
.srv-grid { grid-template-columns: 1fr; }
.srv-img-wrap img { height: 220px; }
.services-section { padding: 64px 0; }
.lb-box { padding: 24px 16px 20px; }
.lb-img { max-height: 300px; }
.lb-arrow { width: 34px; height: 34px; font-size: 1.1rem; }
}
const galleries = {
casamentos: {
title: ‘Casamentos’,
photos: [
‘https://dianaoliveiraphoto.art/wp-content/uploads/2026/03/IMG_9702-copia-scaled.jpg’,
‘https://dianaoliveiraphoto.art/wp-content/uploads/2026/03/IMG_9807-scaled.webp’,
‘https://dianaoliveiraphoto.art/wp-content/uploads/2026/03/IMG_0947-scaled.webp’,
‘https://dianaoliveiraphoto.art/wp-content/uploads/2026/03/IMG_1934-scaled.jpg’
]
},
batizados: {
title: ‘Batizados’,
photos: [
‘https://dianaoliveiraphoto.art/wp-content/uploads/2026/03/IMG_9283-scaled.webp’,
‘https://dianaoliveiraphoto.art/wp-content/uploads/2026/03/IMG_2015-scaled.webp’,
‘https://dianaoliveiraphoto.art/wp-content/uploads/2026/03/IMG_6201-scaled.webp’,
‘https://dianaoliveiraphoto.art/wp-content/uploads/2026/03/IMG_8743-Aprimorado-NR-scaled.webp’,
‘https://dianaoliveiraphoto.art/wp-content/uploads/2026/03/IMG_1730-scaled.jpg’,
‘https://dianaoliveiraphoto.art/wp-content/uploads/2026/03/IMG_8860-scaled.webp’,
‘https://dianaoliveiraphoto.art/wp-content/uploads/2026/03/IMG_9098-scaled.webp’
]
},
aniversarios: {
title: ‘Aniversários’,
photos: [
‘https://dianaoliveiraphoto.art/wp-content/uploads/2026/03/IMG_2998-2-scaled.webp’,
‘https://dianaoliveiraphoto.art/wp-content/uploads/2026/03/IMG_8321-scaled.webp’,
‘https://dianaoliveiraphoto.art/wp-content/uploads/2026/03/IMG_8656-1-scaled.webp’,
‘https://dianaoliveiraphoto.art/wp-content/uploads/2026/03/IMG_9875-scaled.webp’,
‘https://dianaoliveiraphoto.art/wp-content/uploads/2026/03/IMG_0804-Aprimorado-NR-scaled.jpg’,
‘https://dianaoliveiraphoto.art/wp-content/uploads/2026/03/IMG_2547-scaled.webp’
]
}
};
let currentGallery = [];
let currentIndex = 0;
function openGallery(key) {
const g = galleries[key];
currentGallery = g.photos;
currentIndex = 0;
document.getElementById(‘lbTitle’).textContent = g.title;
updatePhoto();
const thumbs = document.getElementById(‘lbThumbs’);
thumbs.innerHTML = ”;
g.photos.forEach((src, i) => {
const img = document.createElement(‘img’);
img.src = src;
img.alt = ”;
if (i === 0) img.classList.add(‘active’);
img.onclick = () => { currentIndex = i; updatePhoto(); };
thumbs.appendChild(img);
});
document.getElementById(‘lbOverlay’).classList.add(‘active’);
document.body.style.overflow = ‘hidden’;
}
function updatePhoto() {
document.getElementById(‘lbImg’).src = currentGallery[currentIndex];
document.getElementById(‘lbCounter’).textContent = (currentIndex + 1) + ‘ / ‘ + currentGallery.length;
document.querySelectorAll(‘.lb-thumbs img’).forEach((img, i) => {
img.classList.toggle(‘active’, i === currentIndex);
});
}
function changePhoto(dir) {
currentIndex = (currentIndex + dir + currentGallery.length) % currentGallery.length;
updatePhoto();
}
function closeLightbox() {
document.getElementById(‘lbOverlay’).classList.remove(‘active’);
document.body.style.overflow = ”;
}
document.addEventListener(‘keydown’, e => {
if (!document.getElementById(‘lbOverlay’).classList.contains(‘active’)) return;
if (e.key === ‘ArrowRight’) changePhoto(1);
if (e.key === ‘ArrowLeft’) changePhoto(-1);
if (e.key === ‘Escape’) closeLightbox();
});