 /* =========================
🎨 VARIABLES & BASE
========================= */

input, select, textarea {
  font-size: 16px !important;
}

:root {
--bg-primary: #0A0A0A;
--bg-secondary: #111111;
--bg-surface: #1A1A1A;
--text-primary: #FFFFFF;
--text-secondary: #A3A3A3;
--gold: #D4AF37;
--gold-light: #F3E5AB;
--gold-dark: #997A15;
--border-subtle: rgba(255, 255, 255, 0.1);
--border-gold: rgba(212, 175, 55, 0.3);
--font-heading: 'Cormorant Garamond', serif;
--font-body: 'Montserrat', sans-serif;
--obsidian-matte: #0d0d0d;
    --obsidian-light: #1a1a1a;
    --gold-foil: #D4AF37;
    --gold-glow: rgba(212, 175, 55, 0.3);
    --white-paper: #ffffff;
    --gold-envelope-bg: #b38728; /* Baza aurie */
    --gold-envelope-dark: #8a6a10; /* Umbrele */
    --gold-highlight: #f3e5ab; /* Lumina sidefată */
    --gold-seal: #d4af37; /* Aurul sigiliului */
    --text-on-gold: #332b12; /* Culoare gravură ștampilă */
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  }

html {
scroll-behavior: smooth;
}

body {
font-family: var(--font-body);
background-color: var(--bg-primary);
color: var(--text-primary);
overflow-x: hidden;
-webkit-font-smoothing: antialiased;
}

/* =========================
✨ SELECTION & SCROLLBAR
========================= */

::selection {
background-color: rgba(212, 175, 55, 0.3);
}

::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: var(--bg-primary); }
::-webkit-scrollbar-thumb {
background: var(--gold-dark);
border-radius: 3px;
}

/* =========================
🎬 REVEAL ANIMATIONS
========================= */

.reveal {
opacity: 0;
transform: translateY(40px);
transition: opacity 0.8s ease, transform 0.8s ease;
}

.reveal.visible {
opacity: 1;
transform: translateY(0);
}

.reveal-delay-1 { transition-delay: 0.1s; }
.reveal-delay-2 { transition-delay: 0.2s; }
.reveal-delay-3 { transition-delay: 0.3s; }
.reveal-delay-4 { transition-delay: 0.4s; }
.reveal-delay-5 { transition-delay: 0.5s; }

/* =========================
✨ PARTICLES (OPTIMIZED)
========================= */

.particles-container {
position: fixed;
inset: 0;
pointer-events: none;
z-index: 2; /* 🔥 mai mic ca să nu acopere plicul */
overflow: hidden;
}

.golden-particle {
position: absolute;
pointer-events: none;
}

