.vlm-booking {
    margin: 24px 0;
}

.vlm-error{
    color: var(--e-global-color-accent);
    font-size:13px;
}

.vlm-booking-grid {
    display: grid;
    grid-template-columns: 1.2fr .8fr;
    gap: 18px;
}

@media (max-width: 980px) {
    .vlm-booking-grid {
        grid-template-columns: 1fr;
    }
}

.vlm-card {
    background: #fff;
    border: 1px solid rgba(0, 0, 0, .08);
    border-radius: 14px;
    padding: 16px;
    box-shadow: 0 10px 25px rgba(0, 0, 0, .04);
}

#vlm-guests-section {
    max-height: 300px;
    overflow: auto;
}

.vlm-table {
}

tr {
}

table th, table td, table tr:hover td {
    border: 1px solid rgba(0, 0, 0, .08);
    background-color: unset !important
}

.vlm-title {
    margin: 0 0 12px;
    font-size: 20px;
}

.vlm-row {
    display: grid;
    gap: 1.5rem;
    margin-bottom: 12px;
}

.vlm-cols-2 {
    grid-template-columns: repeat(2, 1fr);
}

.vlm-cols-3 {
    grid-template-columns: repeat(3, 1fr);
}

.vlm-cols-1-2 {
    grid-template-columns: 1fr 2fr;
}

@media (max-width: 680px) {
    .vlm-row {
        grid-template-columns: 1fr;
    }
}

.vlm-field label {
    display: block;
    font-weight: 600;
    margin-bottom: 6px;
}

.elementor-field-textual,
.vlm-field select,
.vlm-field input:not([type='checkbox']),
.vlm-field input[type="date"],
.vlm-field textarea,
.vlm-field input[type="number"],
.vlm-field input[type="file"] {
    color: #000;
    width: 100%;
    padding: 2px 10px;
    min-height: 26px;
    border: 1px solid transparent;
    border-radius: 25px;
    background-color: #F6F6F6;
}

.vlm-field select {
    padding: 4px 10px;
}

form.vlm-booking-search .vlm-field label {
    color: white;
}

input:focus, textarea:focus, textarea:focus-visible {
    outline: none;
    /*border-color:#333;*/
    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .1);
}

.vlm-switch {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
}

.vlm-switch input {
    display: none;
}

.vlm-slider {
    width: 30px;
    height: 15px;
    background: #ccc;
    border-radius: 15px;
    position: relative;
    transition: background .2s;
}

.vlm-slider::after {
    content: '';
    width: 11px;
    height: 11px;
    background: #fff;
    border-radius: 50%;
    position: absolute;
    top: 2px;
    left: 2px;
    transition: transform .2s;
}

.vlm-switch input:checked + .vlm-slider {
    background: #372627;
}

.vlm-switch input:checked + .vlm-slider::after {
    transform: translateX(15px);
}

.vlm-switch.is-disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.vlm-switch.is-disabled .vlm-label {
    cursor: not-allowed;
}

.dashicons-info:before {
    color: var(--e-global-color-accent)
}

.vlm-tooltip-wrapper {
    position: relative;
    display: inline-block;
    margin-left: 6px;
}

/* bouton info */
.vlm-tooltip-trigger {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    border: none;
    background: #ddd;
    font-size: 11px;
    cursor: pointer;
    padding: 0;
}

/* tooltip */
.vlm-tooltip-content {
    position: absolute;
    bottom: 130%;
    left: 50%;
    transform: translateX(-50%);
    background: #372627;
    color: #fff;
    padding: 8px 10px;
    border-radius: 6px;
    font-size: 12px;
    white-space: normal;
    width: 220px;
    opacity: 0;
    pointer-events: none;
    transition: opacity .2s;
    z-index: 10;
}

/* flèche */
.vlm-tooltip-content::after {
    content: '';
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    border: 6px solid transparent;
    border-top-color: #372627;
}

/* hover desktop */
.vlm-tooltip-wrapper:hover .vlm-tooltip-content {
    opacity: 1;
}

/* état actif (mobile via JS) */
.vlm-tooltip-wrapper.active .vlm-tooltip-content {
    opacity: 1;
    pointer-events: auto;
}

form .vlm-people {
    margin: 15px 0 25px;
}

form .vlm-people input {
    max-width: 100px;
}

form.vlm-booking-search .vlm-hint {
    color: white;
    font-style: italic;
}

form .vlm-actions {
}

.vlm-hint {
    display: block;
    margin-top: 6px;
    opacity: .75;
    font-size: 12px;
}

.vlm-check {
    display: flex;
    align-items: center;
    gap: 8px;
    user-select: none;
}

.vlm-check input {
    transform: translateY(1px);
}

.vlm-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    align-items: center;
    margin-top: 8px;
}

.vlm-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 2px 10px;
    border-radius: 25px;
    font-size: 15px;
    border: none;
    background: #111;
    color: #fff;
    text-decoration: none;
    cursor: pointer;
}

.vlm-btn:disabled {
    opacity: .5;
    cursor: not-allowed;
}

.vlm-btn-outline {
    background: transparent;
    border: 1px solid rgba(0, 0, 0, .2);
    color: #111;
}

.vlm-alert {
    padding: 10px 12px;
    border-radius: 10px;
    margin: 10px 0;
    font-size: 14px;
}

.vlm-alert.is-error {
    background: rgba(214, 45, 30, .08);
    border: 1px solid rgba(214, 45, 30, .25);
}

.vlm-alert.is-info {
    background: rgba(45, 185, 221, .08);
    border: 1px solid rgba(45, 185, 221, .25);
}

.vlm-alert.is-success {
    background: rgba(136, 191, 89, .08);
    border: 1px solid rgba(136, 191, 89, .25);
}

.vlm-summary-line {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    padding: 6px 0;
}

.vlm-sep {
    border: none;
    border-top: 1px solid rgba(0, 0, 0, .08);
    margin: 10px 0;
}

.vlm-muted {
    opacity: .8;
    margin-top: 10px;
    font-size: 13px;
}

#vlm_availability {
    padding: 10px 12px;
    border-radius: 10px;
    margin: 10px 0;
    font-size: 14px;
}

#vlm_availability.is-neutral {
    background: rgba(45, 185, 221, .1);
    border: 1px solid rgba(45, 185, 221, .5);
    color: #2DB9DD;
}

#vlm_availability.is-available {
    background: rgba(136, 191, 89, .1);
    border: 1px solid rgba(136, 191, 89, .5);
    color: #88BF59;
}

#vlm_availability.is-unavailable {
    background: rgba(214, 45, 30, .1);
    border: 1px solid rgba(214, 45, 30, .5);
    color: #D62D1E;
}

input[type="date"].is-valid-day {
    /*border-color: #88BF59;*/
    /*box-shadow: 0 0 0 1px rgba(136,191,89, 0.5);*/
}

input[type="date"].is-invalid-day {
    border-color: #D62D1E;
    box-shadow: 0 0 0 1px rgba(214, 45, 30, 0.5);
}