/* =========================================================
   ETM AI CONCIERGE — PREMIUM FRONT-END UI
   v0.4.0
   ========================================================= */

#etm-aic-root,
#etm-aic-root *{
    box-sizing:border-box;
}

#etm-aic-root{
    --etm-accent:#D2A87C;
    --etm-ink:#292725;
    --etm-ivory:#F7F3ED;
    --etm-taupe:#8B8178;
    --etm-border:rgba(210,168,124,.30);

    font-family:Manrope,Arial,sans-serif;
    position:relative;
    z-index:2147483000;
}

/* Remove browser/theme blue tap and focus styling. */
#etm-aic-root button,
#etm-aic-root a,
#etm-aic-root textarea{
    -webkit-tap-highlight-color:transparent !important;
}

#etm-aic-root button,
#etm-aic-root a{
    -webkit-appearance:none;
    appearance:none;
}

#etm-aic-root button:focus,
#etm-aic-root a:focus,
#etm-aic-root textarea:focus{
    outline:none !important;
}

/* Accessible ETM / sand focus instead of browser blue. */
#etm-aic-root button:focus-visible,
#etm-aic-root a:focus-visible,
#etm-aic-root textarea:focus-visible{
    outline:1px solid var(--etm-accent) !important;
    outline-offset:2px !important;
}

/* =========================================================
   LAUNCHER
   ========================================================= */

.etm-aic-launcher{
    position:fixed;
    right:26px;
    bottom:26px;
    width:66px;
    height:66px;
    padding:0 !important;
    border:1px solid rgba(255,255,255,.10) !important;
    border-radius:50% !important;
    background:var(--etm-ink) !important;
    color:#fff !important;
    box-shadow:0 18px 55px rgba(25,23,21,.24) !important;
    cursor:pointer;
    display:grid;
    place-items:center;
    transition:
        transform .28s cubic-bezier(.2,.7,.2,1),
        box-shadow .28s ease,
        border-color .28s ease;
}

.etm-aic-launcher:hover,
.etm-aic-launcher:focus,
.etm-aic-launcher:active{
    background:var(--etm-ink) !important;
    color:#fff !important;
    border-color:rgba(210,168,124,.50) !important;
}

.etm-aic-launcher:hover{
    transform:translateY(-3px);
    box-shadow:0 23px 65px rgba(25,23,21,.29) !important;
}

.etm-aic-launcher:active{
    transform:translateY(-1px) scale(.97);
}

.etm-aic-launcher:focus-visible{
    outline:2px solid var(--etm-accent) !important;
    outline-offset:4px !important;
}

.etm-aic-launcher-mark{
    position:absolute;
    bottom:10px;
    font-size:7px;
    font-weight:600;
    letter-spacing:.18em;
    color:#ded6cd;
}

.etm-aic-launcher-icon{
    font-family:Georgia,serif;
    font-size:24px;
    line-height:1;
    transform:translateY(-6px);
    color:var(--etm-accent);
}

/* =========================================================
   PROACTIVE GREETING
   ========================================================= */

.etm-aic-nudge{
    position:fixed;
    right:26px;
    bottom:108px;
    width:min(365px,calc(100vw - 52px));
    padding:20px 48px 20px 20px;
    background:rgba(247,243,237,.975);
    border:1px solid var(--etm-border);
    border-radius:16px;
    box-shadow:0 24px 70px rgba(41,39,37,.14);
    -webkit-backdrop-filter:blur(16px);
    backdrop-filter:blur(16px);
    opacity:0;
    visibility:hidden;
    transform:translateY(10px) scale(.985);
    transform-origin:bottom right;
    transition:.32s cubic-bezier(.2,.7,.2,1);
    cursor:pointer;
}

.etm-aic-nudge.is-visible{
    opacity:1;
    visibility:visible;
    transform:none;
}

.etm-aic-nudge strong{
    display:block;
    font-family:"Cormorant Garamond",Georgia,serif;
    font-weight:500;
    font-size:22px;
    line-height:1.13;
    color:var(--etm-ink);
}

.etm-aic-nudge span{
    display:block;
    margin-top:8px;
    font-size:11.5px;
    line-height:1.55;
    color:#756f68;
}