/* SPARKLE */
.particle-sparkle {
width: 4px;
height: 4px;
border-radius: 50%;
background: radial-gradient(circle, #F3E5AB, #D4AF37 50%, transparent 70%);
animation: particleFloat var(--duration, 8s) linear infinite;
}

/* PETALS */
.particle-petal {
width: var(--size, 12px);
height: var(--size, 12px);
background: linear-gradient(135deg, rgba(212,175,55,0.6), rgba(243,229,171,0.3));
border-radius: 50% 0 50% 0;
animation: petalFloat var(--duration, 12s) ease-in-out infinite;
filter: blur(0.5px);
}

/* DUST */
.particle-dust {
width: 2px;
height: 2px;
background: #D4AF37;
border-radius: 50%;
animation: dustFloat var(--duration, 10s) linear infinite;
box-shadow: 0 0 4px rgba(212,175,55,0.4);
}

/* ANIMATIONS */
@keyframes particleFloat {
0% { opacity: 0; transform: translateY(100vh) scale(0); }
10% { opacity: 0.8; transform: translateY(90vh) scale(1); }
50% { opacity: 0.5; }
100% { opacity: 0; transform: translateY(-5vh) scale(0); }
}

@keyframes petalFloat {
0% { opacity: 0; transform: translateY(100vh) rotate(0deg); }
10% { opacity: 0.7; }
50% { opacity: 0.4; }
100% { opacity: 0; transform: translateY(-5vh) rotate(360deg); }
}

@keyframes dustFloat {
0% { opacity: 0; transform: translateY(100vh); }
20% { opacity: 0.6; }
100% { opacity: 0; transform: translateY(-5vh); }
}

/* =========================
🖼 HERO SECTION (FIXED)
========================= */

/* ######################################################## */
/* ################### #### HERO CSS #### ################## */
/* ######################################################## */

.hero-section {
    position: relative;
    width: 100%;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #000;
    min-height: 100dvh;
}

/* Imaginea de fundal cu efect Ken Burns */
.hero-bg-premium {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center;
    filter: brightness(0.55) contrast(1.1); /* Face imaginea mai dramatică */
    animation: kenBurnsZoom 25s infinite alternate ease-in-out;
}

@keyframes kenBurnsZoom {
    0% { transform: scale(1); }
    100% { transform: scale(1.12); }
}

/* Overlay gradient pentru a proteja textul */
.hero-overlay-dark {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(to bottom, 
        rgba(0,0,0,0.4) 0%, 
        rgba(0,0,0,0.2) 50%, 
        rgba(0,0,0,0.6) 100%);
    z-index: 1;
}

.hero-content-premium {
    position: relative;
    z-index: 2;
    text-align: center;
    color: #fff;
}

/* Numele - Stil Regal */
.hero-names-premium {
    font-family: 'Cormorant Garamond', serif;
    font-size: clamp(3rem, 8vw, 6.5rem);
    font-weight: 300;
    font-style: italic;
    margin: 1rem 0;
    display: flex;
    flex-direction: column;
    line-height: 0.9;
}

.luxury-ampersand {
    font-size: 0.5em;
    color: #D4AF37;
    margin: 0.2em 0;
    display: block;
    opacity: 0.9;
}

.hero-overline-premium {
    font-family: 'Montserrat', sans-serif;
    font-size: 0.7rem;
    letter-spacing: 8px;
    text-transform: uppercase;
    color: #D4AF37;
    margin-bottom: 0;
}

/* Divider subtil sub nume */
.luxury-divider-horizontal {
    width: 60px;
    height: 1px;
    background: #D4AF37;
    margin: 2rem auto;
    opacity: 0.6;
}

.hero-info-premium {
    font-family: 'Montserrat', sans-serif;
    text-transform: uppercase;
    letter-spacing: 4px;
    font-size: 0.8rem;
    color: rgba(255, 255, 255, 0.9);
}

.hero-info-premium .date {
    font-weight: 600;
    margin-bottom: 5px;
}

/* Scroll Indicator Animata */
.hero-scroll-indicator {
    position: absolute;
    bottom: 30px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
}

.scroll-line {
    width: 1px;
    height: 50px;
    background: linear-gradient(to bottom, #D4AF37, transparent);
    animation: lineFlow 2s infinite ease-in-out;
}

@keyframes lineFlow {
    0% { height: 0; opacity: 0; }
    50% { height: 50px; opacity: 1; }
    100% { height: 0; opacity: 0; transform: translateY(20px); }
}

/* =========================
📌 SECTIONS
========================= */

.section-overline {
font-size: 0.65rem;
letter-spacing: 0.35em;
text-transform: uppercase;
color: var(--gold);
margin-bottom: 1rem;
}

.section-title {
font-family: var(--font-heading);
font-weight: 300;
}

/* =========================
📖 OUR STORY (REPARAT)
========================= */

.story-section {
    background-color: var(--bg-primary);
    padding: 4rem 1.5rem; /* Spațiere mai mică pe mobil */
}

.story-grid {
    max-width: 80rem;
    margin: 0 auto;
    display: grid;
    /* PE MOBIL: implicit 1 coloană (unul sub altul) */
    grid-template-columns: 1fr; 
    gap: 2rem; 
    align-items: center;
}

.story-image-wrapper {
    position: relative;
    overflow: hidden;
    aspect-ratio: 3/4;
    width: 100%; /* Ocupă toată lățimea pe mobil */
    max-width: 500px; /* Să nu devină uriașă pe tablete */
    margin: 0 auto; /* O centrează */
}

.story-text {
    font-family: var(--font-body);
    font-weight: 300;
    color: var(--text-secondary);
    line-height: 1.9;
    font-size: 0.95rem;
    text-align: center; /* Pe mobil arată mai bine centrat sub poză */
}

/* =========================
💻 DOAR PENTRU DESKTOP (Ecran peste 768px)
========================= */
@media (min-width: 768px) {
    .story-grid {
        grid-template-columns: 1fr 1fr; /* Aici se pun stânga-dreapta */
        gap: 6rem;
    }

    .story-text {
        text-align: left; /* Pe desktop aliniem textul la stânga */
    }
    
    .story-section {
        padding: 8rem 3rem;
    }
}

/* =========================
🌄 countdown
========================= */

.countdown-section {
    padding: 120px 0;
    background-color: #000000; /* Un alb foarte ușor "stins" */
    text-align: center;
}

.countdown-container {
    max-width: 900px;
    margin: 0 auto;
    padding: 0 20px;
}

.premium-overline {
    font-family: 'Montserrat', sans-serif;
    font-size: 0.7rem;
    letter-spacing: 5px;
    text-transform: uppercase;
    color: #9c7e1d;
    margin-bottom: 10px;
}

.premium-title {
    font-family: 'Cormorant Garamond', serif;
    font-style: italic;
    font-size: 2.2rem;
    color: #888;
    margin-bottom: 4rem;
}

.h2 {
    color: #888;
}

/* Display-ul principal */
.countdown-display {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
}

.cd-box {
    display: flex;
    flex-direction: column;
    align-items: center;
    min-width: 120px;
}

.cd-num {
    font-family: 'Cormorant Garamond', serif;
    font-size: clamp(3rem, 8vw, 5rem);
    font-weight: 300;
    color: #888;
    line-height: 1;
}

/* Secundele au o culoare ușor diferită pentru a nu distrage atenția */
.cd-num-seconds {
    font-family: 'Cormorant Garamond', serif;
    font-size: clamp(3rem, 8vw, 5rem);
    font-weight: 300;
    color: #d4af37; /* Auriu pentru secundele care se mișcă */
    line-height: 1;
}

.cd-tag {
    font-family: 'Montserrat', sans-serif;
    font-size: 0.6rem;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: #888;
    margin-top: 15px;
}

/* Separatoarele dintre cifre */
.cd-separator {
    width: 1px;
    height: 40px;
    background: rgba(212, 175, 55, 0.3);
    margin-bottom: 25px; /* Aliniat cu cifrele, nu cu textul de jos */
}

/* Footer Countdown */
.countdown-footer {
    margin-top: 4rem;
}

.gold-line {
    width: 30px;
    height: 1px;
    background: #d4af37;
    margin: 0 auto 1.5rem auto;
}

.location-tag {
    font-family: 'Montserrat', sans-serif;
    font-size: 0.65rem;
    letter-spacing: 4px;
    text-transform: uppercase;
    color: #999;
}

/* Ajustare Mobil */
@media (max-width: 768px) {
    .countdown-display {
        gap: 5px;
    }
    
    .cd-box {
        min-width: 70px;
    }
    
    .cd-num, .cd-num-seconds {
        font-size: 2.5rem;
    }
    
    .cd-separator {
        height: 25px;
    }
}

/* =========================
🌄 PARALLAX (FIXED)
========================= */

.parallax-divider {
position: relative;
height: 40vh;
overflow: hidden;
}

.parallax-divider-bg {
position: absolute;
inset: -20%;
background-size: cover;
background-position: center;
background-image: url('https://images.unsplash.com/photo-1547793806-ab30291ca3c6?crop=entropy&cs=srgb&fm=jpg&q=85');
}

/* 🔥 IMPORTANT FIX (mobile bug) */
@media (min-width: 768px) {
.parallax-divider-bg {
background-attachment: fixed;
}
}

.parallax-divider-overlay {
position: absolute;
inset: 0;
background: rgba(10, 10, 10, 0.75);
}

/* =========================
📦 DETAILS CARDS
========================= */

.details-section {
background-color: var(--bg-primary);
}

.details-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
max-width: 80rem;
margin: 0 auto;
}

.detail-card {
background-color: var(--bg-secondary);
border: 1px solid var(--border-subtle);
padding: 3rem 2rem;
text-align: center;
transition: border-color 0.4s ease;
}

.detail-card:hover {
border-color: var(--border-gold);
}

.detail-icon {
color: var(--gold);
margin-bottom: 1.5rem;
}

.detail-card h3 {
font-family: var(--font-heading);
font-weight: 400;
font-size: 1.5rem;
margin-bottom: 1rem;
}

.detail-card p {
font-size: 0.85rem;
color: var(--text-secondary);
line-height: 1.8;
}

.detail-time {
color: var(--gold);
font-size: 0.8rem;
margin-top: 1rem;
}


/* =========================================
   ✨ SECTION MAP: REGAL PREMIUM STYLE
   ========================================= */

.map-section { 
    background-color: var(--bg-secondary); /* Fundal închis pentru contrast cu harta deschisă */
    position: relative; 
    padding: 6rem 0;
}

.map-section::before {
    content: ''; position: absolute; top: 0; left: 0; right: 0; height: 1px;
    background: linear-gradient(90deg, transparent, var(--gold), transparent);
    opacity: 0.4;
}

.map-container {
    border: 1px solid var(--border-gold); 
    overflow: hidden;
    max-width: 80rem; margin: 0 auto;
    box-shadow: 0 20px 50px rgba(0,0,0,0.3);
}

/* HARTA STIL CHAMPAGNE / PERLĂ */
#map { 
    height: 500px; 
    width: 100%; 
    background: #f9f7f2; 
}

