:root {
    --bcp-modal-width: 520px;
    --bcp-overlay-color: #0f172a;
    --bcp-overlay-rgb: 15,23,42;
    --bcp-overlay-opacity: .72;
    --bcp-blur: 6px;
    --bcp-popup-bg: #fff;
    --bcp-text: #111827;
    --bcp-muted: #667085;
    --bcp-primary: #111827;
    --bcp-secondary: #f8fafc;
    --bcp-border: #d0d5dd;
    --bcp-card-radius: 18px;
    --bcp-input-radius: 10px;
    --bcp-font-size: 18px;
}

html.bcp-modal-open { overflow: hidden; }
.bcp-article-gate { margin: 1.5rem 0; }
.bcp-teaser { position: relative; max-height: 9em; overflow: hidden; color: inherit; }
.bcp-teaser::after { content: ""; position: absolute; inset: auto 0 0; height: 4em; background: linear-gradient(to bottom, transparent, var(--wp--preset--color--base, #fff)); pointer-events: none; }
.bcp-locked-card { margin-top: 1.25rem; padding: 28px; border: 1px solid #dfe3e8; border-radius: 16px; text-align: center; background: #fff; color: #111827; box-shadow: 0 10px 30px rgba(15,23,42,.07); }
.bcp-locked-card h2 { margin: 8px 0 6px; font-size: clamp(1.25rem, 2vw, 1.6rem); }
.bcp-locked-card p { margin: 0 0 18px; color: #667085; }
.bcp-lock-icon { font-size: 28px; line-height: 1; }
.bcp-open-modal { min-height: 48px; padding: 0 22px !important; font-size: 17px !important; cursor: pointer; }

.bcp-overlay { position: fixed; inset: 0; z-index: 999998; background: rgba(var(--bcp-overlay-rgb),var(--bcp-overlay-opacity)); backdrop-filter: blur(var(--bcp-blur)); -webkit-backdrop-filter: blur(var(--bcp-blur)); }
.bcp-modal-wrap { position: fixed; inset: 0; z-index: 999999; display: grid; place-items: center; padding: 20px; overflow-y: auto; }
.bcp-modal-wrap[hidden], .bcp-overlay[hidden] { display: none !important; }
.bcp-modal { width: min(100%, var(--bcp-modal-width)); position: relative; box-sizing: border-box; padding: 34px; border: 1px solid var(--bcp-border); border-radius: var(--bcp-card-radius); background: var(--bcp-popup-bg); color: var(--bcp-text); box-shadow: 0 30px 90px rgba(0,0,0,.28); font-size: var(--bcp-font-size); line-height: 1.5; }
.bcp-close { position: absolute; top: 10px; right: 12px; width: 44px; height: 44px; border: 0; background: transparent; color: var(--bcp-muted); font-size: 34px; line-height: 1; cursor: pointer; border-radius: 50%; }
.bcp-close:hover, .bcp-close:focus-visible { background: var(--bcp-secondary); color: var(--bcp-text); outline: 3px solid rgba(37,99,235,.25); }
.bcp-logo { text-align: center; margin: 0 0 16px; }
.bcp-logo img { max-width: 160px; max-height: 70px; width: auto; height: auto; }
.bcp-heading { color: var(--bcp-text); margin: 0 40px 8px; text-align: center; font-size: clamp(1.55rem, 3vw, 2rem); line-height: 1.2; }
.bcp-description { color: var(--bcp-muted); margin: 0 0 24px; text-align: center; }
.bcp-field { margin-bottom: 18px; }
.bcp-field label { display: block; margin-bottom: 7px; font-weight: 700; color: var(--bcp-text); }
.bcp-field input { width: 100%; min-height: 54px; box-sizing: border-box; border: 1px solid var(--bcp-border); border-radius: var(--bcp-input-radius); background: #fff; color: #111827; padding: 12px 14px; font: inherit; }
.bcp-field input:focus { outline: 3px solid rgba(37,99,235,.18); border-color: #2563eb; }
.bcp-primary, .bcp-secondary { width: 100%; min-height: 54px; box-sizing: border-box; display: flex; align-items: center; justify-content: center; border-radius: var(--bcp-input-radius); padding: 10px 16px; font: inherit; font-weight: 700; text-align: center; text-decoration: none; cursor: pointer; }
.bcp-primary { border: 1px solid var(--bcp-primary); color: #fff; background: var(--bcp-primary); margin: 4px 0 12px; }
.bcp-primary:disabled { opacity: .65; cursor: wait; }
.bcp-secondary { border: 1px solid var(--bcp-border); color: var(--bcp-text); background: var(--bcp-secondary); margin: 0 0 12px; }
.bcp-primary:focus-visible, .bcp-secondary:focus-visible { outline: 3px solid rgba(37,99,235,.28); outline-offset: 2px; }
.bcp-privacy { margin: 12px 0 0; color: var(--bcp-muted); text-align: center; font-size: .82em; }
.bcp-privacy a { color: inherit; text-decoration: underline; }
.bcp-error { min-height: 1.45em; margin-top: 12px; color: #b42318; font-weight: 600; text-align: center; }
.bcp-honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; opacity: 0 !important; pointer-events: none !important; }

@media (max-width: 600px) {
    .bcp-modal-wrap { padding: 12px; align-items: end; }
    .bcp-modal { padding: 28px 20px 22px; border-radius: 18px 18px 12px 12px; max-height: calc(100vh - 24px); overflow-y: auto; }
    .bcp-heading { margin-left: 34px; margin-right: 34px; }
}

@media (prefers-reduced-motion: reduce) {
    .bcp-modal, .bcp-overlay { scroll-behavior: auto; }
}
