.fsw-root{--fsw-primary:#f417db;--fsw-secondary:#d789f4;--fsw-accent:#6f2dbd;--fsw-pointer:#73bd2a;--fsw-overlay:rgba(20,18,55,.35);--fsw-size:620px;--fsw-mobile-size:330px;font-family:Inter,system-ui,-apple-system,Segoe UI,Arial,sans-serif}.fsw-overlay{position:relative;min-height:420px;display:flex;align-items:center;justify-content:center;padding:24px}.fsw-popup-mode .fsw-overlay{position:fixed;inset:0;z-index:999999;background:var(--fsw-overlay);backdrop-filter:blur(7px);overflow:auto}.fsw-stage{position:relative;display:flex;flex-direction:column;align-items:center;max-width:980px;width:100%;margin:auto}.fsw-close{position:absolute;right:30px;top:10px;z-index:20;width:38px;height:38px;border:0;border-radius:12px;background:#fff;color:#494166;font-size:27px;line-height:1;cursor:pointer;box-shadow:0 10px 30px rgba(25,18,62,.16)}.fsw-headline{font-size:44px;line-height:.93;font-weight:1000;text-align:center;color:#fff;text-transform:uppercase;max-width:560px;text-shadow:0 4px 13px rgba(69,19,84,.45);margin:8px 0 18px}.fsw-card{width:min(490px,92vw);background:#fff;border-radius:30px;padding:34px 40px;box-shadow:0 25px 70px rgba(36,20,72,.2)}.fsw-card h2{margin:0 0 12px;font-size:32px;line-height:1.15;color:#11134e}.fsw-badge{display:inline-flex;align-items:center;gap:10px;background:#f0eafe;border-radius:16px;padding:12px 18px;margin:4px 0 18px;color:#08114b;font-weight:900}.fsw-input-wrap{display:block;margin:0 0 14px}.fsw-input-wrap>input:not([type=checkbox]){width:100%;box-sizing:border-box;border:1px solid #e3e4ef;border-radius:20px;padding:17px 20px;font-size:17px;outline:none}.fsw-input-wrap>input:focus{border-color:var(--fsw-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--fsw-primary) 16%,transparent)}.fsw-input-wrap:has(input[type=checkbox]){display:flex;gap:10px}.fsw-consent{display:flex;gap:10px;font-size:14px;line-height:1.45;color:#505066;margin:13px 4px}.fsw-terms{font-size:13px;line-height:1.45;color:#505066;margin:10px 4px 18px}.fsw-submit,.fsw-result-cta{display:block;width:100%;border:0;border-radius:18px;background:linear-gradient(90deg,var(--fsw-primary),#e200ca);color:#fff;padding:17px 20px;font-size:19px;font-weight:900;text-align:center;text-decoration:none;cursor:pointer;box-sizing:border-box}.fsw-submit:disabled{opacity:.65;cursor:wait}.fsw-error{min-height:20px;color:#c1121f;font-size:13px;margin:0 2px 8px}.fsw-wheel-screen{width:100%;display:flex;justify-content:center}.fsw-wheel-wrap{position:relative;width:var(--fsw-size);height:var(--fsw-size);max-width:92vw;max-height:92vw}.fsw-wheel{position:absolute;inset:0;border-radius:50%;border:14px solid #f46be6;box-shadow:0 0 0 10px #9b1696,0 20px 55px rgba(68,3,77,.35);transition:transform 7s cubic-bezier(.08,.68,.12,1);will-change:transform}.fsw-wheel-face{position:absolute;inset:0;border-radius:50%;overflow:hidden;background:#eee}.fsw-labels{position:absolute;inset:0;border-radius:50%;pointer-events:none}.fsw-label{position:absolute;left:50%;top:50%;width:28%;height:auto;transform:translate(-50%,-50%) rotate(var(--fsw-label-angle)) translateY(calc(var(--fsw-size) * -0.31)) rotate(calc(var(--fsw-label-angle) * -1));text-align:center;box-sizing:border-box;font-size:14px;line-height:1.08;font-weight:900;text-transform:uppercase;text-shadow:0 1px 2px rgba(0,0,0,.12);pointer-events:none}.fsw-label span{display:block;overflow-wrap:anywhere}.fsw-center{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:118px;height:118px;border-radius:50%;border:8px solid #ffc28e;background:#8c2450;color:white;font-size:27px;font-weight:1000;box-shadow:0 0 0 5px #7d163f;z-index:4}.fsw-pointer{position:absolute;right:-42px;top:50%;transform:translateY(-50%);width:0;height:0;border-top:46px solid transparent;border-bottom:46px solid transparent;border-right:0;border-left:88px solid var(--fsw-pointer);z-index:7;filter:drop-shadow(-6px 6px 0 rgba(70,125,13,.45))}.fsw-result-card{text-align:center}.fsw-result-icon{font-size:58px}.fsw-result-card p{font-size:20px;color:#35354b;margin:12px 0 24px}.fsw-auto-wrap{display:none}.fsw-auto-wrap.fsw-show{display:block}@media(max-width:600px){.fsw-overlay{padding:14px}.fsw-headline{font-size:31px;max-width:360px;margin-top:35px}.fsw-card{padding:25px 20px;border-radius:24px}.fsw-card h2{font-size:25px}.fsw-close{right:12px;top:6px}.fsw-wheel-wrap{width:var(--fsw-mobile-size);height:var(--fsw-mobile-size)}.fsw-label{font-size:10px;padding-right:6px}.fsw-center{width:76px;height:76px;border-width:5px;font-size:17px}.fsw-pointer{right:-21px;border-top-width:29px;border-bottom-width:29px;border-left-width:55px}.fsw-wheel{border-width:9px}}

/* v1.3.0 — strict screen states */
.fsw-root [hidden]{
    display:none !important;
}

/* Popup should show one clean step at a time */
.fsw-popup-mode .fsw-stage{
    min-height:0;
    justify-content:center;
}

.fsw-popup-mode .fsw-form-card,
.fsw-popup-mode .fsw-result-card{
    margin:0 auto;
}

.fsw-popup-mode .fsw-wheel-screen{
    width:100%;
    align-items:center;
    justify-content:center;
    padding:8px 0 18px;
    box-sizing:border-box;
}

.fsw-popup-mode .fsw-wheel-wrap{
    margin:0 auto;
}

/* Cleaner visual balance */
.fsw-popup-mode .fsw-headline{
    margin:0 0 20px;
    max-width:650px;
    letter-spacing:-1px;
}

.fsw-popup-mode .fsw-card{
    max-width:500px;
}

.fsw-popup-mode .fsw-result-card{
    padding-top:40px;
    padding-bottom:40px;
}

@media(max-width:600px){
    .fsw-popup-mode .fsw-headline{
        margin-top:30px;
        margin-bottom:14px;
        font-size:28px;
        line-height:1;
        max-width:330px;
    }
    .fsw-popup-mode .fsw-card{
        width:min(92vw,430px);
    }
    .fsw-popup-mode .fsw-wheel-screen{
        padding-top:15px;
    }
}


/* v1.4.0 label positioning */
.fsw-label{
    position:absolute !important;
    left:50% !important;
    top:50% !important;
    width:26% !important;
    padding:0 !important;
    text-align:center !important;
    transform:
        translate(-50%,-50%)
        rotate(var(--fsw-label-angle))
        translateY(calc(var(--fsw-size) * -0.31))
        rotate(calc(var(--fsw-label-angle) * -1)) !important;
    transform-origin:center center !important;
    font-size:13px !important;
    line-height:1.08 !important;
    font-weight:900;
}
.fsw-label span{
    display:block;
    max-width:100%;
    overflow-wrap:anywhere;
}

/* Pointer on the right must point LEFT, toward the wheel */
.fsw-pointer{
    right:-42px !important;
    width:0 !important;
    height:0 !important;
    border-top:46px solid transparent !important;
    border-bottom:46px solid transparent !important;
    border-left:0 !important;
    border-right:88px solid var(--fsw-pointer) !important;
    filter:drop-shadow(6px 6px 0 rgba(70,125,13,.35)) !important;
}

/* Registration and wheel have separate headings; result uses its own result title */
.fsw-wheel-headline{
    font-size:38px;
    max-width:520px;
}
.fsw-root[data-step="result"] .fsw-headline{
    display:none !important;
}

@media(max-width:600px){
    .fsw-label{
        width:27% !important;
        font-size:9px !important;
        transform:
            translate(-50%,-50%)
            rotate(var(--fsw-label-angle))
            translateY(calc(var(--fsw-mobile-size) * -0.31))
            rotate(calc(var(--fsw-label-angle) * -1)) !important;
    }
    .fsw-pointer{
        right:-22px !important;
        border-top-width:29px !important;
        border-bottom-width:29px !important;
        border-right-width:55px !important;
    }
    .fsw-wheel-headline{
        font-size:27px;
    }
}


/* =========================================================
   v1.5.0 — Reward teaser / partial wheel registration screen
   Mobile first: form overlaps the upper part of a visible wheel.
   ========================================================= */

/* Smooth step changes */
.fsw-form-card,
.fsw-wheel-screen,
.fsw-form-headline,
.fsw-wheel-headline,
.fsw-result-card{
    transition:opacity .38s ease, transform .48s cubic-bezier(.2,.75,.2,1);
}

/* FORM STEP: one composed object, not form + random wheel */
.fsw-root[data-step="form"] .fsw-stage{
    justify-content:flex-start;
    padding-bottom:0;
    overflow:hidden;
}

.fsw-root[data-step="form"] .fsw-form-card{
    position:relative;
    z-index:8;
}

.fsw-root[data-step="form"] .fsw-wheel-screen{
    position:relative;
    z-index:3;
    margin-top:-44px;
    padding:0 !important;
    height:245px;
    overflow:hidden;
    pointer-events:none;
}

.fsw-root[data-step="form"] .fsw-wheel-wrap{
    transform:scale(.76);
    transform-origin:top center;
    opacity:.96;
    filter:saturate(.94);
}

/* Small idle motion: enough to feel alive, never a fake spin */
.fsw-root[data-step="form"] .fsw-wheel{
    animation:fsw-teaser-idle 4.8s ease-in-out infinite alternate;
}

@keyframes fsw-teaser-idle{
    from{ transform:rotate(-2deg); }
    to{ transform:rotate(2deg); }
}

/* ACTIVE WHEEL: cancel teaser animation and bring wheel to center */
.fsw-root[data-step="wheel"] .fsw-stage{
    justify-content:center;
}
.fsw-root[data-step="wheel"] .fsw-wheel-screen{
    margin-top:0;
    height:auto;
    overflow:visible;
    opacity:1;
}
.fsw-root[data-step="wheel"] .fsw-wheel-wrap{
    transform:scale(1);
    opacity:1;
    filter:none;
    transition:transform .55s cubic-bezier(.2,.8,.2,1), opacity .35s ease;
}
.fsw-root[data-step="wheel"] .fsw-wheel{
    animation:none !important;
}

/* RESULT: clean standalone card */
.fsw-root[data-step="result"] .fsw-stage{
    justify-content:center;
}
.fsw-root[data-step="result"] .fsw-result-card{
    margin:auto;
}

/* Mobile priority */
@media(max-width:600px){
    .fsw-popup-mode .fsw-overlay{
        padding:10px 12px 0;
        align-items:flex-start;
    }

    .fsw-root[data-step="form"] .fsw-stage{
        padding-top:18px;
        min-height:100vh;
        box-sizing:border-box;
    }

    .fsw-root[data-step="form"] .fsw-form-headline{
        margin-top:0;
        margin-bottom:12px;
        font-size:27px;
        line-height:.98;
    }

    .fsw-root[data-step="form"] .fsw-form-card{
        width:min(92vw,430px);
        padding:22px 20px 24px;
        border-radius:24px;
        box-shadow:0 20px 48px rgba(27,18,61,.24);
    }

    .fsw-root[data-step="form"] .fsw-form-card h2{
        font-size:24px;
        margin-bottom:8px;
    }

    .fsw-root[data-step="form"] .fsw-wheel-screen{
        width:100vw;
        height:190px;
        margin-top:-34px;
        overflow:hidden;
    }

    .fsw-root[data-step="form"] .fsw-wheel-wrap{
        transform:scale(.88);
        transform-origin:top center;
    }

    /* Hide pointer during teaser so the preview reads as a locked reward,
       not as a wheel that is already ready to spin. */
    .fsw-root[data-step="form"] .fsw-pointer{
        opacity:.55;
    }

    .fsw-root[data-step="wheel"] .fsw-stage{
        min-height:100vh;
        justify-content:center;
        padding:16px 0 28px;
        box-sizing:border-box;
    }

    .fsw-root[data-step="wheel"] .fsw-wheel-headline{
        margin:0 0 18px;
    }

    .fsw-root[data-step="wheel"] .fsw-wheel-screen{
        width:100%;
        overflow:visible;
    }
}

/* Desktop: card and teaser wheel become a balanced two-column composition. */
@media(min-width:801px){
    .fsw-root[data-step="form"] .fsw-stage{
        max-width:1040px;
        min-height:650px;
        display:grid;
        grid-template-columns:minmax(390px,500px) minmax(420px,1fr);
        grid-template-rows:auto 1fr;
        column-gap:24px;
        align-items:center;
        justify-content:center;
        overflow:visible;
        padding:34px 34px 20px;
        box-sizing:border-box;
    }

    .fsw-root[data-step="form"] .fsw-form-headline{
        grid-column:1 / -1;
        grid-row:1;
        justify-self:center;
        margin:0 0 12px;
    }

    .fsw-root[data-step="form"] .fsw-form-card{
        grid-column:1;
        grid-row:2;
        justify-self:end;
        z-index:8;
    }

    .fsw-root[data-step="form"] .fsw-wheel-screen{
        grid-column:2;
        grid-row:2;
        width:470px;
        height:570px;
        margin:0 0 0 -38px;
        overflow:hidden;
        align-self:center;
        justify-self:start;
        display:flex;
        align-items:center;
    }

    .fsw-root[data-step="form"] .fsw-wheel-wrap{
        transform:scale(.80);
        transform-origin:center center;
    }

    .fsw-root[data-step="wheel"] .fsw-stage{
        min-height:680px;
    }
}

/* Respect reduced-motion preference */
@media(prefers-reduced-motion:reduce){
    .fsw-root[data-step="form"] .fsw-wheel{
        animation:none !important;
    }
    .fsw-form-card,
    .fsw-wheel-screen,
    .fsw-form-headline,
    .fsw-wheel-headline,
    .fsw-result-card,
    .fsw-wheel-wrap{
        transition:none !important;
    }
}


/* =========================================================
   v1.6.0 — refined teaser composition
   - Desktop: centered vertical composition, no side-by-side layout
   - Mobile: slightly lower start, wheel tucked behind card at top,
     but full rounded bottom of wheel stays visible
   ========================================================= */

/* ---------- DESKTOP / TABLET ---------- */
@media(min-width:601px){
    .fsw-root[data-step="form"] .fsw-stage{
        display:flex !important;
        flex-direction:column !important;
        align-items:center !important;
        justify-content:flex-start !important;
        max-width:860px !important;
        min-height:720px !important;
        padding:42px 24px 20px !important;
        overflow:visible !important;
        box-sizing:border-box !important;
    }

    .fsw-root[data-step="form"] .fsw-form-headline{
        margin:0 0 24px !important;
        max-width:650px !important;
        text-align:center !important;
        align-self:center !important;
    }

    .fsw-root[data-step="form"] .fsw-form-card{
        width:min(500px,78vw) !important;
        max-width:500px !important;
        margin:0 auto !important;
        z-index:8 !important;
        position:relative !important;
        box-shadow:0 24px 60px rgba(27,18,61,.24) !important;
    }

    .fsw-root[data-step="form"] .fsw-wheel-screen{
        position:relative !important;
        width:100% !important;
        height:350px !important;
        margin:-54px 0 0 !important;
        padding:0 !important;
        overflow:visible !important;
        display:flex !important;
        align-items:flex-start !important;
        justify-content:center !important;
        z-index:3 !important;
        pointer-events:none !important;
    }

    .fsw-root[data-step="form"] .fsw-wheel-wrap{
        width:var(--fsw-size) !important;
        height:var(--fsw-size) !important;
        transform:scale(.66) !important;
        transform-origin:top center !important;
        margin:0 auto !important;
    }

    .fsw-root[data-step="form"] .fsw-pointer{
        opacity:.7 !important;
    }

    /* Full wheel step */
    .fsw-root[data-step="wheel"] .fsw-stage{
        min-height:720px !important;
        display:flex !important;
        flex-direction:column !important;
        justify-content:center !important;
        align-items:center !important;
        padding:28px 20px !important;
    }

    .fsw-root[data-step="wheel"] .fsw-wheel-screen{
        width:100% !important;
        height:auto !important;
        margin:0 !important;
        overflow:visible !important;
    }

    .fsw-root[data-step="wheel"] .fsw-wheel-wrap{
        transform:scale(1) !important;
    }
}

/* ---------- MOBILE ---------- */
@media(max-width:600px){
    .fsw-popup-mode .fsw-overlay{
        align-items:flex-start !important;
        padding:0 10px 18px !important;
        overflow-y:auto !important;
        overflow-x:hidden !important;
    }

    /* Move entire starting composition slightly lower */
    .fsw-root[data-step="form"] .fsw-stage{
        min-height:100svh !important;
        padding:34px 0 28px !important;
        box-sizing:border-box !important;
        overflow:visible !important;
        justify-content:flex-start !important;
    }

    .fsw-root[data-step="form"] .fsw-form-headline{
        margin:0 42px 16px 18px !important;
        font-size:26px !important;
        line-height:1 !important;
        max-width:330px !important;
        text-align:center !important;
    }

    .fsw-root[data-step="form"] .fsw-form-card{
        width:min(92vw,430px) !important;
        margin:0 auto !important;
        padding:22px 18px 24px !important;
        border-radius:24px !important;
        position:relative !important;
        z-index:8 !important;
    }

    /*
      Important mobile teaser behavior:
      The wheel is NOT clipped by a short container anymore.
      We pull the full round wheel upward behind the card.
      The card naturally hides the upper wheel area because it sits above it,
      while the lower circumference remains fully visible and round.
    */
    .fsw-root[data-step="form"] .fsw-wheel-screen{
        width:100% !important;
        height:275px !important;
        margin:-32px 0 0 !important;
        padding:0 !important;
        overflow:visible !important;
        display:flex !important;
        align-items:flex-start !important;
        justify-content:center !important;
        z-index:3 !important;
        pointer-events:none !important;
    }

    .fsw-root[data-step="form"] .fsw-wheel-wrap{
        width:var(--fsw-mobile-size) !important;
        height:var(--fsw-mobile-size) !important;
        transform:scale(.78) !important;
        transform-origin:top center !important;
        margin:0 auto !important;
    }

    .fsw-root[data-step="form"] .fsw-wheel{
        box-shadow:
            0 0 0 7px #9b1696,
            0 18px 38px rgba(68,3,77,.28) !important;
    }

    .fsw-root[data-step="form"] .fsw-pointer{
        opacity:.55 !important;
    }

    /* Full wheel after unlock */
    .fsw-root[data-step="wheel"] .fsw-stage{
        min-height:100svh !important;
        padding:36px 0 28px !important;
        justify-content:center !important;
        overflow:visible !important;
    }

    .fsw-root[data-step="wheel"] .fsw-wheel-screen{
        width:100% !important;
        height:auto !important;
        margin:0 !important;
        overflow:visible !important;
        padding:0 0 12px !important;
    }

    .fsw-root[data-step="wheel"] .fsw-wheel-wrap{
        transform:scale(1) !important;
        transform-origin:center center !important;
    }

    /* Keep close button comfortably away from the headline */
    .fsw-popup-mode .fsw-close{
        top:14px !important;
        right:14px !important;
    }
}

/* Small phones: keep full lower wheel visible without overflowing horizontally */
@media(max-width:390px){
    .fsw-root[data-step="form"] .fsw-wheel-wrap{
        transform:scale(.72) !important;
    }

    .fsw-root[data-step="form"] .fsw-wheel-screen{
        height:250px !important;
        margin-top:-28px !important;
    }

    .fsw-root[data-step="form"] .fsw-form-headline{
        font-size:24px !important;
        margin-top:6px !important;
    }
}


/* =========================================================
   v1.8.0 — corrective layout pass
   Stable v1.6 composition + strict sizing/alignment fixes
   ========================================================= */

/* ---------- Close button: genuinely small, resistant to theme button CSS ---------- */
.fsw-popup-mode button.fsw-close{
    position:absolute !important;
    top:14px !important;
    right:14px !important;
    width:27px !important;
    min-width:27px !important;
    max-width:27px !important;
    height:27px !important;
    min-height:27px !important;
    max-height:27px !important;
    padding:0 !important;
    margin:0 !important;
    border:0 !important;
    border-radius:8px !important;
    background:#fff !important;
    color:#4b4567 !important;
    font-size:18px !important;
    line-height:27px !important;
    font-weight:700 !important;
    text-align:center !important;
    box-sizing:border-box !important;
}

/* ---------- Registration card: force true horizontal centering ---------- */
.fsw-root[data-step="form"] .fsw-form-card{
    left:auto !important;
    right:auto !important;
    margin-left:auto !important;
    margin-right:auto !important;
    align-self:center !important;
    justify-self:center !important;
    transform:none !important;
    box-sizing:border-box !important;
}

/* ---------- Wheel geometry: NEVER allow oval/egg distortion ---------- */
.fsw-wheel-wrap{
    aspect-ratio:1 / 1 !important;
}
.fsw-wheel,
.fsw-wheel-face,
.fsw-labels{
    aspect-ratio:1 / 1 !important;
    border-radius:50% !important;
}

/* ---------- Prize labels: restore centered wedge placement ---------- */
.fsw-label{
    position:absolute !important;
    left:50% !important;
    top:50% !important;
    width:26% !important;
    height:auto !important;
    min-height:0 !important;
    padding:0 !important;
    margin:0 !important;
    display:block !important;
    text-align:center !important;
    transform:
        translate(-50%,-50%)
        rotate(var(--fsw-label-angle))
        translateY(-31%)
        rotate(calc(var(--fsw-label-angle) * -1)) !important;
    transform-origin:center center !important;
    font-size:12px !important;
    line-height:1.06 !important;
    font-weight:900 !important;
    letter-spacing:-.15px !important;
    text-transform:uppercase !important;
    white-space:normal !important;
    pointer-events:none !important;
}
.fsw-label span{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    overflow-wrap:normal !important;
    word-break:normal !important;
    hyphens:none !important;
    text-align:center !important;
}
.fsw-label-medium{
    font-size:10.5px !important;
}
.fsw-label-long{
    font-size:9.5px !important;
    line-height:1 !important;
}

/* ---------- Desktop: keep wheel teaser noticeably smaller ---------- */
@media(min-width:601px){
    .fsw-root[data-step="form"] .fsw-stage{
        display:flex !important;
        flex-direction:column !important;
        align-items:center !important;
        justify-content:flex-start !important;
        max-width:760px !important;
        min-height:680px !important;
        padding:38px 24px 24px !important;
        box-sizing:border-box !important;
    }

    .fsw-root[data-step="form"] .fsw-form-headline{
        text-align:center !important;
        margin:0 auto 20px !important;
        max-width:620px !important;
    }

    .fsw-root[data-step="form"] .fsw-form-card{
        width:min(500px,78vw) !important;
        max-width:500px !important;
        margin:0 auto !important;
    }

    .fsw-root[data-step="form"] .fsw-wheel-screen{
        width:100% !important;
        height:300px !important;
        min-height:300px !important;
        margin:-42px 0 0 !important;
        overflow:visible !important;
        display:flex !important;
        justify-content:center !important;
        align-items:flex-start !important;
    }

    .fsw-root[data-step="form"] .fsw-wheel-wrap{
        width:430px !important;
        height:430px !important;
        min-width:430px !important;
        min-height:430px !important;
        max-width:430px !important;
        max-height:430px !important;
        transform:none !important;
        margin:0 auto !important;
    }

    /* Full spin can be larger than preview, but not huge */
    .fsw-root[data-step="wheel"] .fsw-wheel-wrap{
        width:min(72vw,540px) !important;
        height:min(72vw,540px) !important;
        max-width:540px !important;
        max-height:540px !important;
        min-width:0 !important;
        min-height:0 !important;
        transform:none !important;
    }
}

/* ---------- Mobile: centered card, true circle, larger left/right visual footprint ---------- */
@media(max-width:600px){
    .fsw-popup-mode .fsw-overlay{
        padding:0 8px 20px !important;
        align-items:flex-start !important;
        overflow-y:auto !important;
        overflow-x:hidden !important;
    }

    .fsw-root[data-step="form"] .fsw-stage{
        width:100% !important;
        max-width:100% !important;
        min-height:100svh !important;
        padding:44px 0 26px !important;
        margin:0 auto !important;
        align-items:center !important;
        justify-content:flex-start !important;
        box-sizing:border-box !important;
        overflow:visible !important;
    }

    .fsw-root[data-step="form"] .fsw-form-headline{
        width:calc(100% - 54px) !important;
        max-width:340px !important;
        margin:0 auto 16px !important;
        padding:0 !important;
        text-align:center !important;
        font-size:25px !important;
        line-height:1 !important;
    }

    .fsw-root[data-step="form"] .fsw-form-card{
        position:relative !important;
        width:calc(100% - 24px) !important;
        max-width:420px !important;
        margin:0 auto !important;
        padding:20px 18px 19px !important;
        border-radius:24px !important;
    }

    /* Reduce space before button */
    .fsw-root[data-step="form"] .fsw-input-wrap{
        margin-bottom:10px !important;
    }
    .fsw-root[data-step="form"] .fsw-consent{
        margin:9px 4px 5px !important;
        font-size:13px !important;
        line-height:1.4 !important;
    }
    .fsw-root[data-step="form"] .fsw-terms{
        margin:6px 4px 9px !important;
        font-size:12px !important;
        line-height:1.4 !important;
    }
    .fsw-root[data-step="form"] .fsw-error{
        min-height:8px !important;
        margin:0 2px 3px !important;
    }
    .fsw-root[data-step="form"] .fsw-submit{
        min-height:48px !important;
        padding:11px 15px !important;
        border-radius:17px !important;
        font-size:17px !important;
        margin-top:0 !important;
    }

    /*
      Teaser wheel:
      fixed square dimensions => guaranteed circle.
      94vw gives more left/right presence without distortion.
    */
    .fsw-root[data-step="form"] .fsw-wheel-screen{
        width:100% !important;
        height:330px !important;
        min-height:330px !important;
        margin:-25px 0 0 !important;
        padding:0 !important;
        overflow:visible !important;
        display:flex !important;
        justify-content:center !important;
        align-items:flex-start !important;
    }

    .fsw-root[data-step="form"] .fsw-wheel-wrap{
        width:min(94vw,380px) !important;
        height:min(94vw,380px) !important;
        min-width:0 !important;
        min-height:0 !important;
        max-width:380px !important;
        max-height:380px !important;
        transform:none !important;
        margin:0 auto !important;
        flex:0 0 auto !important;
    }

    .fsw-root[data-step="form"] .fsw-wheel{
        width:100% !important;
        height:100% !important;
        inset:0 !important;
    }

    .fsw-root[data-step="form"] .fsw-pointer{
        right:-8px !important;
        border-top-width:24px !important;
        border-bottom-width:24px !important;
        border-right-width:44px !important;
    }

    /* Mobile prize readability */
    .fsw-label{
        width:27% !important;
        font-size:8.2px !important;
        line-height:1.02 !important;
        transform:
            translate(-50%,-50%)
            rotate(var(--fsw-label-angle))
            translateY(-31%)
            rotate(calc(var(--fsw-label-angle) * -1)) !important;
    }
    .fsw-label-medium{
        font-size:7.4px !important;
    }
    .fsw-label-long{
        font-size:6.7px !important;
        line-height:.98 !important;
    }

    /* Full spin wheel remains circular and fits screen */
    .fsw-root[data-step="wheel"] .fsw-wheel-wrap{
        width:min(90vw,410px) !important;
        height:min(90vw,410px) !important;
        max-width:410px !important;
        max-height:410px !important;
        min-width:0 !important;
        min-height:0 !important;
        transform:none !important;
        flex:0 0 auto !important;
    }
}

/* Extra narrow screens */
@media(max-width:380px){
    .fsw-root[data-step="form"] .fsw-form-card{
        width:calc(100% - 18px) !important;
        padding-left:15px !important;
        padding-right:15px !important;
    }

    .fsw-root[data-step="form"] .fsw-wheel-wrap{
        width:94vw !important;
        height:94vw !important;
    }

    .fsw-root[data-step="form"] .fsw-wheel-screen{
        height:315px !important;
    }
}


/* =========================================================
   v1.8.1 — prize text visibility fix
   ========================================================= */

/* Make sure label layer is above the wheel face and below center button */
.fsw-labels{
    z-index:3 !important;
    overflow:visible !important;
}
.fsw-label{
    z-index:3 !important;
    color:#fff !important;
    opacity:1 !important;
    visibility:visible !important;
    text-shadow:
        0 1px 2px rgba(0,0,0,.28),
        0 0 2px rgba(0,0,0,.18) !important;

    /* Move labels outward into the visual middle of each wedge */
    transform:
        translate(-50%,-50%)
        rotate(var(--fsw-label-angle))
        translateY(-145px)
        rotate(calc(var(--fsw-label-angle) * -1)) !important;
}

.fsw-label span{
    display:block !important;
    color:inherit !important;
    opacity:1 !important;
    visibility:visible !important;
}

/* Desktop/tablet */
@media(min-width:601px){
    .fsw-root[data-step="form"] .fsw-label,
    .fsw-root[data-step="wheel"] .fsw-label{
        width:118px !important;
        max-width:118px !important;
        font-size:12px !important;
        line-height:1.04 !important;
        transform:
            translate(-50%,-50%)
            rotate(var(--fsw-label-angle))
            translateY(-143px)
            rotate(calc(var(--fsw-label-angle) * -1)) !important;
    }

    .fsw-root[data-step="form"] .fsw-label-medium,
    .fsw-root[data-step="wheel"] .fsw-label-medium{
        font-size:10.5px !important;
    }

    .fsw-root[data-step="form"] .fsw-label-long,
    .fsw-root[data-step="wheel"] .fsw-label-long{
        font-size:9.2px !important;
    }
}

/* Mobile teaser and active wheel use radius-based positioning */
@media(max-width:600px){
    .fsw-root[data-step="form"] .fsw-label,
    .fsw-root[data-step="wheel"] .fsw-label{
        width:84px !important;
        max-width:84px !important;
        font-size:8.4px !important;
        line-height:1.02 !important;
        transform:
            translate(-50%,-50%)
            rotate(var(--fsw-label-angle))
            translateY(-118px)
            rotate(calc(var(--fsw-label-angle) * -1)) !important;
    }

    .fsw-root[data-step="form"] .fsw-label-medium,
    .fsw-root[data-step="wheel"] .fsw-label-medium{
        font-size:7.6px !important;
    }

    .fsw-root[data-step="form"] .fsw-label-long,
    .fsw-root[data-step="wheel"] .fsw-label-long{
        font-size:6.8px !important;
    }
}

/* Very narrow phones */
@media(max-width:380px){
    .fsw-root[data-step="form"] .fsw-label,
    .fsw-root[data-step="wheel"] .fsw-label{
        width:78px !important;
        max-width:78px !important;
        transform:
            translate(-50%,-50%)
            rotate(var(--fsw-label-angle))
            translateY(-108px)
            rotate(calc(var(--fsw-label-angle) * -1)) !important;
    }
}


/* =========================================================
   v1.8.2 — radial prize labels + smaller desktop heading
   ========================================================= */

/* Smaller main registration headline on desktop only */
@media(min-width:601px){
    .fsw-root[data-step="form"] .fsw-form-headline{
        font-size:32px !important;
        line-height:1 !important;
        max-width:560px !important;
        margin-bottom:18px !important;
    }
}

/* Center circle remains decorative only — no visible text */
.fsw-center{
    color:transparent !important;
    text-shadow:none !important;
    font-size:0 !important;
}
.fsw-center::before,
.fsw-center::after{
    content:none !important;
}

/*
 Prize labels now follow the radial direction of each segment.
 No counter-rotation is used, so every label stays physically attached
 to its wedge during the entire spin.
*/
.fsw-label.fsw-label-radial{
    position:absolute !important;
    left:50% !important;
    top:50% !important;
    width:31% !important;
    max-width:none !important;
    min-height:28px !important;
    padding:0 5px !important;
    margin:0 !important;
    box-sizing:border-box !important;

    display:flex !important;
    align-items:center !important;
    justify-content:flex-end !important;

    text-align:center !important;
    transform-origin:0 50% !important;

    /* Rotate to the center of the wedge and extend outward from hub */
    transform:
        translateY(-50%)
        rotate(calc(var(--fsw-label-angle) - 90deg))
        translateX(70px) !important;

    font-size:11px !important;
    line-height:1.02 !important;
    font-weight:900 !important;
    letter-spacing:-.1px !important;
    white-space:normal !important;
    overflow:visible !important;
    z-index:4 !important;
}

.fsw-label.fsw-label-radial span{
    display:block !important;
    width:100% !important;
    color:inherit !important;
    text-align:center !important;
    overflow-wrap:normal !important;
    word-break:normal !important;
    hyphens:none !important;
}

/* Longer prizes shrink slightly rather than colliding with neighboring wedges */
.fsw-label.fsw-label-radial.fsw-label-medium{
    font-size:9.8px !important;
}
.fsw-label.fsw-label-radial.fsw-label-long{
    font-size:8.7px !important;
    line-height:.98 !important;
}

/* Desktop teaser wheel */
@media(min-width:601px){
    .fsw-root[data-step="form"] .fsw-label.fsw-label-radial{
        width:30% !important;
        transform:
            translateY(-50%)
            rotate(calc(var(--fsw-label-angle) - 90deg))
            translateX(76px) !important;
        font-size:10.5px !important;
    }

    .fsw-root[data-step="form"] .fsw-label.fsw-label-radial.fsw-label-medium{
        font-size:9.4px !important;
    }

    .fsw-root[data-step="form"] .fsw-label.fsw-label-radial.fsw-label-long{
        font-size:8.3px !important;
    }

    /* Full wheel step */
    .fsw-root[data-step="wheel"] .fsw-label.fsw-label-radial{
        width:31% !important;
        transform:
            translateY(-50%)
            rotate(calc(var(--fsw-label-angle) - 90deg))
            translateX(92px) !important;
        font-size:11.5px !important;
    }
}

/* Mobile */
@media(max-width:600px){
    .fsw-root[data-step="form"] .fsw-label.fsw-label-radial,
    .fsw-root[data-step="wheel"] .fsw-label.fsw-label-radial{
        width:30% !important;
        min-height:20px !important;
        padding:0 3px !important;
        transform:
            translateY(-50%)
            rotate(calc(var(--fsw-label-angle) - 90deg))
            translateX(58px) !important;
        font-size:7.8px !important;
        line-height:1 !important;
    }

    .fsw-root[data-step="form"] .fsw-label.fsw-label-radial.fsw-label-medium,
    .fsw-root[data-step="wheel"] .fsw-label.fsw-label-radial.fsw-label-medium{
        font-size:7px !important;
    }

    .fsw-root[data-step="form"] .fsw-label.fsw-label-radial.fsw-label-long,
    .fsw-root[data-step="wheel"] .fsw-label.fsw-label-radial.fsw-label-long{
        font-size:6.3px !important;
    }
}

@media(max-width:380px){
    .fsw-root[data-step="form"] .fsw-label.fsw-label-radial,
    .fsw-root[data-step="wheel"] .fsw-label.fsw-label-radial{
        transform:
            translateY(-50%)
            rotate(calc(var(--fsw-label-angle) - 90deg))
            translateX(52px) !important;
    }
}


/* =========================================================
   v1.8.3 — result close placement + richer wheel details
   ========================================================= */

/* Default close remains small */
.fsw-popup-mode button.fsw-close{
    width:27px !important;
    min-width:27px !important;
    max-width:27px !important;
    height:27px !important;
    min-height:27px !important;
    max-height:27px !important;
    font-size:17px !important;
    line-height:27px !important;
}

/* STEP 3: move X inside the top-right corner of congratulations card */
.fsw-root[data-step="result"] button.fsw-close{
    position:fixed !important;
    top:auto !important;
    right:auto !important;
    /* JS-independent positioning relative to centered result composition */
    left:calc(50% + min(250px, 43vw) - 38px) !important;
    margin-top:18px !important;
    z-index:30 !important;
    background:#f4f0ff !important;
}

/* Wheel gets a second inner ring for depth */
.fsw-wheel::after{
    content:"" !important;
    position:absolute !important;
    inset:7.5% !important;
    border-radius:50% !important;
    border:2px solid rgba(255,255,255,.28) !important;
    box-shadow:
        inset 0 0 0 2px rgba(117,22,126,.12),
        0 0 0 1px rgba(255,255,255,.12) !important;
    pointer-events:none !important;
    z-index:2 !important;
}

/* Decorative gold pins at every segment boundary */
.fsw-pins{
    position:absolute !important;
    inset:0 !important;
    border-radius:50% !important;
    z-index:5 !important;
    pointer-events:none !important;
}
.fsw-pins i{
    position:absolute !important;
    left:50% !important;
    top:50% !important;
    width:10px !important;
    height:10px !important;
    margin:-5px 0 0 -5px !important;
    border-radius:50% !important;
    background:linear-gradient(145deg,#fff0a8,#d99022) !important;
    border:1px solid rgba(111,50,7,.65) !important;
    box-shadow:
        0 1px 2px rgba(55,12,62,.38),
        inset 0 1px 1px rgba(255,255,255,.75) !important;
    transform:
        rotate(var(--fsw-pin-angle))
        translateY(calc(var(--fsw-size) * -0.405)) !important;
    transform-origin:center center !important;
}

/* Center hub: decorative jewel instead of empty flat circle */
.fsw-center{
    overflow:visible !important;
    background:
        radial-gradient(circle at 38% 32%, rgba(255,255,255,.16) 0 7%, transparent 8%),
        radial-gradient(circle at center, #9b3158 0 54%, #84203f 55% 100%) !important;
    box-shadow:
        0 0 0 5px #ffd18a,
        0 0 0 9px #7d2545,
        inset 0 4px 10px rgba(255,255,255,.13),
        inset 0 -5px 10px rgba(72,9,37,.25) !important;
}
.fsw-center:before{
    content:"★" !important;
    display:block !important;
    position:absolute !important;
    inset:0 !important;
    color:#ffd98c !important;
    font-size:27px !important;
    line-height:1 !important;
    height:27px !important;
    width:27px !important;
    margin:auto !important;
    text-align:center !important;
    opacity:.95 !important;
    text-shadow:0 2px 2px rgba(74,12,40,.35) !important;
}

/* Mobile pin position uses actual mobile wheel radius */
@media(max-width:600px){
    .fsw-pins i{
        width:8px !important;
        height:8px !important;
        margin:-4px 0 0 -4px !important;
        transform:
            rotate(var(--fsw-pin-angle))
            translateY(calc(var(--fsw-mobile-size) * -0.405)) !important;
    }

    .fsw-center:before{
        font-size:22px !important;
        width:22px !important;
        height:22px !important;
    }

    .fsw-root[data-step="result"] button.fsw-close{
        left:auto !important;
        right:calc(50% - min(46vw, 210px) + 12px) !important;
        margin-top:14px !important;
    }
}


/* v1.8.4 — ONLY result-screen close button placement */
.fsw-root[data-step="result"] button.fsw-close{
    position:absolute !important;
    top:calc(50% - 148px) !important;
    right:calc(50% - 238px) !important;
    left:auto !important;
    margin:0 !important;
    width:27px !important;
    min-width:27px !important;
    max-width:27px !important;
    height:27px !important;
    min-height:27px !important;
    max-height:27px !important;
    line-height:27px !important;
    z-index:50 !important;
}

@media(max-width:600px){
    .fsw-root[data-step="result"] button.fsw-close{
        top:calc(50% - 102px) !important;
        right:calc(50% - 143px) !important;
        left:auto !important;
        margin:0 !important;
        width:24px !important;
        min-width:24px !important;
        max-width:24px !important;
        height:24px !important;
        min-height:24px !important;
        max-height:24px !important;
        line-height:24px !important;
        font-size:15px !important;
    }
}


/* =========================================================
   v1.8.5 — requested micro-adjustments only
   ========================================================= */

/* Result X: same size, only a LITTLE lower and left than v1.8.4 */
.fsw-root[data-step="result"] button.fsw-close{
    transform:translate(-6px, 6px) !important;
}

/* Prize text size is now controlled from:
   Spin Wheel > Design > Prize text size (px)
   Default 12px is slightly larger than before. */
.fsw-label.fsw-label-radial{
    font-size:var(--fsw-prize-text-size, 12px) !important;
}
.fsw-label.fsw-label-radial.fsw-label-medium{
    font-size:calc(var(--fsw-prize-text-size, 12px) * .90) !important;
}
.fsw-label.fsw-label-radial.fsw-label-long{
    font-size:calc(var(--fsw-prize-text-size, 12px) * .80) !important;
}

/* Mobile automatically scales the selected desktop size */
@media(max-width:600px){
    .fsw-label.fsw-label-radial{
        font-size:calc(var(--fsw-prize-text-size, 12px) * .72) !important;
    }
    .fsw-label.fsw-label-radial.fsw-label-medium{
        font-size:calc(var(--fsw-prize-text-size, 12px) * .64) !important;
    }
    .fsw-label.fsw-label-radial.fsw-label-long{
        font-size:calc(var(--fsw-prize-text-size, 12px) * .56) !important;
    }
}


/* =========================================================
   v1.8.6 — authoritative prize text size control
   JavaScript now applies the saved px value directly to each label.
   These rules keep layout only; they no longer decide final font size.
   ========================================================= */
.fsw-label.fsw-label-radial,
.fsw-label.fsw-label-radial.fsw-label-medium,
.fsw-label.fsw-label-radial.fsw-label-long{
    /* final font-size is applied inline by frontend.js */
}


/* v1.8.7 — mobile only: move the whole starting composition slightly lower */
@media(max-width:600px){
    .fsw-root[data-step="form"] .fsw-stage{
        padding-top:58px !important;
    }
}


/* v1.8.8 — MOBILE ONLY: smaller headline + lower Spin button */
@media(max-width:600px){
    .fsw-root[data-step="form"] .fsw-form-headline{
        font-size:21px !important;
        line-height:1.02 !important;
    }

    .fsw-root[data-step="form"] .fsw-submit{
        margin-top:16px !important;
    }
}


/* v1.8.9 — MOBILE ONLY: close button slightly smaller and lower */
@media(max-width:600px){
    .fsw-popup-mode button.fsw-close{
        top:25px !important;
        width:22px !important;
        min-width:22px !important;
        max-width:22px !important;
        height:22px !important;
        min-height:22px !important;
        max-height:22px !important;
        line-height:22px !important;
        font-size:14px !important;
        border-radius:7px !important;
    }
}


/* =========================================================
   v1.9.0 — global wheel colors + white email field
   ========================================================= */

/* User-requested rule: keep the email input white regardless of theme styles */
.fsw-form input[type="email"] {
    background: #ffffff !important;
}

/* Also prevent theme gradients/images from overriding the white field */
.fsw-form input[type="email"] {
    background-color: #ffffff !important;
    background-image: none !important;
}


/* =========================================================
   v1.9.1 — requested wheel design cleanup only
   ========================================================= */

/* Remove the decorative gold dots/pins completely */
.fsw-pins{
    display:none !important;
}

/* Remove the extra gray decorative line inside the wheel */
.fsw-wheel::after{
    display:none !important;
    content:none !important;
}

/* The two main wheel ring colors are now editable in WordPress > Design */
.fsw-wheel{
    border-color:var(--fsw-wheel-inner-ring, #f46be6) !important;
    box-shadow:
        0 0 0 10px var(--fsw-wheel-outer-ring, #9b1696),
        0 20px 55px rgba(68,3,77,.35) !important;
}

/* Keep the same mobile sizing/shadow thickness as before */
@media(max-width:600px){
    .fsw-wheel{
        box-shadow:
            0 0 0 7px var(--fsw-wheel-outer-ring, #9b1696),
            0 18px 38px rgba(68,3,77,.28) !important;
    }
}


/* =========================================================
   v2.0.0 — phone + country calling code
   ========================================================= */
.fsw-input-wrap:has(.fsw-phone-field){
    margin-bottom:14px !important;
}

.fsw-phone-field{
    display:grid;
    grid-template-columns:132px minmax(0,1fr);
    width:100%;
    border:1px solid #e3e4ef;
    border-radius:20px;
    background:#fff;
    overflow:hidden;
    box-sizing:border-box;
    transition:border-color .2s ease, box-shadow .2s ease;
}

.fsw-phone-field:focus-within{
    border-color:var(--fsw-primary);
    box-shadow:0 0 0 3px color-mix(in srgb,var(--fsw-primary) 16%,transparent);
}

.fsw-phone-country{
    width:100% !important;
    min-width:0 !important;
    border:0 !important;
    border-right:1px solid #e3e4ef !important;
    border-radius:0 !important;
    background:#fff !important;
    padding:0 10px !important;
    color:#35354b !important;
    font-size:15px !important;
    outline:none !important;
    box-shadow:none !important;
    cursor:pointer;
}

.fsw-phone-number{
    width:100% !important;
    min-width:0 !important;
    border:0 !important;
    border-radius:0 !important;
    background:#fff !important;
    background-image:none !important;
    padding:17px 16px !important;
    color:#35354b !important;
    font-size:17px !important;
    outline:none !important;
    box-shadow:none !important;
}

@media(max-width:600px){
    .fsw-phone-field{
        grid-template-columns:112px minmax(0,1fr);
        border-radius:18px;
    }
    .fsw-phone-country{
        font-size:13px !important;
        padding:0 7px !important;
    }
    .fsw-phone-number{
        font-size:15px !important;
        padding:14px 12px !important;
    }
}


/* =========================================================
   v2.0.1 — compact phone field design
   Reference style: [flag + code ▾] | [00 000 00 00]
   ========================================================= */

.fsw-phone-field{
    display:grid !important;
    grid-template-columns:118px minmax(0,1fr) !important;
    min-height:56px !important;
    border:1px solid #e1e4ee !important;
    border-radius:18px !important;
    background:#fff !important;
    overflow:hidden !important;
}

.fsw-phone-code{
    position:relative !important;
    display:flex !important;
    align-items:center !important;
    gap:7px !important;
    min-width:0 !important;
    padding:0 12px !important;
    background:#fff !important;
    border-right:1px solid #e1e4ee !important;
    box-sizing:border-box !important;
}

.fsw-phone-flag{
    display:block !important;
    flex:0 0 20px !important;
    width:20px !important;
    height:15px !important;
    border-radius:2px !important;
    background-size:cover !important;
    background-position:center !important;
    background-repeat:no-repeat !important;
    box-shadow:0 0 0 1px rgba(0,0,0,.08) !important;
}

.fsw-phone-code-text{
    flex:0 0 auto !important;
    color:#15204a !important;
    font-size:15px !important;
    font-weight:700 !important;
    line-height:1 !important;
    white-space:nowrap !important;
}

.fsw-phone-arrow{
    width:7px !important;
    height:7px !important;
    margin-left:auto !important;
    border-right:2px solid #9aa1b4 !important;
    border-bottom:2px solid #9aa1b4 !important;
    transform:rotate(45deg) translateY(-2px) !important;
    box-sizing:border-box !important;
}

/* Native select remains functional but is visually transparent over custom UI */
.fsw-phone-country{
    position:absolute !important;
    inset:0 !important;
    width:100% !important;
    height:100% !important;
    opacity:0 !important;
    cursor:pointer !important;
    z-index:3 !important;
    padding:0 !important;
    margin:0 !important;
}

.fsw-phone-number{
    width:100% !important;
    height:100% !important;
    min-width:0 !important;
    border:0 !important;
    border-radius:0 !important;
    background:#fff !important;
    background-image:none !important;
    padding:0 14px !important;
    color:#30384c !important;
    font-size:16px !important;
    line-height:56px !important;
    outline:none !important;
    box-shadow:none !important;
}

.fsw-phone-number::placeholder{
    color:#7e8492 !important;
    opacity:1 !important;
}

.fsw-phone-field:focus-within{
    border-color:var(--fsw-primary) !important;
    box-shadow:0 0 0 2px color-mix(in srgb,var(--fsw-primary) 15%,transparent) !important;
}

/* Mobile keeps same compact visual */
@media(max-width:600px){
    .fsw-phone-field{
        grid-template-columns:108px minmax(0,1fr) !important;
        min-height:52px !important;
        border-radius:17px !important;
    }

    .fsw-phone-code{
        gap:6px !important;
        padding:0 10px !important;
    }

    .fsw-phone-flag{
        flex-basis:18px !important;
        width:18px !important;
        height:13px !important;
    }

    .fsw-phone-code-text{
        font-size:14px !important;
    }

    .fsw-phone-number{
        padding:0 12px !important;
        font-size:15px !important;
        line-height:52px !important;
    }
}


/* v2.0.3 — custom flag + dialing-code dropdown */
.fsw-phone-code{
    position:relative !important;
    padding:0 !important;
}

.fsw-phone-trigger{
    width:100% !important;
    height:100% !important;
    min-height:56px !important;
    padding:0 12px !important;
    margin:0 !important;
    border:0 !important;
    border-radius:0 !important;
    background:#fff !important;
    display:flex !important;
    align-items:center !important;
    gap:7px !important;
    cursor:pointer !important;
    box-shadow:none !important;
    color:#15204a !important;
}

.fsw-phone-trigger:focus{ outline:none !important; }

.fsw-phone-country{
    position:absolute !important;
    width:1px !important;
    height:1px !important;
    opacity:0 !important;
    pointer-events:none !important;
    overflow:hidden !important;
}

.fsw-phone-dropdown{
    position:absolute !important;
    top:calc(100% + 6px) !important;
    left:0 !important;
    width:150px !important;
    max-height:260px !important;
    overflow-y:auto !important;
    padding:6px !important;
    margin:0 !important;
    background:#fff !important;
    border:1px solid #e1e4ee !important;
    border-radius:12px !important;
    box-shadow:0 14px 35px rgba(29,31,55,.18) !important;
    z-index:9999999 !important;
    box-sizing:border-box !important;
}

.fsw-phone-dropdown[hidden]{ display:none !important; }

.fsw-phone-option{
    width:100% !important;
    min-height:40px !important;
    margin:0 !important;
    padding:7px 9px !important;
    border:0 !important;
    border-radius:8px !important;
    background:#fff !important;
    display:flex !important;
    align-items:center !important;
    gap:9px !important;
    color:#15204a !important;
    cursor:pointer !important;
    text-align:left !important;
    box-shadow:none !important;
}

.fsw-phone-option:hover,
.fsw-phone-option:focus{
    background:#f4f6fb !important;
    outline:none !important;
}

.fsw-phone-option.is-selected{ background:#eef1f9 !important; }

.fsw-phone-option-flag{
    flex:0 0 22px !important;
    width:22px !important;
    height:16px !important;
    border-radius:2px !important;
    background-size:cover !important;
    background-position:center !important;
    background-repeat:no-repeat !important;
    box-shadow:0 0 0 1px rgba(0,0,0,.08) !important;
}

.fsw-phone-option-code{
    font-size:15px !important;
    font-weight:700 !important;
    line-height:1 !important;
    white-space:nowrap !important;
}

.fsw-phone-field.is-open{ overflow:visible !important; }

@media(max-width:600px){
    .fsw-phone-trigger{
        min-height:52px !important;
        padding:0 10px !important;
        gap:6px !important;
    }

    .fsw-phone-dropdown{
        width:142px !important;
        max-height:230px !important;
    }

    .fsw-phone-option{
        min-height:38px !important;
        padding:6px 8px !important;
    }

    .fsw-phone-option-flag{
        flex-basis:20px !important;
        width:20px !important;
        height:15px !important;
    }

    .fsw-phone-option-code{
        font-size:14px !important;
    }
}