.leaflet-tile-pane { 
    filter: sepia(0.3) brightness(1.05) contrast(1.05) saturate(0.6) !important; 
}

/* POP-UP STYLING (Lux Design) */
.leaflet-popup-content-wrapper {
    background: #fff !important; 
    border: 1px solid var(--gold) !important;
    border-radius: 0 !important; 
    box-shadow: 0 10px 30px rgba(0,0,0,0.2) !important;
}

.leaflet-popup-content {
    margin: 15px 20px !important; 
    font-family: var(--font-body) !important;
    font-size: 0.9rem !important; 
    color: #333 !important;
}

.leaflet-popup-content strong {
    font-family: var(--font-heading) !important; 
    font-size: 1.2rem !important;
    color: var(--gold-dark) !important;
    text-transform: uppercase;
    letter-spacing: 1px;
    display: block;
    margin-bottom: 5px;
}

/* MARKER PREMIUM CU INIȚIALE (B, R, H) */
.custom-map-marker { background: none !important; border: none !important; }

.marker-pin-regal {
    width: 32px; height: 32px;
    border-radius: 50% 50% 50% 0;
    background: var(--gold);
    position: absolute;
    transform: rotate(-45deg);
    left: 50%; top: 50%;
    margin: -16px 0 0 -16px;
    border: 2px solid #fff;
    box-shadow: 0 5px 15px rgba(212, 175, 55, 0.4);
    display: flex; align-items: center; justify-content: center;
}

.marker-pin-regal span {
    transform: rotate(45deg); /* Re-aliniere text */
    color: #000;
    font-family: var(--font-body);
    font-weight: 700; font-size: 11px;
}

.marker-pin-regal::after {
    content: ''; position: absolute; bottom: -8px; left: 50%;
    transform: translateX(-50%) rotate(45deg); width: 0; height: 0;
}

/* LEGENDA HĂRȚII */
.map-legend {
    display: flex; flex-wrap: wrap; gap: 3rem;
    justify-content: center; margin: 3rem auto 0;
    max-width: 80rem;
}

.map-legend-item {
    display: flex; align-items: center; gap: 0.8rem;
    font-family: var(--font-body); 
    font-size: 0.75rem; letter-spacing: 2px;
    text-transform: uppercase; color: #fff;
}

.map-legend-dot {
    width: 12px; height: 12px; border-radius: 50%;
    background: var(--gold); border: 1px solid #fff;
    display: flex; align-items: center; justify-content: center;
    font-size: 7px; color: #000; font-weight: bold;
}

/* TEXTELE DE SUB HARTĂ */
.location-details {
    text-align: center; padding: 4rem 1.5rem;
    max-width: 700px; margin: 0 auto;
}

.location-details h4 {
    font-family: var(--font-heading);
    font-size: clamp(2rem, 5vw, 3rem);
    color: var(--gold); margin-bottom: 1.5rem;
    font-style: italic; font-weight: 400;
}

.location-details p {
    font-family: var(--font-body);
    font-size: 1.05rem; color: #eee;
    line-height: 1.8; margin-bottom: 2.5rem;
    font-weight: 300;
}

.btn-premium-map {
    display: inline-block;
    padding: 1.2rem 3rem;
    border: 1px solid var(--gold);
    color: #fff; text-decoration: none;
    text-transform: uppercase; font-size: 0.75rem;
    letter-spacing: 3px; transition: all 0.4s ease;
    background: transparent;
}

.btn-premium-map:hover {
    background: var(--gold); color: #000;
    transform: translateY(-3px);
    box-shadow: 0 10px 20px rgba(212, 175, 55, 0.2);
}

/* =========================
🖼 GALLERY
========================= */

.gallery-section {
background-color: var(--bg-primary);
}

.upload-zone {
border: 1px dashed var(--border-gold);
padding: 3rem 2rem;
text-align: center;
cursor: pointer;
transition: 0.3s;
max-width: 80rem;
margin: 0 auto;
}

.upload-zone:hover {
background: rgba(212,175,55,0.05);
}

.gallery-grid {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 0.75rem;
max-width: 80rem;
margin: 3rem auto 0;
}

.gallery-item {
position: relative;
aspect-ratio: 1;
overflow: hidden;
border: 1px solid var(--border-subtle);
}

.gallery-item img,
.gallery-item video {
width: 100%;
height: 100%;
object-fit: cover;
transition: transform 0.5s ease;
}

.gallery-item:hover img,
.gallery-item:hover video {
transform: scale(1.05);
}

/* =========================
🔍 LIGHTBOX
========================= */

.lightbox {
position: fixed;
inset: 0;
background: rgba(10,10,10,0.97);
z-index: 60;
display: flex;
align-items: center;
justify-content: center;
}

.lightbox img,
.lightbox video {
max-width: 90vw;
max-height: 85vh;
}

.lightbox-close {
position: absolute;
top: 1.5rem;
right: 1.5rem;
border: 1px solid var(--border-gold);
color: var(--gold);
width: 40px;
height: 40px;
cursor: pointer;
}
   
/* =========================
✍️ TEXT ON ENVELOPE
========================= */

.envelope-text {
position: absolute;
bottom: 3rem;
width: 100%;
text-align: center;
z-index: 2;
}

.envelope-message {
text-align: center;
font-family: var(--font-heading);
}

.envelope-message p {
font-size: 1.2rem;
color: var(--gold);
}

.envelope-message span {
font-size: 0.7rem;
letter-spacing: 2px;
color: var(--text-secondary);
}


/* =========================
👥 GUESTS INPUT
========================= */