.etm-aic-nudge-close{
    position:absolute;
    right:11px;
    top:9px;
    width:30px;
    height:30px;
    padding:0 !important;
    border:0 !important;
    border-radius:50% !important;
    background:transparent !important;
    color:#837b73 !important;
    font-size:20px;
    line-height:1;
    cursor:pointer;
}

.etm-aic-nudge-close:hover,
.etm-aic-nudge-close:active,
.etm-aic-nudge-close:focus{
    background:rgba(210,168,124,.10) !important;
    color:var(--etm-ink) !important;
}

/* =========================================================
   MAIN CHAT PANEL — WIDER / LESS NARROW
   ========================================================= */

.etm-aic-panel{
    position:fixed;
    right:26px;
    bottom:108px;

    /* Wider than earlier versions for more natural conversations. */
    width:min(475px,calc(100vw - 52px));
    height:min(720px,calc(100vh - 145px));

    background:rgba(255,255,255,.992);
    border:1px solid var(--etm-border);
    border-radius:20px;
    box-shadow:0 32px 100px rgba(31,28,25,.20);
    display:flex;
    flex-direction:column;
    isolation:isolate;

    opacity:0;
    visibility:hidden;
    transform:translateY(18px) scale(.982);
    transform-origin:bottom right;
    transition:.30s cubic-bezier(.2,.7,.2,1);
    overflow:hidden;
}

.etm-aic-panel.is-open{
    opacity:1;
    visibility:visible;
    transform:none;
}

/* =========================================================
   HEADER
   ========================================================= */

