/* =====================================================
   TEMPLATE 1 — ROMANTIC CLASSIC  |  Video Edition
   Wax-seal overlay  →  cinematic video  →  content
   ===================================================== */

/* ── Custom Cursor (desktop only) ── */
@media (hover: hover) and (pointer: fine) { body { cursor: none; } }

.wi-cursor-outer {
    position: fixed;
    width: 38px; height: 38px;
    border: 1.5px solid rgba(201,169,110,0.75);
    border-radius: 50%;
    pointer-events: none;
    z-index: 99999;
    left: -200px; top: -200px;
    transform: translate(-50%,-50%);
    transition: width .28s ease, height .28s ease, border-color .28s ease;
}
.wi-cursor-outer.wi-cursor-hover { width: 70px; height: 70px; border-color: rgba(201,169,110,0.35); }
.wi-cursor-dot {
    position: fixed;
    width: 5px; height: 5px;
    background: #c9a96e;
    border-radius: 50%;
    pointer-events: none;
    z-index: 100000;
    left: -200px; top: -200px;
    transform: translate(-50%,-50%);
}
@media (hover: none) { .wi-cursor-outer, .wi-cursor-dot { display: none; } }

/* ── Flash overlay ── */
#wi-flash {
    position: fixed;
    inset: 0;
    background: #faf7f2;
    opacity: 0;
    pointer-events: none;
    z-index: 500;
}

/* ── Hero container ── */
.wi-hero {
    position: fixed;
    inset: 0;
    z-index: 100;
    background: #07070e;
    overflow: hidden;
}

/* ── Pre-video overlay ── */
.wi-hero-overlay {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 2;
}

/* ── CSS Particles ── */
#wi-particles-container {
    position: absolute;
    inset: 0;
    pointer-events: none;
    overflow: hidden;
}

.wi-particle {
    position: absolute;
    border-radius: 50%;
    animation: wi-particle-rise linear infinite;
}

@keyframes wi-particle-rise {
    0%   { transform: translateY(0) translateX(0) scale(1); opacity: 0; }
    8%   { opacity: 1; }
    92%  { opacity: 0.4; }
    100% { transform: translateY(-105vh) translateX(20px) scale(0.4); opacity: 0; }
}

/* ── Wax seal wrapper ── */
.wi-seal-wrapper {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 22px;
    position: relative;
    z-index: 3;
    cursor: pointer;
    outline: none;
    -webkit-tap-highlight-color: transparent;
}

/* Ripple rings that expand outward */
.wi-seal-ripple {
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%);
    border-radius: 50%;
    border: 1px solid rgba(201,169,110,0.5);
    width: 120px; height: 120px;
    animation: wi-ripple-out 3s ease-out infinite;
    pointer-events: none;
    margin-top: -22px;
}
.wi-seal-ripple:nth-child(2) { animation-delay: 1s; }
.wi-seal-ripple:nth-child(3) { animation-delay: 2s; }

@keyframes wi-ripple-out {
    0%   { width: 120px; height: 120px; opacity: 0.7; }
    100% { width: 260px; height: 260px; opacity: 0; }
}

/* ── Seal face ── */
.wi-seal-btn {
    width: 110px; height: 110px;
    border-radius: 50%;
    background: radial-gradient(circle at 35% 30%, #e0b55a, #c9a96e 45%, #8b6b1f 78%, #5c420a);
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    box-shadow:
        0 0 0 1px rgba(201,169,110,0.3),
        0 0 35px rgba(201,169,110,0.35),
        0 20px 60px rgba(0,0,0,0.5),
        inset 0 2px 6px rgba(255,255,255,0.22),
        inset 0 -2px 6px rgba(0,0,0,0.35);
    transition: transform 0.35s ease, box-shadow 0.35s ease;
}

.wi-seal-wrapper:hover .wi-seal-btn {
    transform: scale(1.06);
    box-shadow:
        0 0 0 1px rgba(201,169,110,0.5),
        0 0 55px rgba(201,169,110,0.55),
        0 20px 70px rgba(0,0,0,0.5),
        inset 0 2px 6px rgba(255,255,255,0.22),
        inset 0 -2px 6px rgba(0,0,0,0.35);
}

/* Embossed inner ring */
.wi-seal-btn::before {
    content: '';
    position: absolute;
    inset: 8px;
    border-radius: 50%;
    border: 1px solid rgba(255,255,255,0.18);
}
.wi-seal-btn::after {
    content: '';
    position: absolute;
    inset: 13px;
    border-radius: 50%;
    border: 0.5px solid rgba(255,255,255,0.1);
}

/* Symbol */
.wi-seal-symbol {
    color: rgba(255,255,255,0.88);
    font-size: 30px;
    line-height: 1;
    text-shadow: 0 1px 4px rgba(0,0,0,0.5);
    position: relative;
    z-index: 1;
}

/* "Tap to Open" text */
.wi-seal-hint {
    font-family: var(--wi-font-body);
    font-size: 0.6rem;
    letter-spacing: 0.48em;
    text-transform: uppercase;
    color: rgba(201,169,110,0.55);
    margin: 0;
    animation: wi-hint-pulse 3s ease-in-out infinite;
}

@keyframes wi-hint-pulse {
    0%,100% { opacity: 0.55; }
    50%      { opacity: 0.9; }
}

/* ── Video element ── */
#wi-hero-video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0;
    pointer-events: none;
    z-index: 1;
}