#guests-names {
margin-top: 20px;
padding-left: 15px;
border-left: 2px solid var(--gold);
font-family: var(--font-heading);
font-style: italic;
}

#guests-names p {
color: #292828;
margin: 5px 0;
}

#guests-names input {
background: transparent;
border: none;
color: #313030;
font-style: italic;
font-family: var(--font-heading);
width: 100%;
}

#guests-names input:focus {
outline: none;
}

/* =========================
🔘 RADIO
========================= */

.premium-radio-group {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 1rem;
}

.premium-radio {
cursor: pointer;
position: relative;
}

.premium-radio input {
position: absolute;
opacity: 0;
}

.radio-content {
border: 1px solid #e0e0e0;
padding: 1.2rem;
text-align: center;
color: #777;
transition: all 0.3s ease;
}

.premium-radio input:checked + .radio-content {
border-color: var(--gold);
color: var(--gold);
background: #fffdf5;
font-weight: 600;
}

/* =========================
🔢 COUNTER (UNIFIED)
========================= */

.counter-container {
display: flex;
align-items: center;
justify-content: center;
gap: 1.2rem;
background: #f9f9f9;
padding: 0.8rem 1.2rem;
width: fit-content;
margin: 1rem auto;
}

.counter-btn {
width: 38px;
height: 38px;
border-radius: 50%;
border: 1px solid var(--gold);
background: transparent;
color: var(--gold);
font-size: 1.3rem;
cursor: pointer;
transition: 0.2s;
}

.counter-btn:hover {
background: var(--gold);
color: black;
}

.counter-input {
background: transparent;
border: none;
color: #1a1a1a;
font-size: 1.4rem;
width: 40px;
text-align: center;
font-family: var(--font-heading);
}

/* =========================
🔘 BUTTON (SINGLE VERSION)
========================= */

.shimmer-btn-premium {
    width: 100%; padding: 1.2rem; background: var(--gold);
    color: #000; border: none; font-weight: 700; text-transform: uppercase;
    cursor: pointer; letter-spacing: 2px;
}

.shimmer-btn-premium:hover {
transform: translateY(-3px);
box-shadow: 0 10px 20px rgba(212, 175, 55, 0.3);
}

/* =========================
✨ EXTRA UI
========================= */

.shimmer-btn {
position: relative;
overflow: hidden;
border: 1px solid var(--gold);
color: var(--gold);
padding: 1rem 2.5rem;
font-size: 0.7rem;
letter-spacing: 0.3em;
text-transform: uppercase;
cursor: pointer;
}

.shimmer-btn::before {
content: '';
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: linear-gradient(120deg, transparent, rgba(212,175,55,0.3), transparent);
animation: shimmer 3s infinite;
}

@keyframes shimmer {
0% { left: -100%; }
100% { left: 100%; }
}

/* =========================
🎉 SUCCESS OVERLAY
========================= */

.success-overlay {
position: fixed;
inset: 0;
background: rgba(10,10,10,0.95);
display: flex;
align-items: center;
justify-content: center;
z-index: 50;
}

.success-content {
text-align: center;
padding: 2rem;
}

.success-icon {
width: 64px;
height: 64px;
border: 1px solid var(--gold);
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
margin: 0 auto 1.5rem;
}

/* =========================
⬇️ SCROLL INDICATOR
========================= */

.scroll-indicator {
position: absolute;
bottom: 2rem;
left: 50%;
transform: translateX(-50%);
animation: bounce 2s infinite;
}

@keyframes bounce {
0%,100% { transform: translateX(-50%) translateY(0); }
50% { transform: translateX(-50%) translateY(-10px); }
}
/* =========================
🧰 UTILITY
========================= */

.section-padding {
padding: 6rem 1.5rem;
}

.text-center {
text-align: center;
}

.hidden {
display: none;
}

/* =========================
🎨 ICONS
========================= */

.icon {
display: inline-block;
vertical-align: middle;
}

/* =========================
📱 RESPONSIVE
========================= */

@media (min-width: 768px) {

.section-padding {
    padding: 8rem 3rem;
}
}

.story-grid {
    grid-template-columns: 1fr; 
    gap: 2rem; /* Spațiu mai mic între poză și text pe mobil */
}

/* DOAR când ecranul e mai mare de 768px (Tablete/Laptop), trecem la 2 coloane */
@media (min-width: 768px) {
    .story-grid {
        grid-template-columns: 1fr 1fr;
        gap: 6rem;
    }
}

.story-image-wrapper {
    aspect-ratio: 4/5;
}

.countdown-grid {
    grid-template-columns: repeat(4, 1fr);
    gap: 2rem;
}

.countdown-number {
    font-size: 5.5rem;
}

.details-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
}

.gallery-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
}


@media (max-width: 768px) {
    .section-padding {
        padding: 4rem 1.5rem; /* Mult mai mic decât cei 10rem de pe desktop */
    }
    
    .gallery-grid {
        grid-template-columns: repeat(2, 1fr); /* Doar 2 poze pe rând, nu 4 */
    }
}

@media (max-width: 768px) {

.hero-bg {
    background-attachment: scroll;
}

.parallax-divider-bg {
    background-attachment: scroll;
}

#map {
    height: 400px;
}

}

/* =========================
⚙️ CONTROL PANEL BUTTON
========================= */

#control-panel-btn {
position: fixed;
bottom: 15px;
right: 15px;

font-size: 11px;
font-family: serif;
letter-spacing: 0.5px;

color: #c9a24a;
text-decoration: none;

padding: 4px 8px;
border: 1px solid rgba(201, 162, 74, 0.4);
border-radius: 4px;

background: rgba(0, 0, 0, 0.15);
transition: all 0.2s ease;

z-index: 9999;

}

#control-panel-btn:hover {
color: #fff;
border-color: #c9a24a;
background: rgba(201, 162, 74, 0.15);
}

/* =========================================
   ✨ FOOTER STYLING - REGAL EDITION
   ========================================= */

.footer-section {
    background-color: var(--bg-primary); /* Fundalul tău negru/închis */
    border-top: 1px solid rgba(212, 175, 55, 0.1);
}

