/* =====================================================
   Wedding Theme — palette ispirata al tramonto/poster
   ===================================================== */
:root {
    --c-cream: #f5ecd9;
    --c-cream-2: #efe2c4;
    --c-yellow: #f5c542;
    --c-orange: #ee7a3a;
    --c-coral:  #e8473e;
    --c-pink:   #f0a5a0;
    --c-navy:   #1f2a44;
    --c-navy-soft: #2c3a5a;
    --c-leaf:   #6b8e4e;
    --font-display: 'Cormorant Garamond', 'Playfair Display', Georgia, serif;
    --font-body: 'Quicksand', 'Helvetica Neue', Arial, sans-serif;
}

@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;700&family=Quicksand:wght@400;500;600&display=swap');

html, body {
    font-family: var(--font-body) !important;
    color: var(--c-navy);
    background:
        radial-gradient(ellipse at top left, rgba(245, 197, 66, 0.18), transparent 45%),
        radial-gradient(ellipse at bottom right, rgba(232, 71, 62, 0.15), transparent 50%),
        var(--c-cream);
    min-height: 100vh;
    position: relative;
    overflow-x: hidden;
}

h1, h2, h3, h4, h5 {
    font-family: var(--font-display) !important;
    color: var(--c-navy);
    letter-spacing: 0.5px;
}

h1 .display-4, .display-4 { font-weight: 600; }

a { color: var(--c-coral); }
a:hover { color: var(--c-orange); }

/* ---------- Card ---------- */
.card {
    background: rgba(255, 252, 245, 0.92) !important;
    border: 1px solid rgba(31, 42, 68, 0.08) !important;
    border-radius: 18px !important;
    backdrop-filter: blur(4px);
    box-shadow: 0 12px 40px rgba(31, 42, 68, 0.10) !important;
}

/* ---------- Bottoni ---------- */
.btn-primary {
    background: linear-gradient(135deg, var(--c-coral) 0%, var(--c-orange) 100%) !important;
    border: none !important;
    color: #fff !important;
    font-weight: 600;
    letter-spacing: 0.6px;
    padding: 0.75rem 1.5rem;
    border-radius: 999px !important;
    box-shadow: 0 6px 18px rgba(232, 71, 62, 0.35);
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.btn-primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 24px rgba(232, 71, 62, 0.45);
}

.btn-success {
    background: linear-gradient(135deg, var(--c-yellow) 0%, var(--c-orange) 100%) !important;
    border: none !important;
    color: var(--c-navy) !important;
    font-weight: 600;
    border-radius: 999px !important;
    padding: 0.6rem 1.4rem;
}

/* ---------- Form ---------- */
.form-control, .form-select {
    border-radius: 12px;
    border: 1.5px solid rgba(31, 42, 68, 0.15);
    background: #fffaf0;
}
.form-control:focus, .form-select:focus {
    border-color: var(--c-orange);
    box-shadow: 0 0 0 0.2rem rgba(238, 122, 58, 0.18);
}

/* ---------- Badge ---------- */
.badge.bg-success { background-color: var(--c-leaf) !important; }
.badge.bg-danger  { background-color: var(--c-coral) !important; }
.badge.bg-secondary { background-color: var(--c-navy-soft) !important; }

/* ---------- Tabella ---------- */
.table {
    background: rgba(255, 252, 245, 0.95);
    border-radius: 12px;
    overflow: hidden;
}
.table thead th {
    background: var(--c-navy);
    color: var(--c-cream);
    border: none;
    font-family: var(--font-display);
    letter-spacing: 1px;
    text-transform: uppercase;
    font-size: 0.85rem;
}

/* ---------- Banner del tramonto (per Home/Rsvp) ---------- */
.sunset-banner {
    height: 140px;
    border-radius: 20px 20px 0 0;
    background: linear-gradient(180deg,
        var(--c-yellow) 0%,
        var(--c-yellow) 25%,
        var(--c-orange) 25%,
        var(--c-orange) 50%,
        var(--c-coral) 50%,
        var(--c-coral) 75%,
        var(--c-pink) 75%,
        var(--c-pink) 100%
    );
    position: relative;
    overflow: hidden;
    margin: -1.5rem -1.5rem 1.5rem -1.5rem;
}
.sunset-banner::after {
    content: "";
    position: absolute;
    bottom: -45%;
    left: 50%;
    transform: translateX(-50%);
    width: 60%;
    aspect-ratio: 1;
    border-radius: 50%;
    background: var(--c-cream);
    box-shadow: 0 0 0 6px rgba(31,42,68,0.05);
}

/* ---------- Titoli decorati ---------- */
.heading-decor {
    text-align: center;
    position: relative;
    padding: 0 2rem;
}
.heading-decor::before,
.heading-decor::after {
    content: "✦";
    color: var(--c-orange);
    margin: 0 0.8rem;
    font-size: 0.9em;
    opacity: 0.7;
}

/* =====================================================
   Fiori di campo sparsi ai bordi
   ===================================================== */
.flower {
    position: fixed;
    pointer-events: none;
    z-index: 0;
    opacity: 0.85;
    animation: sway 7s ease-in-out infinite;
}
.flower svg { display: block; width: 100%; height: 100%; }

.flower.f1 { top: 4%;   left: 1%;   width: 90px;  animation-delay: 0s; transform: rotate(-15deg); }
.flower.f2 { top: 22%;  left: 2%;   width: 70px;  animation-delay: 1.2s; transform: rotate(20deg); }
.flower.f3 { top: 55%;  left: 0.5%; width: 80px;  animation-delay: 2.4s; transform: rotate(-25deg); }
.flower.f4 { bottom: 6%; left: 3%;  width: 95px;  animation-delay: 0.8s; transform: rotate(10deg); }
.flower.f5 { top: 8%;   right: 2%;  width: 85px;  animation-delay: 1.8s; transform: rotate(15deg); }
.flower.f6 { top: 35%;  right: 1%;  width: 70px;  animation-delay: 2.6s; transform: rotate(-20deg); }
.flower.f7 { top: 68%;  right: 3%;  width: 80px;  animation-delay: 0.4s; transform: rotate(25deg); }
.flower.f8 { bottom: 4%; right: 1%; width: 100px; animation-delay: 1.5s; transform: rotate(-12deg); }

@keyframes sway {
    0%, 100% { transform: rotate(var(--rot, 0deg)) translateY(0); }
    50%      { transform: rotate(calc(var(--rot, 0deg) + 4deg)) translateY(-4px); }
}

@media (max-width: 768px) {
    .flower.f2, .flower.f3, .flower.f6, .flower.f7 { display: none; }
    .flower { width: 60px !important; }
}

/* ---------- Contenuto sopra ai fiori ---------- */
.container, main, .page { position: relative; z-index: 1; }

.wedding-main {
    width: 100%;
    min-height: 100vh;
    padding: 0;
}
.wedding-main .content {
    padding: 1rem;
}