/* ── Skip button ── */
.wi-video-skip {
    position: absolute;
    bottom: 32px; right: 32px;
    background: rgba(255,255,255,0.08);
    border: 1px solid rgba(255,255,255,0.18);
    color: rgba(255,255,255,0.5);
    font-family: var(--wi-font-body);
    font-size: 0.6rem;
    letter-spacing: 0.32em;
    text-transform: uppercase;
    padding: 10px 22px;
    cursor: pointer;
    opacity: 0;
    transition: opacity 0.4s, background 0.3s, color 0.3s;
    z-index: 5;
    pointer-events: none;
    border-radius: 0;
}
.wi-video-skip.visible { opacity: 1; pointer-events: auto; }
.wi-video-skip:hover { background: rgba(255,255,255,0.14); color: #fff; }

/* ── Page content ── */
.wi-page-content {
    position: relative;
    z-index: 10;
    opacity: 0;
    background: var(--wi-bg);
}
.wi-page-content.visible { opacity: 1; }

/* ── Section light text variants (for dark sections) ── */
.wi-section-label.wi-light { color: rgba(201,169,110,0.8); }
.wi-section-title.wi-light { color: #f0ebe4; }
.wi-section-body.wi-light  { color: rgba(240,235,228,0.6); }
.wi-divider.wi-divider-light::before,
.wi-divider.wi-divider-light::after { background: rgba(201,169,110,0.35); }
.wi-divider.wi-divider-light .wi-divider-icon { color: rgba(201,169,110,0.7); }

/* ── Story ── */
.wi-story-section { background: var(--wi-bg); }

.wi-story-img-wrap {
    overflow: hidden;
    border-radius: 2px;
}
.wi-story-photo {
    width: 100%; height: 100%;
    object-fit: cover; display: block;
    transition: transform 0.8s ease;
}
.wi-story-img-wrap:hover .wi-story-photo { transform: scale(1.04); }

@media (min-width: 768px) {
    .wi-story-inner {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 60px;
        align-items: center;
        text-align: left;
    }
    .wi-story-img-wrap { height: 420px; }
}
@media (max-width: 767px) {
    .wi-story-img-wrap { height: 280px; margin-bottom: 28px; }
}

/* ── Details — premium cards ── */
.wi-details-section { background: var(--wi-accent); }

.wi-details-card {
    background: var(--wi-bg);
    padding: 40px 32px;
    border-radius: 2px;
    border-bottom: 2px solid rgba(201,169,110,0.3);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.wi-details-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 20px 60px rgba(0,0,0,0.08);
}

/* ── Countdown — dark luxury ── */
.wi-countdown-section { background: #08080f; }

.wi-countdown-num {
    font-size: clamp(3rem, 9vw, 6rem);
    color: #c9a96e;
    text-shadow: 0 0 40px rgba(201,169,110,0.3);
}
.wi-countdown-label { color: rgba(201,169,110,0.45); letter-spacing: 0.25em; }

/* ── Gallery — horizontal cinematic strip ── */
.wi-gallery-section { background: #f5ede8; padding-bottom: 0; }
.wi-gallery-section .wi-section-inner { margin-bottom: 40px; }

.wi-gallery-strip {
    display: flex;
    gap: 6px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    cursor: grab;
    padding: 0 0 48px;
}
.wi-gallery-strip::-webkit-scrollbar { display: none; }
.wi-gallery-strip:active { cursor: grabbing; }

.wi-gallery-item {
    flex: 0 0 clamp(220px, 30vw, 380px);
    height: clamp(280px, 40vw, 500px);
    scroll-snap-align: start;
    overflow: hidden;
    border-radius: 2px;
}
.wi-gallery-item:first-child { margin-left: clamp(16px, 5vw, 60px); }
.wi-gallery-item:last-child  { margin-right: clamp(16px, 5vw, 60px); }
.wi-gallery-item img {
    width: 100%; height: 100%;
    object-fit: cover; display: block;
    transition: transform 0.6s ease;
}
.wi-gallery-item:hover img { transform: scale(1.05); }

/* ── RSVP — dark luxury ── */
.wi-rsvp-section { background: #0d0b14; }

.wi-rsvp-section .wi-rsvp-form input,
.wi-rsvp-section .wi-rsvp-form select,
.wi-rsvp-section .wi-rsvp-form textarea {
    border-color: rgba(201,169,110,0.25);
    background: rgba(255,255,255,0.04);
    color: #e8ddd5;
}
.wi-rsvp-section .wi-rsvp-form input::placeholder,
.wi-rsvp-section .wi-rsvp-form textarea::placeholder { color: rgba(232,221,213,0.35); }
.wi-rsvp-section .wi-rsvp-form select option { background: #1a1625; }
.wi-rsvp-section .wi-rsvp-form input:focus,
.wi-rsvp-section .wi-rsvp-form select:focus,
.wi-rsvp-section .wi-rsvp-form textarea:focus { border-color: rgba(201,169,110,0.6); }
.wi-rsvp-section .wi-rsvp-msg { color: rgba(201,169,110,0.8); }

/* ── Footer extra ── */
.wi-footer-made {
    font-family: var(--wi-font-body);
    font-size: 0.7rem;
    letter-spacing: 0.2em;
    color: rgba(255,255,255,0.2);
    margin-top: 12px;
}