.etm-aic-head{
    flex:none;
    min-height:100px;
    padding:21px 24px 20px;
    background:linear-gradient(180deg,#FAF7F2 0%,var(--etm-ivory) 100%);
    border-bottom:1px solid rgba(210,168,124,.28);
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:22px;
}

.etm-aic-head > div{
    min-width:0;
}

.etm-aic-head small{
    display:block;
    margin-bottom:8px;
    color:var(--etm-taupe);
    font-size:7px;
    font-weight:700;
    letter-spacing:.21em;
    line-height:1;
    text-transform:uppercase;
}

.etm-aic-head strong{
    display:block;
    max-width:360px;
    color:var(--etm-ink);
    font-family:"Cormorant Garamond",Georgia,serif;
    font-size:27px;
    font-weight:500;
    line-height:1.05;
    letter-spacing:-.015em;
}

.etm-aic-close{
    flex:none;
    width:42px;
    height:42px;
    padding:0 !important;
    border:1px solid rgba(210,168,124,.12) !important;
    border-radius:12px !important;
    background:rgba(255,255,255,.22) !important;
    color:#746d66 !important;
    font-size:25px;
    font-weight:300;
    line-height:1;
    cursor:pointer;
    transition:background .2s ease,color .2s ease,border-color .2s ease;
}

.etm-aic-close:hover,
.etm-aic-close:focus,
.etm-aic-close:active{
    background:rgba(210,168,124,.10) !important;
    border-color:rgba(210,168,124,.35) !important;
    color:var(--etm-ink) !important;
}

/* =========================================================
   CONVERSATION
   ========================================================= */

.etm-aic-messages{
    flex:1 1 auto;
    min-height:0;
    overflow-y:auto;
    overflow-x:hidden;
    padding:24px 22px 20px;
    background:
        radial-gradient(circle at 10% 0%,rgba(210,168,124,.045),transparent 34%),
        linear-gradient(180deg,#fff 0%,#FDFBF8 100%);
    scroll-behavior:smooth;
    scrollbar-width:thin;
    scrollbar-color:rgba(139,129,120,.42) transparent;
}

.etm-aic-messages::-webkit-scrollbar{
    width:7px;
}

.etm-aic-messages::-webkit-scrollbar-track{
    background:transparent;
}

.etm-aic-messages::-webkit-scrollbar-thumb{
    background:rgba(139,129,120,.36);
    border-radius:999px;
    border:2px solid transparent;
    background-clip:padding-box;
}

.etm-aic-msg{
    width:fit-content;
    max-width:92%;
    margin:0 0 15px;
    padding:14px 16px;
    font-size:13px;
    line-height:1.64;
    white-space:pre-wrap;
    overflow-wrap:anywhere;
}

.etm-aic-msg.assistant{
    background:rgba(247,243,237,.96);
    color:var(--etm-ink);
    border:1px solid rgba(210,168,124,.24);
    border-radius:4px 16px 16px 16px;
    box-shadow:0 6px 22px rgba(41,39,37,.025);
}

.etm-aic-msg.user{
    max-width:86%;
    margin-left:auto;
    background:var(--etm-ink);
    color:#fff;
    border:1px solid var(--etm-ink);
    border-radius:16px 4px 16px 16px;
}

.etm-aic-typing{
    display:inline-flex;
    gap:5px;
    align-items:center;
    min-height:12px;
}

.etm-aic-typing i{
    width:5px;
    height:5px;
    border-radius:50%;
    background:#9b9288;
    animation:etm-dot 1.1s infinite;
}

.etm-aic-typing i:nth-child(2){animation-delay:.15s}
.etm-aic-typing i:nth-child(3){animation-delay:.3s}

@keyframes etm-dot{
    0%,80%,100%{opacity:.3;transform:translateY(0)}
    40%{opacity:1;transform:translateY(-3px)}
}

/* CTA inside assistant reply */
.etm-aic-cta{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    margin-top:12px;
    min-height:38px;
    padding:10px 14px;
    border:1px solid var(--etm-accent) !important;
    border-radius:7px;
    background:rgba(255,255,255,.82) !important;
    color:var(--etm-ink) !important;
    text-decoration:none !important;
    font-size:8px;
    font-weight:700;
    letter-spacing:.14em;
    text-transform:uppercase;
    transition:background .2s ease,color .2s ease,transform .2s ease;
}

.etm-aic-cta:hover,
.etm-aic-cta:focus{
    background:var(--etm-accent) !important;
    color:var(--etm-ink) !important;
}

.etm-aic-cta:active{
    background:var(--etm-accent) !important;
    color:var(--etm-ink) !important;
    transform:translateY(1px);
}

/* =========================================================
   QUICK ACTIONS
   ========================================================= */

.etm-aic-quick{
    flex:none;
    padding:13px 18px;
    display:flex;
    gap:8px;
    overflow-x:auto;
    background:#FDFBF8;
    border-top:1px solid rgba(235,230,224,.78);
    scrollbar-width:none;
}

.etm-aic-quick::-webkit-scrollbar{
    display:none;
}

.etm-aic-quick button{
    flex:none;
    min-height:36px;
    padding:9px 12px !important;
    border:1px solid #DDD5CC !important;
    border-radius:8px !important;
    background:#fff !important;
    color:#504B46 !important;
    box-shadow:none !important;
    font-family:Manrope,Arial,sans-serif !important;
    font-size:8px !important;
    font-weight:600 !important;
    line-height:1 !important;
    letter-spacing:.10em !important;
    text-transform:uppercase;
    cursor:pointer;
    transition:background .2s ease,border-color .2s ease,color .2s ease,transform .2s ease;
}

.etm-aic-quick button:hover,
.etm-aic-quick button:focus{
    background:var(--etm-ivory) !important;
    border-color:var(--etm-accent) !important;
    color:var(--etm-ink) !important;
}

.etm-aic-quick button:active{
    background:rgba(210,168,124,.18) !important;
    border-color:var(--etm-accent) !important;
    color:var(--etm-ink) !important;
    transform:translateY(1px);
}

/* =========================================================
   MESSAGE COMPOSER
   ========================================================= */

.etm-aic-form{
    flex:none;
    display:flex;
    align-items:flex-end;
    gap:10px;
    padding:13px 15px 13px 18px;
    border-top:1px solid #EBE6E0;
    background:#fff;
}

.etm-aic-form textarea{
    flex:1 1 auto;
    width:100%;
    resize:none;
    max-height:120px;
    min-height:44px;
    margin:0 !important;
    padding:11px 7px !important;
    border:0 !important;
    border-radius:0 !important;
    outline:0 !important;
    box-shadow:none !important;
    background:transparent !important;
    color:var(--etm-ink) !important;
    caret-color:var(--etm-accent);
    font:13px/1.48 Manrope,Arial,sans-serif !important;
}

.etm-aic-form textarea::placeholder{
    color:#A69E96;
    opacity:1;
}

.etm-aic-form textarea:focus,
.etm-aic-form textarea:active{
    border:0 !important;
    outline:0 !important;
    box-shadow:none !important;
    background:transparent !important;
}

.etm-aic-form button{
    flex:none;
    width:48px;
    height:48px;
    padding:0 !important;
    border:1px solid var(--etm-accent) !important;
    border-radius:10px !important;
    background:var(--etm-accent) !important;
    color:var(--etm-ink) !important;
    box-shadow:none !important;
    font-family:Georgia,serif !important;
    font-size:19px !important;
    line-height:1 !important;
    cursor:pointer;
    transition:transform .2s ease,background .2s ease,color .2s ease;
}

.etm-aic-form button:hover,
.etm-aic-form button:focus,
.etm-aic-form button:active{
    background:var(--etm-accent) !important;
    color:var(--etm-ink) !important;
    border-color:var(--etm-accent) !important;
}

.etm-aic-form button:hover{
    transform:translateY(-1px);
}

.etm-aic-form button:active{
    transform:scale(.97);
}

/* =========================================================
   FOOTER
   ========================================================= */

.etm-aic-panel footer{
    flex:none;
    padding:9px 16px 10px;
    text-align:center;
    background:#fff;
    border-top:1px solid #F3EEE9;
    color:#A39A91;
    font-size:7px;
    letter-spacing:.14em;
    text-transform:uppercase;
}

.etm-aic-panel footer strong{
    color:#6C655E;
}

/* =========================================================
   LAPTOP / SMALL DESKTOP
   ========================================================= */

@media(max-width:1280px){
    .etm-aic-panel{
        width:min(455px,calc(100vw - 44px));
        right:22px;
        bottom:102px;
        height:min(700px,calc(100vh - 128px));
    }

    .etm-aic-launcher{
        right:22px;
        bottom:22px;
    }

    .etm-aic-nudge{
        right:22px;
        bottom:102px;
    }
}

/* =========================================================
   MOBILE
   ========================================================= */

@media(max-width:600px){
    .etm-aic-launcher{
        right:16px;
        bottom:16px;
        width:60px;
        height:60px;
    }

    .etm-aic-nudge{
        right:12px;
        bottom:88px;
        width:calc(100vw - 24px);
        border-radius:15px;
    }

    .etm-aic-panel{
        right:8px;
        bottom:84px;
        width:calc(100vw - 16px);
        height:min(720px,calc(100svh - 94px));
        border-radius:17px;
    }

    .etm-aic-head{
        min-height:88px;
        padding:18px 17px;
    }

    .etm-aic-head strong{
        font-size:23px;
    }

    .etm-aic-close{
        width:38px;
        height:38px;
    }

    .etm-aic-messages{
        padding:18px 15px 16px;
    }

    .etm-aic-msg{
        max-width:94%;
        padding:13px 14px;
        font-size:12.5px;
    }

    .etm-aic-msg.user{
        max-width:90%;
    }

    .etm-aic-quick{
        padding:11px 13px;
    }

    .etm-aic-form{
        padding:11px 12px 11px 14px;
    }

    .etm-aic-form button{
        width:46px;
        height:46px;
    }
}

@media(max-width:380px){
    .etm-aic-panel{
        right:5px;
        width:calc(100vw - 10px);
    }

    .etm-aic-head strong{
        font-size:21px;
    }
}

/* =========================================================
   REDUCED MOTION
   ========================================================= */

@media(prefers-reduced-motion:reduce){
    .etm-aic-launcher,
    .etm-aic-nudge,
    .etm-aic-panel,
    .etm-aic-cta,
    .etm-aic-quick button,
    .etm-aic-form button{
        transition:none !important;
    }

    .etm-aic-typing i{
        animation:none !important;
    }
}


/* =========================================================
   LEAD CAPTURE — ETM v0.2
   ========================================================= */

.etm-aic-lead[hidden]{
    display:none !important;
}

.etm-aic-lead{
    flex:none;
    margin:0;
    padding:17px 18px 16px;
    background:linear-gradient(180deg,#FBF7F2 0%,#F7F3ED 100%);
    border-top:1px solid rgba(210,168,124,.28);
    border-bottom:1px solid rgba(210,168,124,.24);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.7);
}

.etm-aic-lead-head strong{
    display:block;
    color:var(--etm-ink);
    font-family:"Cormorant Garamond",Georgia,serif;
    font-size:20px;
    font-weight:500;
    line-height:1.12;
}

.etm-aic-lead-head span{
    display:block;
    margin-top:5px;
    color:#746d66;
    font-size:10.5px;
    line-height:1.5;
}

.etm-aic-lead-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
    margin-top:12px;
}

.etm-aic-lead input,
.etm-aic-lead select{
    width:100%;
    min-height:38px;
    margin:0 !important;
    padding:8px 10px !important;
    border:1px solid #DED4CA !important;
    border-radius:7px !important;
    background:#fff !important;
    color:var(--etm-ink) !important;
    box-shadow:none !important;
    outline:none !important;
    font:10.5px/1.3 Manrope,Arial,sans-serif !important;
}

.etm-aic-lead input:focus,
.etm-aic-lead select:focus{
    border-color:var(--etm-accent) !important;
    box-shadow:0 0 0 1px rgba(210,168,124,.18) !important;
}

.etm-aic-hp{
    position:absolute !important;
    left:-9999px !important;
    width:1px !important;
    height:1px !important;
    opacity:0 !important;
    pointer-events:none !important;
}

.etm-aic-marketing{
    display:flex;
    align-items:flex-start;
    gap:8px;
    margin-top:11px;
    color:#5f5953;
    font-size:9.5px;
    line-height:1.45;
    cursor:pointer;
}

.etm-aic-marketing input{
    flex:none;
    width:14px !important;
    height:14px !important;
    min-height:0 !important;
    margin-top:1px !important;
    accent-color:var(--etm-accent);
}

.etm-aic-lead-note{
    margin:8px 0 0;
    color:#8b8178;
    font-size:8.5px;
    line-height:1.45;
}

.etm-aic-lead-actions{
    display:flex;
    align-items:center;
    gap:8px;
    margin-top:12px;
}

.etm-aic-lead-actions button{
    min-height:36px;
    padding:9px 13px !important;
    border-radius:7px !important;
    font:700 8px/1 Manrope,Arial,sans-serif !important;
    letter-spacing:.11em !important;
    text-transform:uppercase;
    cursor:pointer;
    box-shadow:none !important;
}

.etm-aic-lead-actions button[type="submit"]{
    border:1px solid var(--etm-accent) !important;
    background:var(--etm-accent) !important;
    color:var(--etm-ink) !important;
}

.etm-aic-lead-skip{
    border:1px solid #DED4CA !important;
    background:#fff !important;
    color:#6f675f !important;
}

.etm-aic-lead-error{
    min-height:0;
    margin-top:8px;
    color:#9b3d32;
    font-size:9px;
    line-height:1.4;
}

/* =========================================================
   FOOTER / NEW CONVERSATION
   ========================================================= */

.etm-aic-panel footer{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    text-align:left;
}

.etm-aic-panel footer > span{
    margin-left:auto;
}

.etm-aic-new{
    padding:0 !important;
    border:0 !important;
    background:transparent !important;
    color:#8f867d !important;
    box-shadow:none !important;
    font:600 7px/1 Manrope,Arial,sans-serif !important;
    letter-spacing:.12em !important;
    text-transform:uppercase;
    cursor:pointer;
}

.etm-aic-new:hover,
.etm-aic-new:focus,
.etm-aic-new:active{
    background:transparent !important;
    color:var(--etm-ink) !important;
}

@media(max-width:600px){
    .etm-aic-lead-grid{
        grid-template-columns:1fr;
    }

    .etm-aic-lead{
        padding:14px 14px 13px;
    }

    .etm-aic-lead-head strong{
        font-size:18px;
    }
}


/* =========================================================
   ETM v0.3.2 — ACTIVE GUEST / PRIVACY CONTROLS
   ========================================================= */
.etm-aic-footer-actions{
    display:flex;
    align-items:center;
    gap:10px;
    flex-wrap:wrap;
}
.etm-aic-clear-guest{
    appearance:none;
    border:0 !important;
    background:transparent !important;
    color:#9b9289 !important;
    padding:0 !important;
    box-shadow:none !important;
    outline:none !important;
    font:600 7px/1.2 Manrope,Arial,sans-serif !important;
    letter-spacing:.09em;
    text-transform:uppercase;
    cursor:pointer;
}
.etm-aic-clear-guest:hover,
.etm-aic-clear-guest:focus,
.etm-aic-clear-guest:active{
    color:var(--etm-accent) !important;
    background:transparent !important;
    box-shadow:none !important;
}


/* =========================================================
   v0.5.2 — VIEWPORT POSITIONING HARDENING
   Prevent page-specific Elementor/custom CSS from moving
   the concierge panel to the left side of the viewport.
   ========================================================= */

#etm-aic-root > .etm-aic-panel{
    left:auto !important;
    right:26px !important;
    margin-left:0 !important;
    margin-right:0 !important;
}

