/* ==========================================================================
   Luxor Subscribers — frontend styles
   - Popup: small, bottom-right, Bubz-style
   - Inline form: separate scope; popup uses luxor-popup-form so styles don't bleed
   ========================================================================== */

:root {
    --luxor-gold:       #b8893a;
    --luxor-gold-soft:  #d4af5c;
    --luxor-ink:        #0a0a0a;
    --luxor-ink-2:      #141414;
    --luxor-ink-3:      #1a1a1a;
    --luxor-cream:      #f5f3ee;
    --luxor-muted:      #a8a29a;
    --luxor-line:       rgba(184, 137, 58, 0.25);
}

/* ==========================================================================
   INLINE FORM — only when used via shortcode or widget on a page
   Scoped tightly so it never leaks into the popup.
   ========================================================================== */
.luxor-subs-form:not(.luxor-popup-form) {
    background: #fff;
    border: 1px solid var(--luxor-line);
    border-radius: 4px;
    padding: 20px 18px;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
    color: #1a1410;
    max-width: 380px;
    box-sizing: border-box;
    position: relative;
}
.luxor-subs-form:not(.luxor-popup-form) *,
.luxor-subs-form:not(.luxor-popup-form) *::before,
.luxor-subs-form:not(.luxor-popup-form) *::after { box-sizing: border-box; }

