/* ============================================================
   PRESTIGE ENHANCEMENTS (About / Documents / Contact / Nav / Popup)
   ============================================================ */

/* ---------- Reveal on scroll ---------- */
.reveal { opacity:0; transform:translateY(24px); transition:opacity .8s ease, transform .8s ease; }
.reveal.is-visible { opacity:1; transform:none; }
.reveal.delay-1 { transition-delay:.1s; }
.reveal.delay-2 { transition-delay:.22s; }
.reveal.delay-3 { transition-delay:.34s; }

/* ---------- Nav active state + icons ---------- */
.nav-premium .nav-link {
    position:relative;
    display:inline-flex; align-items:center; gap:.4rem;
    font-weight:600;
    padding:.55rem .9rem !important;
    color:var(--c-gray-800, #1f2937);
    transition:color .2s ease;
}
.nav-premium .nav-link i { font-size:1.05rem; opacity:.75; }
.nav-premium .nav-link:hover { color:#0f5132; }
.nav-premium .nav-link:hover i { opacity:1; }
.nav-premium .nav-link.active {
    color:#0f5132;
}
.nav-premium .nav-link.active i { opacity:1; color:#c9a227; }
.nav-premium .nav-link.active::after {
    content:"";
    position:absolute; left:.9rem; right:.9rem; bottom:.15rem; height:3px;
    background:linear-gradient(90deg, #c9a227, #f6d365);
    border-radius:3px;
    animation:navGrow .35s ease;
}
@keyframes navGrow { from { transform:scaleX(0); } to { transform:scaleX(1); } }

/* ---------- About page ---------- */
.about-section { background:linear-gradient(180deg,#ffffff 0%,#faf7ee 100%); }
.about-kicker {
    display:inline-flex; align-items:center; gap:.5rem;
    background:#fff6d6; color:#7a5b00;
    border:1px solid #f0d97a;
    padding:.35rem .8rem; border-radius:999px;
    font-size:.75rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase;
    margin-bottom:1rem;
}
.about-lead-text {
    font-family:'Playfair Display', Georgia, serif;
    font-size:1.6rem; line-height:1.4; color:#0f5132; font-weight:600;
}
.about-body p { color:#374151; line-height:1.75; font-size:1.02rem; }
.about-h {
    font-family:'Playfair Display', Georgia, serif;
    margin-top:2.5rem; margin-bottom:1rem; color:#111; font-weight:700;
}

.pillar-grid {
    display:grid; grid-template-columns:repeat(2,1fr); gap:1rem;
    margin:1.5rem 0 2rem;
}
.pillar-card {
    background:#fff; border:1px solid #eee; border-radius:16px;
    padding:1.25rem; box-shadow:0 6px 20px rgba(0,0,0,.04);
    transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.pillar-card:hover { transform:translateY(-4px); box-shadow:0 14px 30px rgba(0,0,0,.08); border-color:#f0d97a; }
.pillar-icon {
    width:48px; height:48px; border-radius:12px;
    display:flex; align-items:center; justify-content:center;
    background:linear-gradient(135deg,#fff6d6,#f6d365); color:#7a5b00;
    font-size:1.5rem; margin-bottom:.75rem;
}
.pillar-card h5 { font-weight:700; color:#0f5132; margin-bottom:.35rem; }
.pillar-card p { color:#4b5563; font-size:.92rem; margin:0; }

.theme-list { display:flex; flex-wrap:wrap; gap:.6rem; margin-top:.75rem; }
.theme-chip {
    display:inline-flex; align-items:center; gap:.5rem;
    padding:.55rem .9rem; border-radius:999px;
    background:#fff; border:1px solid #e5e7eb;
    color:#1f2937; font-weight:500;
    box-shadow:0 2px 6px rgba(0,0,0,.03);
    transition:all .2s ease;
}
.theme-chip i { color:#c9a227; }
.theme-chip:hover { background:#0f5132; color:#fff; border-color:#0f5132; }
.theme-chip:hover i { color:#f6d365; }

.glance-card {
    background:#fff; border-radius:20px; padding:1.5rem;
    border:1px solid #eee;
    box-shadow:0 12px 40px rgba(0,0,0,.06);
    position:sticky; top:100px;
}
.glance-head { display:flex; align-items:center; gap:.6rem; margin-bottom:.5rem; }
.glance-head i { font-size:1.5rem; color:#c9a227; }
.glance-head h5 { margin:0; color:#0f5132; font-family:'Playfair Display', Georgia, serif; font-weight:700; }
.glance-list { list-style:none; padding:0; margin:1rem 0 0; }
.glance-list li {
    display:flex; align-items:center; gap:.75rem;
    padding:.65rem 0; border-bottom:1px dashed #eee;
}
.glance-list li:last-child { border-bottom:0; }
.glance-list li i { font-size:1.15rem; color:#c9a227; width:24px; text-align:center; }
.glance-k { display:block; font-size:.72rem; text-transform:uppercase; letter-spacing:.08em; color:#6b7280; font-weight:700; }
.glance-v { display:block; color:#111; font-weight:600; }

@media (max-width: 767px) {
    .pillar-grid { grid-template-columns:1fr; }
    .glance-card { position:static; }
}

/* ---------- Documents prestige cards ---------- */
.docs-section { background:linear-gradient(180deg,#fff 0%,#faf7ee 100%); }
.docs-grid {
    display:grid; grid-template-columns:repeat(auto-fit,minmax(340px,1fr));
    gap:1.75rem;
}
.doc-prestige-card {
    position:relative;
    background:#fff; border-radius:22px; overflow:hidden;
    border:1px solid #eee;
    box-shadow:0 10px 30px rgba(0,0,0,.06);
    transition:transform .3s ease, box-shadow .3s ease;
    display:flex; flex-direction:column;
}
.doc-prestige-card:hover { transform:translateY(-6px); box-shadow:0 22px 50px rgba(0,0,0,.12); }
.doc-prestige-card::before {
    content:""; position:absolute; inset:0 0 auto 0; height:6px;
    background:linear-gradient(90deg,#c9a227,#f6d365,#c9a227); background-size:200% 100%;
    animation:goldShift 6s linear infinite;
}
@keyframes goldShift { from { background-position:0 0; } to { background-position:200% 0; } }
.doc-accent-green::before { background:linear-gradient(90deg,#0f5132,#2b8a5a,#0f5132); background-size:200% 100%; }

.doc-ribbon {
    display:inline-flex; align-items:center; gap:.45rem;
    position:absolute; top:1rem; left:1rem;
    background:rgba(255,255,255,.95); backdrop-filter:blur(4px);
    border:1px solid #f0d97a; color:#7a5b00;
    padding:.35rem .75rem; border-radius:999px;
    font-size:.72rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase;
    z-index:2;
}
.doc-accent-green .doc-ribbon { border-color:#a7d3b8; color:#0f5132; }

.doc-hero-preview {
    position:relative; height:260px; overflow:hidden;
    background:linear-gradient(135deg,#faf7ee,#f4ecd0);
    display:flex; align-items:center; justify-content:center;
}
.doc-hero-preview img {
    width:100%; height:100%; object-fit:cover; cursor:zoom-in;
    transition:transform .5s ease;
}
.doc-prestige-card:hover .doc-hero-preview img { transform:scale(1.06); }
.doc-hero-fallback i { font-size:6rem; color:#c9a227; opacity:.85; }
.doc-accent-green .doc-hero-fallback i { color:#0f5132; }
.doc-hero-overlay {
    position:absolute; inset:0; display:flex; align-items:flex-end; justify-content:flex-end;
    padding:1rem;
    background:linear-gradient(180deg, transparent 60%, rgba(0,0,0,.35));
    opacity:0; transition:opacity .3s ease;
}
.doc-prestige-card:hover .doc-hero-overlay { opacity:1; }
.doc-hero-overlay span {
    background:rgba(255,255,255,.95); color:#111;
    padding:.35rem .8rem; border-radius:999px; font-weight:600; font-size:.85rem;
    display:inline-flex; align-items:center; gap:.35rem;
}

.doc-body { padding:1.5rem; display:flex; flex-direction:column; gap:.75rem; flex:1; }
.doc-title {
    font-family:'Playfair Display', Georgia, serif;
    font-size:1.5rem; font-weight:700; color:#111; margin:0;
}
.doc-desc { color:#4b5563; font-size:.95rem; line-height:1.6; margin:0; }
.doc-meta { list-style:none; padding:0; margin:.25rem 0 0; display:flex; flex-wrap:wrap; gap:.75rem; }
.doc-meta li {
    display:inline-flex; align-items:center; gap:.3rem;
    font-size:.78rem; color:#6b7280; font-weight:600;
    background:#f9fafb; border:1px solid #eee;
    padding:.25rem .6rem; border-radius:999px;
}
.doc-meta li i { color:#c9a227; }
.doc-actions { display:flex; gap:.6rem; flex-wrap:wrap; margin-top:auto; padding-top:.75rem; }
.doc-actions .btn { flex:1 1 auto; }

.docs-note {
    margin-top:2rem; padding:1rem 1.25rem;
    background:#fff; border:1px dashed #f0d97a; border-radius:14px;
    display:flex; gap:.75rem; align-items:flex-start;
    color:#374151;
}
.docs-note i { color:#c9a227; font-size:1.4rem; margin-top:.15rem; }

/* ---------- Contact page ---------- */
.contact-section { background:linear-gradient(180deg,#fff 0%,#faf7ee 100%); }
.contact-info-card {
    background:linear-gradient(160deg,#0f5132 0%,#0a3d24 100%);
    color:#fff; border-radius:22px; padding:2rem;
    box-shadow:0 20px 50px rgba(15,81,50,.25);
    height:100%; position:relative; overflow:hidden;
}
.contact-info-card::before {
    content:""; position:absolute; top:-60px; right:-60px;
    width:220px; height:220px; border-radius:50%;
    background:radial-gradient(circle,#f6d365 0%, transparent 70%);
    opacity:.18;
}
.contact-info-head { display:flex; align-items:center; gap:1rem; }
.contact-info-head i { font-size:2.5rem; color:#f6d365; }
.contact-info-head h3 { font-family:'Playfair Display', Georgia, serif; margin:0; color:#fff; }
.contact-info-head p { color:rgba(255,255,255,.8); }
.contact-info-card .divider-gold { margin:1rem 0 1.25rem; }

.contact-line {
    display:flex; align-items:center; gap:.85rem;
    color:#fff; text-decoration:none;
    padding:.65rem 0; border-bottom:1px solid rgba(255,255,255,.08);
    transition:transform .2s ease;
}
.contact-line:last-of-type { border-bottom:0; }
.contact-line:hover { color:#f6d365; transform:translateX(3px); }
.contact-ic {
    width:42px; height:42px; border-radius:12px;
    background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.12);
    display:flex; align-items:center; justify-content:center;
    color:#f6d365; font-size:1.15rem; flex-shrink:0;
}
.contact-line small { display:block; font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; color:rgba(255,255,255,.65); }
.contact-line strong { color:#fff; font-weight:600; }

.contact-socials { display:flex; gap:.6rem; margin-top:1.5rem; }
.contact-socials a {
    width:40px; height:40px; border-radius:50%;
    background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.15);
    display:flex; align-items:center; justify-content:center;
    color:#fff; text-decoration:none; transition:all .2s ease;
}
.contact-socials a:hover { background:#f6d365; color:#0f5132; border-color:#f6d365; transform:translateY(-2px); }

.contact-form-card {
    background:#fff; border-radius:22px; padding:2rem;
    border:1px solid #eee;
    box-shadow:0 12px 40px rgba(0,0,0,.06);
    height:100%;
}
.contact-kicker {
    display:inline-flex; align-items:center; gap:.4rem;
    background:#fff6d6; color:#7a5b00; border:1px solid #f0d97a;
    padding:.3rem .75rem; border-radius:999px;
    font-size:.72rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase;
    margin-bottom:.5rem;
}
.contact-form-head h3 { font-family:'Playfair Display', Georgia, serif; color:#0f5132; margin:0 0 1.25rem; }
.contact-form .form-label { font-weight:600; color:#374151; display:inline-flex; align-items:center; gap:.35rem; }
.contact-form .form-label i { color:#c9a227; }
.contact-form .form-control {
    border:1.5px solid #e5e7eb; border-radius:12px; padding:.75rem 1rem;
    transition:all .2s ease;
}
.contact-form .form-control:focus { border-color:#c9a227; box-shadow:0 0 0 4px rgba(201,162,39,.15); }

/* ---------- Popup facts ---------- */
.invite-facts {
    list-style:none; padding:0; margin:1rem 0 0;
    display:flex; flex-wrap:wrap; justify-content:center; gap:.5rem;
}
.invite-facts li {
    display:inline-flex; align-items:center; gap:.35rem;
    padding:.3rem .75rem; border-radius:999px;
    background:#faf7ee; border:1px solid #f0d97a;
    font-size:.8rem; color:#7a5b00; font-weight:600;
}
.invite-facts li i { color:#c9a227; }
.invite-eyebrow { display:inline-flex; align-items:center; gap:.4rem; }
.invite-eyebrow i { color:#c9a227; }

/* ---------- Registration two-column layout ---------- */
.registration-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 380px;
    gap: 2rem;
    align-items: start;
    max-width: 1400px;
    margin: 0 auto;
}
.registration-grid > .sticky-summary { position: sticky; top: 100px; }
@@media (max-width: 991px) {
    .registration-grid { grid-template-columns: 1fr; }
    .registration-grid > .sticky-summary { position: static; }
}

/* ---------- Event summary sidebar (dark gradient, white text) ---------- */
.event-summary-card {
    background: linear-gradient(160deg, #0f5132 0%, #0a3d24 100%);
    color: #fff;
    border-radius: 20px;
    padding: 1.75rem;
    box-shadow: 0 18px 40px rgba(15,81,50,.25);
    position: relative;
    overflow: hidden;
}
.event-summary-card::before {
    content: ""; position: absolute; top: -60px; right: -60px;
    width: 200px; height: 200px; border-radius: 50%;
    background: radial-gradient(circle, #f6d365 0%, transparent 70%);
    opacity: .18; pointer-events: none;
}
.event-summary-card * { color: inherit; }
.event-summary-header { display: flex; align-items: center; gap: .8rem; margin-bottom: .75rem; position:relative; }
.event-summary-icon {
    width: 46px; height: 46px; border-radius: 12px;
    background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.15);
    display: flex; align-items: center; justify-content: center;
    color: #f6d365 !important; font-size: 1.4rem;
}
.event-summary-eyebrow {
    font-size: .72rem; letter-spacing: .1em; text-transform: uppercase;
    color: #f6d365 !important; font-weight: 800;
}
.event-summary-title {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 1.5rem; font-weight: 700; margin: 0; color: #fff !important;
}
.event-summary-name { color: #fff !important; font-weight: 600; margin-bottom: .5rem; }
.event-summary-card .divider-gold {
    height: 3px; width: 60px;
    background: linear-gradient(90deg,#f6d365,#c9a227);
    border-radius: 3px; margin: .5rem 0 1rem;
}
.event-summary-meta, .event-summary-block ul {
    list-style: none; padding: 0; margin: 0;
}
.event-summary-meta li, .event-summary-block li {
    display: flex; align-items: center; gap: .6rem;
    padding: .55rem 0; border-bottom: 1px dashed rgba(255,255,255,.14);
    color: rgba(255,255,255,.92) !important;
}
.event-summary-meta li:last-child, .event-summary-block li:last-child { border-bottom: 0; }
.event-summary-meta li i, .event-summary-block li i {
    color: #f6d365 !important; font-size: 1.1rem; width: 22px; text-align: center;
}
.event-summary-block { margin-top: 1rem; }
.event-summary-block h5, .event-summary-block-title {
    color: #fff !important; font-weight: 700; font-size: .9rem;
    text-transform: uppercase; letter-spacing: .06em;
    margin: 1rem 0 .5rem;
    display: flex; align-items: center; gap: .5rem;
}
.event-summary-block h5::before, .event-summary-block-title::before {
    content: ""; width: 8px; height: 8px; border-radius: 50%; background: #f6d365; display:inline-block;
}
.event-summary-price {
    margin-top: 1.25rem; padding-top: 1rem;
    border-top: 1px solid rgba(255,255,255,.15);
}
.event-summary-price .price-amount, .price-amount {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 2.25rem; font-weight: 800; color: #f6d365 !important;
    line-height: 1;
}
.event-summary-price .price-caption, .price-caption {
    color: rgba(255,255,255,.75) !important; font-size: .8rem; margin-top: .25rem;
}

/* ============================================================
   REGISTRATION FORM — PROFESSIONAL POLISH
   ============================================================ */

/* Show only the active step page */
.reg-form .reg-page { display: none; }
.reg-form .reg-page.is-active { display: block; animation: regFade .35s ease; }
@@keyframes regFade { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

/* Progress bar */
.reg-progress {
    position: relative;
    padding: 1.25rem 0 2rem;
    margin-bottom: 2rem;
    border-bottom: 1px solid #eee;
}
.reg-progress-bar {
    position: absolute; left: 6%; right: 6%; top: calc(1.25rem + 22px);
    height: 4px; background: #eee; border-radius: 4px; z-index: 0;
}
.reg-progress-fill {
    height: 100%; width: 0%;
    background: linear-gradient(90deg, #c9a227, #f6d365);
    border-radius: 4px; transition: width .4s ease;
}
.reg-steps {
    position: relative; z-index: 1;
    display: grid; grid-template-columns: repeat(4, 1fr);
    gap: .5rem;
}
.reg-step {
    display: flex; flex-direction: column; align-items: center; gap: .5rem;
    text-align: center;
}
.reg-step-circle {
    width: 46px; height: 46px; border-radius: 50%;
    background: #fff; border: 2px solid #e5e7eb; color: #9ca3af;
    display: flex; align-items: center; justify-content: center;
    font-size: 1.15rem; transition: all .3s ease;
    box-shadow: 0 2px 6px rgba(0,0,0,.05);
}
.reg-step-label {
    font-size: .78rem; font-weight: 700; color: #6b7280;
    letter-spacing: .04em; text-transform: uppercase;
    transition: color .3s ease;
}
.reg-step.is-active .reg-step-circle {
    background: linear-gradient(135deg, #c9a227, #f6d365);
    border-color: #c9a227; color: #fff;
    box-shadow: 0 6px 16px rgba(201,162,39,.35);
    transform: scale(1.06);
}
.reg-step.is-active .reg-step-label { color: #0f5132; }
.reg-step.is-complete .reg-step-circle {
    background: #0f5132; border-color: #0f5132; color: #f6d365;
}
.reg-step.is-complete .reg-step-label { color: #0f5132; }

/* Section headings inside the form */
.reg-page-title {
    display: flex; align-items: center; gap: .6rem;
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 1.4rem; font-weight: 700; color: #0f5132;
    margin-bottom: 1.25rem; padding-bottom: .75rem;
    border-bottom: 2px solid #faf7ee;
}
.reg-page-title i { color: #c9a227; font-size: 1.6rem; }

/* Grid for form fields */
.form-grid-2 {
    display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.1rem 1.25rem;
}
.form-grid-2 > .full { grid-column: 1 / -1; }
@@media (max-width: 640px) {
    .form-grid-2 { grid-template-columns: 1fr; }
}

/* Labels & inputs */
.label-premium {
    display: inline-flex; align-items: center; gap: .4rem;
    font-size: .82rem; font-weight: 700; color: #374151;
    margin-bottom: .4rem; letter-spacing: .02em;
}
.label-premium i { color: #c9a227; font-size: 1rem; }
.input-premium, .select-premium, .reg-form textarea {
    width: 100%;
    padding: .75rem 1rem;
    border: 1.5px solid #e5e7eb;
    border-radius: 12px;
    background: #fff;
    font-size: .95rem; color: #111827;
    transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
    font-family: inherit;
}
.input-premium:focus, .select-premium:focus, .reg-form textarea:focus {
    outline: none;
    border-color: #c9a227;
    box-shadow: 0 0 0 4px rgba(201,162,39,.15);
    background: #fffdf7;
}
.input-premium::placeholder, .reg-form textarea::placeholder { color: #9ca3af; }

/* Nav buttons */
.reg-nav {
    display: flex; justify-content: space-between; align-items: center;
    gap: 1rem; margin-top: 2rem; padding-top: 1.5rem;
    border-top: 1px solid #eee;
}
.reg-nav .btn { min-width: 130px; }

/* Ticket cards */
.ticket-grid {
    display: grid; grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
}
@@media (max-width: 900px) { .ticket-grid { grid-template-columns: 1fr; } }
.ticket-card {
    position: relative; cursor: pointer;
    border: 2px solid #e5e7eb; border-radius: 16px;
    padding: 1.25rem; background: #fff;
    transition: all .25s ease;
}
.ticket-card:hover { border-color: #f0d97a; transform: translateY(-3px); box-shadow: 0 12px 30px rgba(0,0,0,.08); }
.ticket-card input[type=radio] { position: absolute; opacity: 0; pointer-events: none; }
.ticket-card.is-selected {
    border-color: #c9a227;
    background: linear-gradient(160deg, #fffdf5 0%, #fff 100%);
    box-shadow: 0 12px 30px rgba(201,162,39,.18);
}
.ticket-card .ticket-badge {
    position: absolute; top: -10px; right: 12px;
    background: linear-gradient(135deg,#c9a227,#f6d365);
    color: #111; font-size: .68rem; font-weight: 800;
    letter-spacing: .08em; text-transform: uppercase;
    padding: .25rem .6rem; border-radius: 999px;
}
.ticket-name { font-family: 'Playfair Display', Georgia, serif; font-size: 1.25rem; font-weight: 700; color: #0f5132; margin: 0; }
.ticket-price { font-size: 1.6rem; font-weight: 800; color: #111; margin: .35rem 0; }
.ticket-perks { list-style: none; padding: 0; margin: .5rem 0 0; font-size: .88rem; color: #4b5563; }
.ticket-perks li { display: flex; align-items: center; gap: .4rem; padding: .2rem 0; }
.ticket-perks li i { color: #0f5132; }

/* Confirm summary */
.confirm-summary {
    background: #faf7ee; border: 1px solid #f0d97a;
    border-radius: 14px; padding: 1.25rem;
    display: grid; grid-template-columns: repeat(2, 1fr); gap: .75rem 1.5rem;
}
@@media (max-width: 640px) { .confirm-summary { grid-template-columns: 1fr; } }
.confirm-summary .cs-item small {
    display: block; text-transform: uppercase; letter-spacing: .08em;
    font-size: .68rem; color: #7a5b00; font-weight: 800; margin-bottom: .15rem;
}
.confirm-summary .cs-item strong { color: #111; }

.consent-box {
    margin-top: 1.25rem; padding: 1rem 1.25rem;
    background: #fff; border: 1px dashed #e5e7eb; border-radius: 12px;
    display: flex; flex-direction: column; gap: .5rem;
}
.consent-box label { display: flex; align-items: flex-start; gap: .5rem; font-size: .9rem; color: #374151; cursor: pointer; }
.consent-box a { color: #0f5132; font-weight: 600; text-decoration: underline; }

/* Card container polish */
.registration-grid .card-premium {
    background: #fff;
    border: 1px solid #eee;
    border-radius: 22px;
    box-shadow: 0 12px 40px rgba(0,0,0,.06);
    padding: 2rem !important;
}
@@media (max-width: 640px) {
    .registration-grid .card-premium { padding: 1.25rem !important; }
    .reg-progress-bar { top: calc(1.25rem + 18px); }
    .reg-step-circle { width: 38px; height: 38px; font-size: .95rem; }
    .reg-step-label { font-size: .7rem; }
}