#etm-aic-root > .etm-aic-launcher{
    left:auto !important;
    right:26px !important;
}

#etm-aic-root > .etm-aic-nudge{
    left:auto !important;
    right:26px !important;
}

@media(max-width:1280px){
    #etm-aic-root > .etm-aic-panel,
    #etm-aic-root > .etm-aic-launcher,
    #etm-aic-root > .etm-aic-nudge{
        left:auto !important;
        right:22px !important;
    }
}

@media(max-width:600px){
    #etm-aic-root > .etm-aic-panel{
        left:auto !important;
        right:8px !important;
    }

    #etm-aic-root > .etm-aic-launcher{
        left:auto !important;
        right:16px !important;
    }

    #etm-aic-root > .etm-aic-nudge{
        left:auto !important;
        right:12px !important;
    }
}

@media(max-width:380px){
    #etm-aic-root > .etm-aic-panel{
        left:auto !important;
        right:5px !important;
    }
}


/* =========================================================
   v0.5.3 — FULL VIEWPORT ISOLATION
   The entire concierge now lives inside its own fixed,
   viewport-sized overlay. This prevents page-specific
   transform/positioning rules from changing the chat panel
   horizontal position on complex Elementor pages.
   ========================================================= */

#etm-aic-root{
    position:fixed !important;
    inset:0 !important;
    width:100vw !important;
    height:100vh !important;
    height:100dvh !important;
    max-width:none !important;
    max-height:none !important;
    margin:0 !important;
    padding:0 !important;
    transform:none !important;
    translate:none !important;
    overflow:visible !important;
    pointer-events:none !important;
    z-index:2147483000 !important;
    isolation:isolate !important;
}