/* Stil pentru numele Gabriel & Lavinia */
.footer-names {
    font-family: var(--font-heading);
    background: linear-gradient(to right, #BF953F, #FCF6BA, #B38728, #FBF5B7, #AA771C);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    font-weight: 500px;
    letter-spacing: 3px;
    margin-bottom: 1rem;
}

/* Divizorul auriu fin */
.gold-divider {
    height: 1px;
    width: 100%;
    max-width: 150px; /* Lungime discretă */
    margin: 0 auto;
    background: linear-gradient(90deg, transparent, var(--gold), transparent);
}

/* Textul cu locația și data */
.footer-info-text {
    font-family: var(--font-body) !important;
    font-size: 0.75rem !important;
    letter-spacing: 0.3em !important;
    color: var(--gold-light) !important; /* Auriu pal pentru lizibilitate */
    text-transform: uppercase;
    opacity: 0.8;
}

/* Textul de final */
.footer-gratitude {
    font-family: var(--font-heading) !important;
    font-style: italic;
    font-size: 1rem;
    color: var(--text-secondary);
    opacity: 0.6;
}

/* ######################################################## */
/* ################### #### CONTAINER #### ################# */
/* ######################################################## */

.envelope-container {
    position: relative;
    width: 100%;
    max-width: 1000px;
    margin: 120px auto;
    aspect-ratio: 16 / 10;
    display: flex;
    align-items: center;
    justify-content: center;
    perspective: 2500px;
}

/* ######################################################## */
/* ################### #### PLIC BASE #### ################# */
/* ######################################################## */

.envelope {
    position: relative;
    width: 90%;
    max-width: 900px;
    height: 100%;

    /* 🔥 GOLD REAL – MULTI STRAT */
    background:
        linear-gradient(120deg, #6e5a2b, #d4af37 25%, #fff3b0 40%, #d4af37 55%, #8c742f 80%, #3a2f14),
        radial-gradient(circle at var(--mouse-x,50%) var(--mouse-y,50%), rgba(255,255,255,0.35), transparent 60%);

    border-radius: 6px;
    border: 1px solid rgba(255,215,120,0.4);

    box-shadow:
        0 50px 120px rgba(0,0,0,0.6),
        inset 0 2px 6px rgba(255,255,255,0.4),
        inset 0 -20px 40px rgba(0,0,0,0.25);

    transition: transform 0.7s ease, box-shadow 0.7s ease;
}

/* Hover cinematic */
.envelope-container:hover .envelope {
    transform: rotateY(8deg) rotateX(3deg) scale(1.03);
    box-shadow:
        0 80px 160px rgba(0,0,0,0.8),
        0 0 40px rgba(212,175,55,0.35),
        inset 0 3px 8px rgba(255,255,255,0.5),
        inset 0 -25px 50px rgba(0,0,0,0.35);
}

/* ######################################################## */
/* ################### #### GOLD TEXTURE #### ############## */
/* ######################################################## */

.envelope::before {
    content: "";
    position: absolute;
    inset: 0;

    background:
        repeating-linear-gradient(
            45deg,
            rgba(255,255,255,0.05) 0px,
            rgba(255,255,255,0.05) 1px,
            transparent 1px,
            transparent 3px
        );

    opacity: 0.25;
    mix-blend-mode: overlay;
}

/* ######################################################## */
/* ################### #### FOLDURI #### ################### */
/* ######################################################## */

.envelope .bottom-fold {
    position: absolute;
    inset: 0;

    background:
        linear-gradient(-135deg, rgba(0,0,0,0.2), rgba(0,0,0,0.45));

    clip-path: polygon(0 100%, 50% 45%, 100% 100%);
    z-index: 2;
}

.envelope .left-fold {
    position: absolute;
    inset: 0;

    background:
        linear-gradient(135deg, rgba(0,0,0,0.15), rgba(0,0,0,0.4));

    clip-path: polygon(0 0, 100% 50%, 0 100%);
    z-index: 3;
}

.envelope .right-fold {
    position: absolute;
    inset: 0;

    background:
        linear-gradient(-135deg, rgba(0,0,0,0.15), rgba(0,0,0,0.4));

    clip-path: polygon(100% 0, 0 50%, 100% 100%);
    z-index: 3;
}

/* Clapă sus shadow */
.envelope::after {
    content: "";
    position: absolute;
    inset: 0;

    background: linear-gradient(180deg, rgba(0,0,0,0.35), transparent 60%);
    clip-path: polygon(0 0, 50% 55%, 100% 0);
    z-index: 4;
}

/* ######################################################## */
/* ################### #### FLAP #### ###################### */
/* ######################################################## */

.flap-front {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 60%;

    background:
        linear-gradient(120deg, #7a632c, #e0c35a 30%, #fff2a6 50%, #d4af37 70%, #5c4a1f);

    clip-path: polygon(0 0, 100% 0, 50% 100%);
    transform-origin: top;

    z-index: 10;

    box-shadow:
        0 20px 40px rgba(0,0,0,0.6),
        inset 0 3px 10px rgba(255,255,255,0.5);

    border-bottom: 2px solid rgba(255,215,120,0.8);

    transition: transform 1.1s cubic-bezier(0.77, 0, 0.18, 1);
}

/* OPEN */
.envelope.open .flap-front {
    transform: rotateX(-170deg);
}

/* ######################################################## */
/* ################### #### GOLD SHINE #### ################ */
/* ######################################################## */

.flap-front::before {
    content: "";
    position: absolute;
    top: 0;
    left: -120%;
    width: 60%;
    height: 100%;

    background: linear-gradient(
        to right,
        transparent,
        rgba(255,255,255,0.6),
        transparent
    );

    transform: skewX(-25deg);
    animation: goldShine 5s infinite;
}

@keyframes goldShine {
    0% { left: -120%; }
    30% { left: 130%; }
    100% { left: 130%; }
}


/* ######################################################## */
/* ######################### text ######################### */
/* ######################################################## */

.open-text {
    /* RESET ȘI POZIȚIONARE ABSOLUTĂ */
    position: absolute !important;
    bottom: 25px !important; /* Distanța de marginea de jos a plicului */
    left: 50% !important;
    transform: translateX(-50%) !important;
    
    /* STRATIFICARE MAXIMĂ */
    /* Trebuie să fie mai mare decât seal (100) și folds (2,3,4) */
    z-index: 999 !important; 
    
    /* STIL VIZUAL */
    color: #f3e5ab; 
    font-family: 'Montserrat', sans-serif;
    font-size: 10px;
    font-weight: 300;
    letter-spacing: 12px; /* Spațiere luxury */
    text-transform: uppercase;
    white-space: nowrap;
    
    /* SUBTILE GLOW */
    opacity: 0.7;
    text-shadow: 0 2px 4px rgba(0,0,0,0.5);
    pointer-events: none;
    
    transition: all 0.4s ease;
}

/* Efect la Hover pe container */
.envelope-container:hover .open-text {
    opacity: 1;
    letter-spacing: 15px;
    color: #ffffff;
    bottom: 30px !important; /* Se ridică 5px la hover */
}

/* Dispare când se deschide plicul */
.envelope.open .open-text {
    display: none !important;
}

/* ######################################################## */
/* ################### #### SIGILIU #### ################### */
/* ######################################################## */

.seal {
    position: absolute;
    top: 55%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 90px;
    height: 88px;
    
    /* Forma de ceară topită */
    border-radius: 48% 52% 45% 55% / 55% 48% 52% 45%;
    background: radial-gradient(circle at 30% 30%, #f3e5ab 0%, #d4af37 20%, #b38728 50%, #8a6a10 80%, #5c4518 100%);
    
    /* Umbrele care dau volum */
    box-shadow: 
        0 10px 20px rgba(0, 0, 0, 0.5), 
        inset 0 -5px 10px rgba(0, 0, 0, 0.4), 
        inset 0 5px 10px rgba(255, 255, 255, 0.4);

    z-index: 100; /* CRITIC: Să fie deasupra tuturor flap-urilor */
    cursor: pointer;
    display: flex;
    flex-direction: column; /* Aliniază elementele pe verticală */
    align-items: center;
    justify-content: center;
    transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

/* Efectul de "reversare" a cerii pe margini */
.seal::before {
    content: "";
    position: absolute;
    inset: -4px;
    border-radius: inherit;
    background: inherit;
    filter: blur(2px); /* Face marginile să pară topite */
    z-index: -1;
    opacity: 0.8;
    box-shadow: inset 0 0 10px rgba(0,0,0,0.5);
}

/* Gravura centrală (Inițialele sau Simbolul) */
.seal::after {
    content: "G&L"; /* Schimbă cu inițialele dorite */
    font-family: 'Cormorant Garamond', serif;
    font-size: 24px;
    font-weight: 700;
    color: #4a370a; /* Culoare de "ars" / gravat */
    
    /* Efect de gravură (Letterpress) */
    text-shadow: 
        -1px -1px 1px rgba(0,0,0,0.5), 
        1px 1px 1px rgba(255,255,255,0.2);
    
    opacity: 0.9;
    letter-spacing: 1px;
}

/* Interacțiune Premium la Hover */
.seal:hover {
    transform: translate(-50%, -55%) scale(1.05); /* Se ridică ușor */
    filter: brightness(1.1);
    box-shadow: 
        0 15px 30px rgba(0, 0, 0, 0.6), 
        inset 0 -5px 15px rgba(0, 0, 0, 0.3), 
        inset 0 5px 20px rgba(255, 255, 255, 0.5);
}

/* CRACK */
.seal.cracked {
    animation: sealBreak 0.45s ease forwards;
    transform: scale(0.5);
    opacity: 0;
    transition: all 0.5s ease;
    pointer-events: none;
}

@keyframes sealBreak {
    0% { transform: translate(-50%, -50%) scale(1); }
    50% { transform: translate(-50%, -50%) scale(1.2) rotate(5deg); }
    100% { transform: translate(-50%, -50%) scale(0); opacity: 0; }
}

/* ######################################################## */
/* ################### #### EXTRA LIGHT #### ################ */
/* ######################################################## */

.envelope::after {
    content: "";
    position: absolute;
    inset: 0;

    background:
        radial-gradient(circle at var(--mouse-x,50%) var(--mouse-y,50%), rgba(255,255,255,0.25), transparent 70%);

    mix-blend-mode: soft-light;
    pointer-events: none;
}

/* ######################################################## */
/* ################### #### FOAIE (INVITATIE) #### ######### */
/* ######################################################## */

.letter {
    position: absolute;
    width: 90%;
    height: 95%;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) scale(0.9);
    background: #ffffff;
    box-shadow: 0 40px 100px rgba(0,0,0,0.5);
    z-index: 2;
    opacity: 0;
    transition: all 1.4s cubic-bezier(0.16, 1, 0.3, 1);
}

/* =========================================
   ✨ FORMULAR RSVP EXAGERAT DE PREMIUM
   ========================================= */
/* ######################################################## */
/* ################### #### FORMULAR #### ################## */
/* ######################################################## */

.rsvp-card {
    position: fixed;
    top: 50%;
    left: 50%;
    width: 95%;
    max-width: 580px;
    padding: 4.5rem 3.5rem;
    background: #ffffff url("https://www.transparenttextures.com/patterns/cream-paper.png");
    
    /* Dublă Bordură din Foiță de Aur */
    border: 1px solid #d4af37;
    outline: 8px double #d4af37;
    outline-offset: -20px;
    
    /* Stare Inițială (Ascuns) */
    z-index: 9999;
    opacity: 0;
    visibility: hidden;
    transform: translate(-50%, -45%) scale(0.9);
    
    box-shadow: 0 50px 100px rgba(0,0,0,0.5);
    transition: all 1.2s cubic-bezier(0.19, 1, 0.22, 1);
}

/* Ornament de colț Regal */
.rsvp-card-inner::before {
    content: "◈";
    position: absolute;
    top: 30px;
    left: 30px;
    color: #d4af37;
    font-size: 1.5rem;
}

/* Texte Premium */
.premium-title {
    text-align: center;
    font-family: 'Cormorant Garamond', serif !important;
    font-style: italic;
    font-weight: 500;
    font-size: 2.3rem;
    margin-bottom: 0.5rem;
    color: #888;
    line-height: 1.2;
}

.premium-subtitle {
    text-align: center;
    font-family: 'Montserrat', sans-serif;
    font-size: 0.7rem;
    letter-spacing: 4px;
    text-transform: uppercase;
    color: #9c7e1d;
    margin-bottom: 3rem;
}

/* Input-uri Minimaliste Gravate */
.form-group-premium {
    margin-bottom: 2rem;
}

.rsvp-label-premium {
    font-family: 'Montserrat', sans-serif;
    font-size: 0.6rem;
    font-weight: 600;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: #8a6a10;
    margin-bottom: 10px;
    display: block;
}

.rsvp-input-premium, 
.rsvp-textarea-premium, 
select.rsvp-input-premium {
    width: 100%;
    background: transparent !important;
    border: none !important;
    border-bottom: 1px solid rgba(212, 175, 55, 0.3) !important;
    padding: 12px 0 !important;
    font-family: 'Cormorant Garamond', serif !important;
    font-size: 1.4rem !important;
    font-style: italic !important;
    color: #1a1a1a !important;
    border-radius: 0 !important;
    transition: all 0.4s ease;
}

.rsvp-input-premium:focus {
    border-bottom-color: #d4af37 !important;
    outline: none;
    background: rgba(212, 175, 55, 0.02) !important;
}

/* Selecție Da/Nu tip "Bijuterie" */
.premium-radio-group {
    display: flex;
    gap: 15px;
}

.premium-radio {
    flex: 1;
    cursor: pointer;
    position: relative;
}

.premium-radio input {
    position: absolute;
    opacity: 0;
}

.radio-content {
    border: 1px solid rgba(212, 175, 55, 0.3);
    padding: 15px;
    text-align: center;
    font-family: 'Montserrat', sans-serif;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: #1a1a1a;
    transition: all 0.5s ease;
}

.premium-radio input:checked + .radio-content {
    background: #d4af37;
    color: #ffffff;
    border-color: #d4af37;
    box-shadow: 0 10px 20px rgba(212, 175, 55, 0.3);
}

/* Butonul de Trimitere (Gold Foil) */
.shimmer-btn-premium {
    width: 100%;
    margin-top: 2rem;
    background: linear-gradient(135deg, #a67c00 0%, #fcf6ba 50%, #a67c00 100%) !important;
    background-size: 200% auto !important;
    color: #1a1a1a !important;
    border: none !important;
    padding: 1.3rem !important;
    font-family: 'Montserrat', sans-serif !important;
    font-size: 0.85rem !important;
    font-weight: 700 !important;
    letter-spacing: 5px !important;
    text-transform: uppercase !important;
    cursor: pointer;
    transition: 0.5s;
    box-shadow: 0 10px 30px rgba(0,0,0,0.1);
}

.shimmer-btn-premium:hover {
    background-position: right center !important;
    transform: translateY(-3px);
    box-shadow: 0 15px 40px rgba(212, 175, 55, 0.4);
}

/* ######################################################## */
/* ################### #### ANIMATII #### ################## */
/* ######################################################## */

/* Plicul în starea inițială */
.envelope {
    position: relative;
    transition: all 1.5s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 10;
}

/* 1. Animația de retragere a plicului */
.envelope.open {
    /* Mișcare în spate (scale), spre dreapta (translateX) și rotație 3D */
    transform: perspective(1000px) translate3d(150px, 100px, -200px) rotateY(15deg) rotateX(10deg);
    opacity: 0.15;
    filter: blur(15px);
    pointer-events: none;
    transition: all 1.8s cubic-bezier(0.4, 0, 0.2, 1);
}

/* 2. Clapa plicului */
.envelope.open .flap-front {
    transform: rotateX(-180deg);
    transition: transform 0.8s ease;
}

/* 3. Activarea Formularului RSVP */
/* Folosim selectorul ~ deoarece rsvp-card este după envelope în HTML */
.envelope.open ~ .rsvp-card {
    opacity: 1;
    visibility: visible;
    /* Cardul vine pe centrul perfect în timp ce plicul fuge în dreapta-spate */
    transform: translate(-50%, -50%) scale(1);
    transition-delay: 0.5s;
    filter: blur(0px) !important; /* Siguranță extra pentru claritate */
}

/* 4. Curățarea elementelor secundare */
.envelope.open .seal,
.envelope.open .open-text {
    opacity: 0;
    transition: opacity 0.4s ease;
}

/* 5. Mișcare subtilă de fundal (Opțional pentru extra lux) */
@keyframes luxuryFloat {
    0% { transform: translate(-50%, -50%) scale(1); }
    50% { transform: translate(-50%, -52%) scale(1.01); }
    100% { transform: translate(-50%, -50%) scale(1); }
}

.envelope.open ~ .rsvp-card {
    animation: luxuryFloat 6s ease-in-out infinite;
    animation-delay: 1.6s;
}

/* ######################################################## */
/* ################### #### FORMULAR #### ################## */
/* ######################################################## */

/* Fonturi și Culori Generale */
:root {
    --gold-foil: linear-gradient(135deg, #a67c00 0%, #fcf6ba 50%, #a67c00 100%);
    --dark-accent: #1a1a1a;
    --subtle-gold: rgba(212, 175, 55, 0.4);
}

.premium-title {
    font-family: 'Cormorant Garamond', serif;
    font-size: 2.4rem;
    font-style: italic;
    color: #888;
    margin-bottom: 0.5rem;
}

.premium-deadline {
    font-family: 'Montserrat', sans-serif;
    font-size: 0.7rem;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: #9c7e1d;
    margin-bottom: 2.5rem;
}

/* Stil Input-uri: Linie fină de aur */
.rsvp-label-premium {
    font-family: 'Montserrat', sans-serif;
    font-size: 0.65rem;
    font-weight: 600;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: #8a6a10;
    margin-bottom: 8px;
    display: block;
}

.rsvp-input-premium {
    border: none !important;
    border-bottom: 1px solid var(--subtle-gold) !important;
    font-family: 'Cormorant Garamond', serif !important;
    font-size: 1.3rem !important;
    padding: 10px 0 !important;
    background: transparent !important;
    transition: 0.4s;
}

.rsvp-input-premium:focus {
    border-bottom-color: #d4af37 !important;
    background: rgba(212, 175, 55, 0.03) !important;
}

/* SELECȚIE DA/NU - MOD LUXURY */
.luxury-selection-grid {
    display: flex;
    gap: 15px;
}

.luxury-option { flex: 1; cursor: pointer; }
.luxury-option input { display: none; }

.option-box {
    display: block;
    padding: 15px;
    border: 1px solid var(--subtle-gold);
    text-align: center;
    font-family: 'Montserrat', sans-serif;
    font-size: 0.7rem;
    letter-spacing: 1px;
    text-transform: uppercase;
    transition: 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.luxury-option input:checked + .option-box {
    background: var(--dark-accent);
    color: #d4af37;
    border-color: var(--dark-accent);
    box-shadow: 0 10px 25px rgba(0,0,0,0.2);
}

/* COUNTER & ROW */
.form-row-premium { display: flex; gap: 20px; margin-top: 1rem; }
.flex-1 { flex: 1; }
.flex-2 { flex: 2; }

.luxury-counter {
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-bottom: 1px solid var(--subtle-gold);
    padding: 5px 0;
}

.c-btn {
    background: none; border: none;
    color: #d4af37; font-size: 1.5rem;
    cursor: pointer; width: 30px;
}

/* ######################################################## */
/* ################### #### ANIMATII #### ################## */
/* ######################################################## */

.envelope.open {
    /* Plicul se duce în spate-dreapta cu perspectivă */
    transform: perspective(1200px) translate3d(200px, 150px, -400px) rotateY(25deg) !important;
    opacity: 0.1;
    filter: blur(15px);
    transition: all 1.8s ease;
}

.envelope.open ~ .rsvp-card {
    opacity: 1 !important;
    visibility: visible !important;
    /* Cardul apare prin "mărire" fină pe centru */
    transform: translate(-50%, -50%) scale(1) !important;
    transition: all 1.2s cubic-bezier(0.19, 1, 0.22, 1);
}

Problema pe mobil apare din cauza dimensiunilor fixe (width, height) sau a poziționării fixed/absolute care nu ține cont de ecranul mic. Pe mobil, un formular "exagerat de premium" trebuie să se simtă ca o foaie de hârtie care ocupă aproape tot ecranul, dar care lasă spațiu de "respirație" (margin) și devine scrollabil dacă e lung.

Iată soluția tehnică pentru a face formularul responsive și a preveni suprapunerea:

1. CSS-ul de Corecție (Media Queries)
Adaugă acest bloc la finalul fișierului tău CSS. Acesta va ajusta formularul doar când ecranul este mai mic de 768px.

CSS
/* ######################################################## */
/* ################ REZOLVARE MOBIL (RESPONSIVE) ########### */
/* ######################################################## */

@media (max-width: 768px) {
    .rsvp-card {
        /* Lăsăm formularul să respire, nu îl forțăm la 95% fix */
        width: calc(100% - 40px) !important; 
        max-height: 85vh; /* Nu îl lăsăm să iasă din ecran pe înălțime */
        overflow-y: auto; /* Dacă e prea lung, facem scroll DOAR în formular */
        padding: 2.5rem 1.5rem !important; /* Spațiere mai mică pe mobil */
        
        /* Ajustăm poziționarea să nu sară de pe centru */
        top: 50% !important;
        transform: translate(-50%, -50%) scale(1) !important;
        
        /* Scoatem outline-ul dublu dacă e prea înghesuit (opțional) */
        outline-offset: -10px !important;
        outline-width: 4px !important;
    }

    /* Ajustăm textele să nu fie gigantice pe mobil */
    .luxury-text-italic, .premium-heading {
        font-size: 1.6rem !important;
    }

    /* Punem elementele unul sub altul pe mobil ca să nu se suprapună lateral */
    .selection-row, .form-row-luxury, .form-row-premium {
        flex-direction: column !important;
        gap: 10px !important;
    }

    .flex-1, .flex-2 {
        width: 100% !important;
    }

    /* Plicul trebuie să dispară sau să se ducă mult mai jos pe mobil */
    .envelope.open {
        transform: perspective(1000px) translate3d(0, 300px, -500px) rotateX(20deg) !important;
        opacity: 0; /* Pe mobil e mai bine să dispară de tot plicul când e deschis */
    }
}

.rsvp-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.7); /* Negru transparent */
    backdrop-filter: blur(5px);    /* Blurează tot ce e sub */
    z-index: 9998;                 /* Sub formular, dar peste site */
    display: none;                 /* Ascuns inițial */
}

/* Când plicul e deschis, afișăm overlay-ul */
.envelope.open ~ .rsvp-overlay {
    display: block;
}

/* Fixăm formularul să nu se bată cu restul site-ului */
.rsvp-card {
    position: fixed !important; 
    z-index: 9999 !important; /* Cel mai mare număr posibil */
    /* Restul stilurilor tale de rsvp-card rămân la fel... */
}

@media (max-width: 768px) {
    /* Pe mobil, forțăm marginile ca să nu atingă butoanele din spate */
    .rsvp-card {
        width: 90vw !important;
        max-height: 80vh !important;
        overflow-y: scroll !important; /* Permite scroll în interiorul lui */
        -webkit-overflow-scrolling: touch;
    }
}

/* ######################## */

#persons-group-premium {
    transition: opacity 0.3s ease;
}

@media (max-width: 768px) {
    /* Ajustăm containerul plicului pentru ecrane înguste */
    .envelope-container {
        margin: 40px auto;
        width: 95%; /* Îl forțăm să nu depășească lățimea ecranului */
        aspect-ratio: 1 / 1; /* Îl facem mai pătrat pe mobil ca să încapă textul/sigiliul */
        height: auto;
    }

    .envelope {
        width: 100%;
        height: 100%;
    }

    /* Sigiliul e prea mare pentru mobil, îl micșorăm */
    .seal {
        width: 70px;
        height: 68px;
    }
    
    .seal::after {
        font-size: 18px;
    }

    /* Textul "APASĂ PENTRU A DESCHIDE" (open-text) */
    .open-text {
        letter-spacing: 4px !important; /* Spațierea de 12px e prea mare pe mobil */
        font-size: 8px;
        bottom: 15px !important;
    }
}

@media (max-width: 480px) {
    .hero-overline-premium {
        letter-spacing: 3px; /* Redus de la 8px */
    }
    
    .hero-names-premium {
        font-size: 3rem; /* Forțăm o mărime controlată */
    }
}

html, body {
    width: 100%;
    margin: 0;
    padding: 0;
    overflow-x: hidden; /* Oprește scroll-ul stânga-dreapta */
    position: relative;
}

/* 1. Setarea de bază (Mobil - Unul sub altul) */
.details-grid {
    display: grid;
    grid-template-columns: 1fr !important; /* Forțăm o singură coloană pe mobil */
    gap: 1.5rem;
    width: 100%;
    padding: 0 20px; /* Important ca să nu atingă marginile ecranului */
}

/* 2. Setarea pentru Desktop (Doar peste 768px lățime) */
@media (min-width: 768px) {
    .details-grid {
        grid-template-columns: repeat(3, 1fr) !important; /* Aici apar toate 3 pe rând */
        gap: 2rem;
        padding: 0;
    }
}

/* ###################
          MESE
   ################### */

.table {
  border: 2px solid #ccc;
  padding: 10px;
  margin: 10px;
  min-height: 100px;
  display: inline-block;
  vertical-align: top;
  width: 200px;
}

.guest {
  background: #f1f1f1;
  padding: 5px;
  margin: 5px;
  cursor: grab;
}