.luxor-subs-form:not(.luxor-popup-form) .luxor-brand {
    display: inline-block;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 3px;
    color: var(--luxor-gold);
    margin-bottom: 8px;
    text-transform: uppercase;
}
.luxor-subs-form:not(.luxor-popup-form) .luxor-headline {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 18px;
    line-height: 1.2;
    margin: 0 0 6px;
    font-weight: 400;
    color: #1a1410;
}
.luxor-subs-form:not(.luxor-popup-form) .luxor-subhead {
    font-size: 12px;
    line-height: 1.45;
    color: #6a6258;
    margin: 0 0 12px;
}
.luxor-subs-form:not(.luxor-popup-form) input[type="email"] {
    width: 100%;
    padding: 10px 12px;
    font-size: 13px;
    background: #faf6ef;
    border: 1px solid var(--luxor-line);
    border-radius: 2px;
    color: #1a1410;
    font-family: inherit;
    margin-bottom: 8px;
}
.luxor-subs-form:not(.luxor-popup-form) input[type="email"]:focus {
    outline: none;
    border-color: var(--luxor-gold);
    background: #fff;
}
.luxor-subs-form:not(.luxor-popup-form) button[type="submit"] {
    width: 100%;
    padding: 10px 16px;
    background: var(--luxor-gold);
    color: #0a0a0a;
    border: 1px solid var(--luxor-gold);
    border-radius: 2px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
    cursor: pointer;
    font-family: inherit;
    transition: background .2s, color .2s;
}
.luxor-subs-form:not(.luxor-popup-form) button[type="submit"]:hover {
    background: transparent;
    color: var(--luxor-gold);
}
.luxor-subs-form:not(.luxor-popup-form) .luxor-msg {
    margin-top: 10px;
    font-size: 11px;
    text-align: center;
    min-height: 1.2em;
    color: #6a6258;
}
.luxor-subs-form:not(.luxor-popup-form) .luxor-msg.ok    { color: #2c7a4d; }
.luxor-subs-form:not(.luxor-popup-form) .luxor-msg.error { color: #b03a3a; }

/* Compact inline */
.luxor-subs-compact .luxor-row { display: flex; gap: 6px; }
.luxor-subs-compact input[type="email"] { margin-bottom: 0 !important; flex: 1; }
.luxor-subs-compact button[type="submit"] { width: auto !important; white-space: nowrap; }

/* ==========================================================================
   POPUP — small, bottom-right, slides up
   ========================================================================== */
.luxor-popup {
    position: fixed;
    bottom: 90px;
    left: 20px;
    width: 300px;
    max-width: calc(100vw - 24px);
    background: var(--luxor-ink);
    color: var(--luxor-cream);
    border: 1px solid rgba(212, 175, 55, .35);
    border-radius: 4px;
    padding: 18px 18px 16px;
    box-shadow: 0 12px 32px rgba(0,0,0,.45);
    z-index: 9998;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
    box-sizing: border-box;
    transform: translateY(120%);
    opacity: 0;
    visibility: hidden;
    transition: transform .4s cubic-bezier(.16, 1, .3, 1), opacity .3s, visibility .3s;
}
.luxor-popup *,
.luxor-popup *::before,
.luxor-popup *::after { box-sizing: border-box; }

.luxor-popup.is-visible {
    transform: translateY(0);
    opacity: 1;
    visibility: visible;
}

.luxor-popup::before {
    content: "";
    position: absolute;
    top: 6px;
    left: 6px;
    width: 18px;
    height: 18px;
    border-top: 1px solid var(--luxor-gold-soft);
    border-left: 1px solid var(--luxor-gold-soft);
    pointer-events: none;
}

.luxor-popup-close {
    position: absolute;
    top: 4px;
    right: 4px;
    width: 26px;
    height: 26px;
    background: transparent;
    border: 0;
    color: #888;
    font-size: 20px;
    line-height: 1;
    cursor: pointer;
    padding: 0;
    transition: color .2s;
}
.luxor-popup-close:hover { color: var(--luxor-gold-soft); }

.luxor-popup .luxor-brand {
    display: inline-block;
    font-size: 9px;
    letter-spacing: 2.5px;
    text-transform: uppercase;
    color: var(--luxor-gold-soft);
    font-weight: 600;
    margin-bottom: 6px;
}
.luxor-popup .luxor-headline {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 17px;
    font-weight: 400;
    line-height: 1.2;
    color: var(--luxor-cream);
    margin: 0 0 5px;
}
.luxor-popup .luxor-subhead {
    font-size: 11.5px;
    line-height: 1.4;
    color: var(--luxor-muted);
    margin: 0 0 10px;
}

/* Popup form — NO inline-form styling applies here because of :not() guard above */
.luxor-popup-form { margin: 0; padding: 0; background: transparent; border: 0; }

.luxor-popup-form input[type="email"] {
    width: 100%;
    padding: 9px 12px;
    font-size: 12.5px;
    background: var(--luxor-ink-2);
    border: 1px solid rgba(212, 175, 55, .25);
    border-radius: 2px;
    color: var(--luxor-cream);
    font-family: inherit;
    margin-bottom: 7px;
    transition: border-color .2s, background .2s;
}
.luxor-popup-form input[type="email"]::placeholder { color: #555; }
.luxor-popup-form input[type="email"]:focus {
    outline: none;
    border-color: var(--luxor-gold-soft);
    background: var(--luxor-ink-3);
}

.luxor-popup-form button[type="submit"] {
    width: 100%;
    padding: 9px 16px;
    background: var(--luxor-gold-soft);
    color: var(--luxor-ink);
    border: 1px solid var(--luxor-gold-soft);
    border-radius: 2px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
    cursor: pointer;
    font-family: inherit;
    transition: background .2s, color .2s;
}
.luxor-popup-form button[type="submit"]:hover {
    background: transparent;
    color: var(--luxor-gold-soft);
}
.luxor-popup-form button[type="submit"]:disabled { opacity: .6; cursor: wait; }

.luxor-popup-form .luxor-msg {
    margin-top: 8px;
    font-size: 11px;
    text-align: center;
    min-height: 1.2em;
    color: var(--luxor-muted);
}
.luxor-popup-form .luxor-msg.ok    { color: #6abf90; }
.luxor-popup-form .luxor-msg.error { color: #c74545; }

/* ==========================================================================
   MOBILE — keep popup small. Do NOT span full width.
   ========================================================================== */
@media (max-width: 600px) {
    .luxor-popup {
        width: 260px;
        left: 12px;
        right: auto;
        bottom: 80px;
        padding: 14px 14px 12px;
    }
    .luxor-popup .luxor-headline { font-size: 15px; }
    .luxor-popup .luxor-subhead  { font-size: 11px; margin-bottom: 8px; }
    .luxor-popup-form input[type="email"],
    .luxor-popup-form button[type="submit"] {
        padding: 8px 12px;
        font-size: 12px;
    }
}