#etm-aic-root > .etm-aic-panel,
#etm-aic-root > .etm-aic-launcher,
#etm-aic-root > .etm-aic-nudge{
    position:absolute !important;
    pointer-events:auto !important;
    margin:0 !important;
    translate:none !important;
}

/* Desktop */
#etm-aic-root > .etm-aic-panel{
    left:auto !important;
    right:26px !important;
    bottom:108px !important;
}

#etm-aic-root > .etm-aic-launcher{
    left:auto !important;
    right:26px !important;
    bottom:26px !important;
}

#etm-aic-root > .etm-aic-nudge{
    left:auto !important;
    right:26px !important;
    bottom:108px !important;
}

/* Tablet / small desktop */
@media(max-width:1280px){
    #etm-aic-root > .etm-aic-panel{
        left:auto !important;
        right:22px !important;
        bottom:102px !important;
    }

    #etm-aic-root > .etm-aic-launcher{
        left:auto !important;
        right:22px !important;
        bottom:22px !important;
    }

    #etm-aic-root > .etm-aic-nudge{
        left:auto !important;
        right:22px !important;
        bottom:102px !important;
    }
}

/* Mobile */
@media(max-width:600px){
    #etm-aic-root > .etm-aic-panel{
        left:auto !important;
        right:8px !important;
        bottom:84px !important;
    }

    #etm-aic-root > .etm-aic-launcher{
        left:auto !important;
        right:16px !important;
        bottom:16px !important;
    }

    #etm-aic-root > .etm-aic-nudge{
        left:auto !important;
        right:12px !important;
        bottom:88px !important;
    }
}

@media(max-width:380px){
    #etm-aic-root > .etm-aic-panel{
        left:auto !important;
        right:5px !important;
    }
}

