/* Beauty Woman Contact Widget: pilot component only. */
.bw-contact-widget {
    --bw-contact-bottom-offset: 80px;
    --bw-cw-accent: #c0185a;
    --bw-cw-accent-hover: #a0144c;
    --bw-cw-ink: #332b2d;
    --bw-cw-muted: #6b6063;
    --bw-cw-surface: #fffcf8;
    --bw-cw-border: #e5d8d4;
    position: fixed;
    right: 24px;
    bottom: calc(var(--bw-contact-bottom-offset) + env(safe-area-inset-bottom, 0px));
    z-index: 1000;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    font-family: "DM Sans", sans-serif;
    color: var(--bw-cw-ink);
    pointer-events: none;
}
.bw-contact-widget *,
.bw-contact-widget *::before,
.bw-contact-widget *::after { box-sizing: border-box; }
.bw-contact-widget__trigger,
.bw-contact-widget__menu { pointer-events: auto; }
#bw-contact-widget .bw-contact-widget__trigger {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    height: 48px;
    max-width: 200px;
    padding: 0 18px 0 14px;
    border: 1px solid var(--bw-cw-accent);
    border-radius: 24px;
    background: var(--bw-cw-accent);
    color: #fff;
    box-shadow: none;
    cursor: pointer;
    font: 600 14px/1 "DM Sans", sans-serif;
    letter-spacing: 0;
    text-transform: none;
    transition: transform .16s ease, background-color .16s ease;
}
#bw-contact-widget .bw-contact-widget__trigger:hover {
    background: var(--bw-cw-accent-hover);
    border-color: var(--bw-cw-accent-hover);
    transform: translateY(-1px);
}
#bw-contact-widget .bw-contact-widget__trigger:active,
#bw-contact-widget .bw-contact-widget__submit:active { transform: scale(.98); }
#bw-contact-widget .bw-contact-widget__trigger:focus-visible,
#bw-contact-widget .bw-contact-widget__submit:focus-visible {
    outline: 2px solid var(--bw-cw-ink);
    outline-offset: 3px;
}
.bw-contact-widget__trigger-icon { display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; flex: 0 0 22px; }
.bw-contact-widget__trigger-icon--close { display: none; }
.bw-contact-widget--open .bw-contact-widget__trigger-icon--chat { display: none; }
.bw-contact-widget--open .bw-contact-widget__trigger-icon--close { display: inline-flex; }
#bw-contact-widget.bw-contact-widget--open .bw-contact-widget__trigger { background: var(--bw-cw-ink); border-color: var(--bw-cw-ink); }
.bw-contact-widget__menu {
    position: absolute;
    bottom: 60px;
    right: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
    width: max-content;
    min-width: 0;
    max-width: calc(100vw - 48px);
    max-height: calc(100vh - 160px);
    max-height: calc(100dvh - 160px);
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: thin;
    scrollbar-color: var(--bw-cw-border) var(--bw-cw-surface);
    padding: 3px;
    margin: -3px;
    opacity: 0;
    visibility: hidden;
    transform: translateY(8px);
    transform-origin: bottom right;
    transition: opacity .16s ease, transform .16s ease, visibility .16s;
}
.bw-contact-widget--open .bw-contact-widget__menu { opacity: 1; visibility: visible; transform: translateY(0); }
#bw-contact-widget .bw-contact-widget__item {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 52px;
    padding: 10px 16px;
    max-width: 100%;
    background: var(--bw-cw-surface);
    color: var(--bw-cw-ink);
    text-decoration: none;
    border: 1px solid var(--bw-cw-border);
    border-radius: 12px;
    box-shadow: none;
    font: 500 14px/1.4 "DM Sans", sans-serif;
    white-space: nowrap;
    transition: background-color .16s ease, color .16s ease;
}
#bw-contact-widget .bw-contact-widget__item:hover { background: #f8f1ed; color: var(--bw-cw-accent); }
#bw-contact-widget .bw-contact-widget__item:focus-visible { outline: 2px solid var(--bw-cw-accent); outline-offset: 1px; }
.bw-contact-widget__icon { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; flex: 0 0 32px; border-radius: 8px; background: #f8f1ed; color: var(--bw-cw-accent); }
.bw-contact-widget__icon svg,
.bw-contact-widget__trigger-icon svg { display: block; flex-shrink: 0; }
.bw-contact-widget[data-state="closed"] .bw-contact-widget__menu { width: 312px; }
.bw-contact-widget__after-hours { background: var(--bw-cw-surface); border: 1px solid var(--bw-cw-border); border-radius: 12px; padding: 16px; }
#bw-contact-widget .bw-contact-widget__heading { margin: 0 0 8px; color: var(--bw-cw-ink); font: 600 17px/1.3 "DM Sans", sans-serif; letter-spacing: 0; text-transform: none; }
#bw-contact-widget .bw-contact-widget__message { margin: 0 0 16px; color: var(--bw-cw-muted); font: 400 13px/1.5 "DM Sans", sans-serif; overflow-wrap: anywhere; white-space: pre-line; }
.bw-contact-widget__form { display: flex; flex-direction: column; gap: 10px; margin: 0; padding-top: 12px; border-top: 1px solid var(--bw-cw-border); }
#bw-contact-widget .bw-contact-widget__field { display: flex; flex-direction: column; gap: 4px; margin: 0; color: var(--bw-cw-ink); font: 600 12px/1.5 "DM Sans", sans-serif; }
#bw-contact-widget .bw-contact-widget__field input,
#bw-contact-widget .bw-contact-widget__field textarea {
    width: 100%;
    min-width: 0;
    min-height: 44px;
    margin: 0;
    padding: 10px 12px;
    border: 1px solid var(--bw-cw-border);
    border-radius: 8px;
    background: #fff;
    color: var(--bw-cw-ink);
    font: 400 16px/1.4 "DM Sans", sans-serif;
    box-shadow: none;
    caret-color: var(--bw-cw-accent);
}
#bw-contact-widget .bw-contact-widget__field textarea { min-height: 76px; resize: vertical; }
#bw-contact-widget .bw-contact-widget__field input:focus,
#bw-contact-widget .bw-contact-widget__field textarea:focus { border-color: var(--bw-cw-accent); outline: 2px solid var(--bw-cw-accent); outline-offset: 1px; }
#bw-contact-widget input[aria-invalid="true"] { border-color: var(--bw-cw-accent); }
#bw-contact-widget .bw-contact-widget__submit {
    width: 100%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 10px 14px;
    border: 1px solid var(--bw-cw-accent);
    border-radius: 24px;
    background: var(--bw-cw-accent);
    color: #fff;
    box-shadow: none;
    font: 600 13px/1.4 "DM Sans", sans-serif;
    text-transform: none;
    letter-spacing: 0;
    cursor: pointer;
    transition: background-color .16s ease, transform .16s ease;
}
#bw-contact-widget .bw-contact-widget__submit:hover { background: var(--bw-cw-accent-hover); border-color: var(--bw-cw-accent-hover); }
#bw-contact-widget .bw-contact-widget__submit:disabled { cursor: wait; opacity: .65; transform: none; }
#bw-contact-widget .bw-contact-widget__hint { display: block; margin: 0; color: var(--bw-cw-muted); font: 400 11px/1.45 "DM Sans", sans-serif; }
#bw-contact-widget .bw-contact-widget__feedback { margin: 0; padding: 10px 12px; border: 1px solid var(--bw-cw-border); border-radius: 8px; font: 500 12px/1.5 "DM Sans", sans-serif; overflow-wrap: anywhere; }
#bw-contact-widget .bw-contact-widget__feedback--success { color: var(--bw-cw-ink); background: #f8f1ed; }
#bw-contact-widget .bw-contact-widget__feedback--error { color: #5b0b2d; background: #f1e5e1; border-color: var(--bw-cw-accent); }
#bw-contact-widget [hidden], #bw-contact-widget .bw-contact-widget__trap { display: none !important; }
#bw-contact-widget ::selection { color: #fff; background: var(--bw-cw-accent); }
@media (max-width: 767px) {
    .bw-contact-widget { right: 16px; }
    #bw-contact-widget .bw-contact-widget__trigger { width: 52px; min-width: 52px; max-width: 52px; height: 52px; padding: 0; border-radius: 50%; }
    .bw-contact-widget__trigger-label { display: none; }
    .bw-contact-widget__menu { bottom: 64px; max-width: calc(100vw - 32px); }
    #bw-contact-widget .bw-contact-widget__item { padding: 10px 14px; white-space: normal; }
    .bw-contact-widget__after-hours { padding: 14px; }
}
@media (prefers-reduced-motion: reduce) {
    #bw-contact-widget .bw-contact-widget__trigger,
    #bw-contact-widget .bw-contact-widget__item,
    #bw-contact-widget .bw-contact-widget__submit,
    .bw-contact-widget__menu { transition: none; transform: none; }
}
