:root { --ezlm-purple:#6C36A8; --ezlm-green:#25D366; }

.ezlm-overlay,
.ezlm-overlay * { box-sizing: border-box; }

.ezlm-overlay {
    position: fixed;
    inset: 0;
    z-index: 2147483000;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 22px;
    background: rgba(13, 7, 24, .66);
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
    overscroll-behavior: contain;
}
.ezlm-overlay.ezlm-open { display:flex; animation: ezlmFade .18s ease-out both; }

.ezlm-modal {
    --ezlm-purple:#6C36A8;
    --ezlm-green:#25D366;
    position: relative;
    width: min(980px, 96vw);
    max-height: min(760px, 92vh);
    max-height: min(760px, 92dvh);
    display: grid;
    grid-template-columns: .9fr 1.1fr;
    overflow: hidden;
    border-radius: 28px;
    background: #fff;
    border: 1px solid rgba(108,54,168,.14);
    box-shadow: 0 28px 90px rgba(18, 8, 35, .34);
    font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    color: #160B27;
    transform-origin: 50% 70%;
    animation: ezlmPop .22s cubic-bezier(.2,.8,.2,1) both;
}

.ezlm-modal:before {
    content:"";
    position:absolute;
    right:-130px;
    top:-160px;
    width:360px;
    height:360px;
    border-radius:50%;
    background: radial-gradient(circle at center, rgba(180,141,224,.28), rgba(108,54,168,0) 68%);
    pointer-events:none;
}

.ezlm-close {
    position:absolute;
    top:16px;
    right:16px;
    z-index:20;
    width:40px;
    height:40px;
    border:1px solid rgba(22,11,39,.10);
    border-radius:999px;
    background:rgba(255,255,255,.94);
    color:#2a1c3d;
    font-size:28px;
    line-height:36px;
    cursor:pointer;
    box-shadow:0 5px 18px rgba(22,11,39,.10);
    transition:.18s ease;
    -webkit-tap-highlight-color: transparent;
}
.ezlm-close:hover { transform:scale(1.05); background:#fff; }

.ezlm-book-side {
    position:relative;
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:650px;
    padding:46px 24px 26px;
    background:
      radial-gradient(circle at 50% 34%, rgba(255,255,255,.92), rgba(255,255,255,0) 37%),
      linear-gradient(145deg, #f8f4fd 0%, #f0e7fb 52%, #e9dcf7 100%);
    overflow:hidden;
}
.ezlm-book-side:after {
    content:"";
    position:absolute;
    inset:auto -90px -115px -90px;
    height:250px;
    border-radius:50%;
    background:linear-gradient(115deg, rgba(37,211,102,.18), rgba(108,54,168,.30));
    filter:blur(1px);
}
.ezlm-free-badge {
    position:absolute;
    top:26px;
    left:28px;
    z-index:2;
    display:inline-flex;
    align-items:center;
    padding:9px 14px;
    border-radius:999px;
    color:#fff;
    font-size:12px;
    font-weight:850;
    letter-spacing:.08em;
    background:linear-gradient(135deg, var(--ezlm-purple), #8b57c9);
    box-shadow:0 8px 22px rgba(108,54,168,.22);
}
.ezlm-cover-glow {
    position:absolute;
    width:70%;
    aspect-ratio:1;
    border-radius:50%;
    background:radial-gradient(circle, rgba(37,211,102,.18), rgba(108,54,168,.12) 50%, transparent 70%);
    filter:blur(10px);
}
.ezlm-cover {
    position:relative;
    z-index:1;
    display:block;
    width:min(82%, 360px);
    height:auto;
    max-height:560px;
    object-fit:contain;
    filter:drop-shadow(0 26px 32px rgba(45,23,72,.20));
    transform:rotate(-2deg) translateY(8px);
}

.ezlm-content-side {
    position:relative;
    min-width:0;
    overflow:auto;
    padding:54px 54px 42px;
    background:#fff;
    scrollbar-width:thin;
    scrollbar-color:rgba(108,54,168,.22) transparent;
}
.ezlm-eyebrow {
    margin:0 0 9px;
    color:var(--ezlm-purple);
    font-size:14px;
    line-height:1.35;
    font-weight:850;
    letter-spacing:.02em;
}
.ezlm-content-side h2 {
    margin:0;
    color:#160B27;
    font-size:clamp(34px, 4vw, 52px);
    line-height:.98;
    letter-spacing:-.045em;
    font-weight:900;
    overflow-wrap:anywhere;
}
.ezlm-description {
    margin:17px 0 18px;
    color:#554963;
    font-size:17px;
    line-height:1.55;
}
.ezlm-benefits {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:9px 14px;
    margin:0 0 22px;
    padding:0;
    list-style:none;
}
.ezlm-benefits li {
    display:flex;
    align-items:flex-start;
    gap:9px;
    color:#2d2237;
    font-size:14px;
    line-height:1.35;
    font-weight:650;
}
.ezlm-check {
    flex:0 0 auto;
    width:21px;
    height:21px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    background:rgba(37,211,102,.13);
    color:#13a94c;
    font-size:13px;
    font-weight:900;
}
.ezlm-field-label {
    display:block;
    margin:0 0 7px;
    color:#261933;
    font-size:13px;
    font-weight:800;
}
.ezlm-input-wrap {
    position:relative;
    margin:0 0 12px;
}
.ezlm-input-icon {
    position:absolute;
    left:15px;
    top:50%;
    transform:translateY(-50%);
    color:var(--ezlm-purple);
    font-size:19px;
    font-weight:900;
    pointer-events:none;
}
.ezlm-input-wrap input {
    width:100%;
    min-height:54px;
    padding:13px 16px 13px 45px;
    border:1.5px solid #e3dcec;
    border-radius:14px;
    outline:none;
    background:#fff;
    color:#160B27;
    font:inherit;
    font-size:17px;
    box-shadow:0 4px 14px rgba(40,22,62,.04);
    transition:border-color .16s, box-shadow .16s;
}
.ezlm-input-wrap input:focus {
    border-color:var(--ezlm-purple);
    box-shadow:0 0 0 4px rgba(108,54,168,.10);
}
.ezlm-submit,
.ezlm-download {
    width:100%;
    min-height:58px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:12px;
    margin-top:4px;
    padding:14px 18px;
    border:0;
    border-radius:15px;
    color:#fff !important;
    text-decoration:none !important;
    text-align:center;
    font-family:inherit;
    font-size:15px;
    font-weight:900;
    letter-spacing:.025em;
    cursor:pointer;
    background:linear-gradient(135deg, var(--ezlm-purple), #8450c0);
    box-shadow:0 13px 30px rgba(108,54,168,.25);
    transition:transform .16s, box-shadow .16s, filter .16s;
    -webkit-tap-highlight-color: transparent;
}
.ezlm-submit:hover,
.ezlm-download:hover { transform:translateY(-1px); box-shadow:0 16px 34px rgba(108,54,168,.30); filter:saturate(1.05); }
.ezlm-submit:disabled { cursor:wait; opacity:.68; transform:none; }
.ezlm-arrow { font-size:22px; }
.ezlm-helper {
    margin:10px 0 0;
    text-align:center;
    color:#5d5368;
    font-size:12px;
    font-weight:650;
}
.ezlm-privacy {
    margin:7px 0 0;
    text-align:center;
    color:#8a8091;
    font-size:10.5px;
    line-height:1.35;
}
.ezlm-error {
    min-height:18px;
    margin-top:7px;
    color:#c92b3a;
    font-size:12px;
    font-weight:700;
    text-align:center;
}
.ezlm-honeypot { position:absolute!important; left:-99999px!important; width:1px!important; height:1px!important; overflow:hidden!important; }

.ezlm-success-state {
    min-height:520px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
}
.ezlm-success-state[hidden] { display:none !important; }
.ezlm-success-icon {
    width:82px;
    height:82px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    margin-bottom:22px;
    background:linear-gradient(145deg, var(--ezlm-green), #16b653);
    color:#fff;
    font-size:40px;
    font-weight:900;
    box-shadow:0 18px 40px rgba(37,211,102,.25);
}
.ezlm-success-state h2 {
    max-width:480px;
    font-size:38px;
    line-height:1.05;
}
.ezlm-success-state p {
    max-width:470px;
    margin:15px auto 20px;
    color:#62556f;
    font-size:17px;
    line-height:1.5;
}
.ezlm-download { max-width:380px; background:linear-gradient(135deg, var(--ezlm-green), #15ad4d); box-shadow:0 13px 30px rgba(37,211,102,.23); }
.ezlm-success-state .ezlm-success-mini { margin:11px 0 0; font-size:11px; color:#918799; }

body.ezlm-no-scroll { overflow:hidden !important; overscroll-behavior:none; }

@keyframes ezlmFade { from { opacity:0; } to { opacity:1; } }
@keyframes ezlmPop { from { opacity:0; transform:translateY(16px) scale(.97); } to { opacity:1; transform:none; } }

/* Mobile: bottom sheet real, sem overflow horizontal e adaptado às barras dinâmicas do Safari/Chrome. */
@media (max-width: 820px) {
    .ezlm-overlay {
        align-items:flex-end;
        justify-content:center;
        padding:0;
        padding-top:max(8px, env(safe-area-inset-top));
    }
    .ezlm-modal {
        width:100vw;
        max-width:100%;
        height:auto;
        max-height:92vh;
        max-height:92dvh;
        grid-template-columns:1fr;
        grid-template-rows:132px minmax(0, 1fr);
        border-radius:26px 26px 0 0;
        border-bottom:0;
        overflow:hidden;
        transform-origin:50% 100%;
    }
    .ezlm-book-side {
        min-height:0;
        height:132px;
        padding:10px 18px 0;
        overflow:hidden;
    }
    .ezlm-book-side:after { height:145px; bottom:-105px; }
    .ezlm-free-badge { top:15px; left:18px; font-size:9px; padding:6px 9px; letter-spacing:.06em; }
    .ezlm-cover {
        width:104px;
        max-height:none;
        transform:rotate(-4deg) translateY(25px);
        filter:drop-shadow(0 14px 20px rgba(45,23,72,.18));
    }
    .ezlm-cover-glow { width:220px; }
    .ezlm-content-side {
        min-height:0;
        overflow-y:auto;
        overflow-x:hidden;
        -webkit-overflow-scrolling:touch;
        overscroll-behavior:contain;
        padding:20px 20px calc(18px + env(safe-area-inset-bottom));
    }
    .ezlm-eyebrow { font-size:11px; margin-bottom:5px; padding-right:38px; }
    .ezlm-content-side h2 { font-size:clamp(27px, 8.8vw, 35px); line-height:1; padding-right:30px; }
    .ezlm-description { font-size:14px; line-height:1.42; margin:10px 0 12px; }
    .ezlm-benefits { grid-template-columns:1fr; gap:6px; margin-bottom:13px; }
    .ezlm-benefits li { font-size:12.5px; line-height:1.3; }
    .ezlm-benefits li:nth-child(n+4) { display:none; }
    .ezlm-check { width:19px; height:19px; font-size:12px; }
    .ezlm-field-label { font-size:12px; margin-bottom:5px; }
    .ezlm-input-wrap { margin-bottom:9px; }
    .ezlm-input-wrap input { min-height:50px; font-size:16px; border-radius:13px; }
    .ezlm-submit, .ezlm-download { min-height:54px; border-radius:13px; font-size:14px; padding:12px 15px; }
    .ezlm-helper { margin-top:8px; font-size:11px; }
    .ezlm-privacy { margin-top:5px; font-size:9px; line-height:1.25; }
    .ezlm-error { margin-top:5px; font-size:11px; }
    .ezlm-close {
        width:38px;
        height:38px;
        line-height:34px;
        top:max(10px, env(safe-area-inset-top));
        right:max(10px, env(safe-area-inset-right));
        font-size:26px;
        box-shadow:0 5px 16px rgba(22,11,39,.14);
    }
    .ezlm-success-state { min-height:330px; padding:8px 0 16px; }
    .ezlm-success-icon { width:68px; height:68px; font-size:34px; margin-bottom:16px; }
    .ezlm-success-state h2 { font-size:29px; }
    .ezlm-success-state p { font-size:14px; margin:12px auto 16px; }
}

@media (max-width: 430px) {
    .ezlm-modal { grid-template-rows:112px minmax(0, 1fr); max-height:94vh; max-height:94dvh; }
    .ezlm-book-side { height:112px; }
    .ezlm-cover { width:88px; transform:rotate(-4deg) translateY(21px); }
    .ezlm-free-badge { top:12px; left:14px; }
    .ezlm-content-side { padding:17px 15px calc(15px + env(safe-area-inset-bottom)); }
    .ezlm-content-side h2 { font-size:clamp(25px, 8.2vw, 31px); }
    .ezlm-description { font-size:13.5px; }
    .ezlm-benefits li { font-size:12px; }
    .ezlm-helper { font-size:10.5px; }
    .ezlm-privacy { font-size:8.8px; }
}

@media (max-width: 360px), (max-height: 640px) and (max-width: 820px) {
    .ezlm-modal { grid-template-rows:92px minmax(0, 1fr); max-height:96vh; max-height:96dvh; }
    .ezlm-book-side { height:92px; }
    .ezlm-cover { width:72px; transform:rotate(-4deg) translateY(17px); }
    .ezlm-free-badge { font-size:8px; padding:5px 8px; }
    .ezlm-content-side { padding-top:14px; }
    .ezlm-content-side h2 { font-size:25px; }
    .ezlm-description { margin:8px 0 10px; }
    .ezlm-benefits { margin-bottom:10px; }
    .ezlm-benefits li:nth-child(n+3) { display:none; }
}

@media (prefers-reduced-motion: reduce) {
    .ezlm-overlay.ezlm-open, .ezlm-modal { animation:none; }
    .ezlm-submit, .ezlm-download, .ezlm-close { transition:none; }
}
