.dvia-booking-layout {

    display: grid;

    grid-template-columns: 500px minmax(0, 1fr);

    align-items: center;

    gap: 30px;

    width: 100%;

    max-width: 1200px;

    margin: 0 auto;

    padding: 20px;

    box-sizing: border-box;

}
.dvia-booking-layout .dvia-bc-booking-complete .dvia-bc-book-feedback {
 text-align: left;
}

.dvia-booking-layout .dvia-cmenu {

    width: 500px;

    height: 500px;

    margin: 0;

}

.dvia-booking-content {

    min-width: 0;

    width: 100%;

    padding: 25px;

    background: #fff;

    border-radius: 12px;

    box-sizing: border-box;

    box-shadow: 0 5px 20px rgba(0, 0, 0, 0.08);

     opacity: 0;

    visibility: hidden;

    transform: translateX(25px);

    pointer-events: none;

    transition:

        opacity 0.5s ease,

        transform 0.5s ease,

        visibility 0.5s;

}

.dvia-booking-content.dvia-booking-visible {

    opacity: 1;

    visibility: visible;

    transform: translateX(0);

    pointer-events: auto;
     min-height: 600px;

}

.dvia-bc-book-feedback {
    margin:2px;
}
@media (max-width: 850px) {

    .dvia-booking-layout {

        grid-template-columns: minmax(0, 1fr);

        justify-items: center;

        gap: 20px;

        padding: 15px;

    }

    .dvia-booking-layout .dvia-cmenu {

        --dvia-center-size: 75px;

        --dvia-item-size: 48px;

        --dvia-radius: 105px;

        width: 290px;

        height: 290px;

        margin: 0 auto;

    }

    .dvia-cmenu-plus {

        width: 28px;

        height: 28px;

    }

    .dvia-cmenu-item svg {

        width: 22px;

        height: 22px;

    }

    .dvia-booking-content {

        padding: 20px;

    }

}

.dvia-cmenu {

    --dvia-center-size: 130px;

    --dvia-item-size: 85px;

    --dvia-radius: 140px;

    --dvia-item-count: 8;

    --dvia-duration: 0.55s;

    --dvia-delay: 0.09s;

    position: relative;

    width: 500px;

    height: 500px;

    display: flex;

    align-items: center;

    justify-content: center;

    margin: auto;

}

.dvia-cmenu *,

.dvia-cmenu *::before,

.dvia-cmenu *::after {

    box-sizing: border-box;   

    padding:0;

}

.dvia-cmenu *,

.dvia-cmenu *::before,

.dvia-cmenu *::after {   

    margin: 0;

}

.dvia-cmenu-toggle {

    position: absolute;

    width: 1px;

    height: 1px;

    opacity: 0;

}

.dvia-cmenu-items {

    position: absolute;

    inset: 0;

    pointer-events: none;

}

.dvia-cmenu-orbit {

    --dvia-angle:

        calc(360deg / var(--dvia-item-count) * var(--i));

    position: absolute;

    top: 50%;

    left: 50%;

    width: 0;

    height: 0;

    transform: rotate(0deg);

    transition:

        transform var(--dvia-duration)

        cubic-bezier(.2,.8,.2,1);

    transition-delay:

        calc(var(--dvia-delay) * var(--i));

}

.dvia-cmenu-item:hover {

background-color: rgb(211, 211, 14);

border: 4px solid rgb(90, 90, 96);

}

.dvia-cmenu-item {

    position: absolute;

    top: 0;

    left: 0;

    width: var(--dvia-item-size);

    height: var(--dvia-item-size);

    display: flex;

    align-items: center;

    justify-content: center;

    background: white;

    color: black;

    border-radius: 50%;

    text-decoration: none;

    box-shadow: 0 5px 15px rgba(0,0,0,.12);

    opacity: 0;

    visibility: hidden;

    transform:

    translate(-50%, -50%)

    translateY(0px)

    rotate(0deg);

    transition:

        transform var(--dvia-duration) cubic-bezier(.2,.8,.2,1),

        opacity .3s ease,

        visibility var(--dvia-duration),

        background-color .25s ease,

        border-color .25s ease;

    transition-delay:

        calc(var(--dvia-delay) * var(--i));

}

.dvia-cmenu-item.dvia-cmenu-selected {

    background-color: #a2bbf5!important;

    border: 2px solid #000;

    color: #000;

}

.dvia-cmenu-item.dvia-cmenu-completed {

    background-color: #a9f3f6;

    border: 2px solid #8bc48a;

    color: #376b35;

}

.dvia-booking-actions {

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 15px;

    margin-top: 25px;

}

/* Fixed-height horizontal slider */
.dvia-booking-content {
    --dvia-panel-height: 450px;
    --dvia-panel-padding: 25px;
    position: relative;
    height: var(--dvia-panel-height);
    min-width: 0;
    overflow: hidden;
}

.dvia-booking-panel {
    display: none;
    flex-direction: column;
    position: absolute;
    inset: var(--dvia-panel-padding);
    width: auto;
    height: auto;
    min-width: 0;
    min-height: 0;
    box-sizing: border-box;
}

.dvia-booking-panel.active {
    display: flex;
    animation: none;
}

.dvia-booking-panel-header {
    flex: 0 0 auto;
    padding-bottom: 18px;
}

.dvia-booking-panel-body {
    flex: 1 1 auto;
    min-width: 0;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;

    /* Allow vertical scrolling to continue on the page. */
    overscroll-behavior-y: auto;

    /* Preserve native vertical touch gestures. */
    touch-action: pan-y;

    /* Smooth native scrolling on iOS. */
    -webkit-overflow-scrolling: touch;
}

.dvia-booking-panel .dvia-booking-actions {
    flex: 0 0 auto;
    margin-top: 20px;
    padding-top: 15px;
}

/* Bidirectional simultaneous sliding */
.dvia-booking-panel.dvia-panel-exit-forward {
    animation: dvia-slide-out-left 450ms ease-in-out both;
    pointer-events: none;
}
.dvia-booking-panel.dvia-panel-enter-forward {
    animation: dvia-slide-in-right 450ms ease-in-out both;
}
.dvia-booking-panel.dvia-panel-exit-backward {
    animation: dvia-slide-out-right 450ms ease-in-out both;
    pointer-events: none;
}
.dvia-booking-panel.dvia-panel-enter-backward {
    animation: dvia-slide-in-left 450ms ease-in-out both;
}

@keyframes dvia-slide-out-left {
    from { transform: translateX(0); opacity: 1; }
    to   { transform: translateX(-100%); opacity: 0; }
}
@keyframes dvia-slide-in-right {
    from { transform: translateX(100%); opacity: 0; }
    to   { transform: translateX(0); opacity: 1; }
}
@keyframes dvia-slide-out-right {
    from { transform: translateX(0); opacity: 1; }
    to   { transform: translateX(100%); opacity: 0; }
}
@keyframes dvia-slide-in-left {
    from { transform: translateX(-100%); opacity: 0; }
    to   { transform: translateX(0); opacity: 1; }
}

.dvia-booking-next,

.dvia-booking-back {

    padding: 12px 25px;

    border-radius: 8px;

    border: 1px solid transparent;

    font-size: 15px;

    font-weight: 600;

    cursor: pointer;

    transition:

        background-color 0.25s ease,

        color 0.25s ease,

        transform 0.25s ease;

}

.dvia-booking-next {

    background-color: #a8e6a3;

    color: #000;

    margin-left: auto;

}

.dvia-booking-next:hover {

    background-color: #85d77e;

    transform: translateY(-2px);

}

.dvia-booking-back {

    background-color: #f1f1f1;

    color: #333;

    border-color: #ddd;

}

.dvia-booking-back:hover {

    background-color: #e0e0e0;

    transform: translateY(-2px);

}
.dvia-booking-panel-body {
    touch-action: pan-y;
}
.dvia-cmenu-item svg {

    width: 30px;

    height: 30px;

    fill: none;

    stroke: currentColor;

    stroke-width: 1.7;

    stroke-linecap: round;

    stroke-linejoin: round;

}

.dvia-cmenu-toggle:checked

~ .dvia-cmenu-items .dvia-cmenu-orbit {

    transform: rotate(var(--dvia-angle));

}

.dvia-cmenu-toggle:checked

~ .dvia-cmenu-items .dvia-cmenu-item {

    opacity: 1;

    visibility: visible;

    pointer-events: auto;

    transform:

        translate(-50%, -50%)

        translateX(calc(-1 * var(--dvia-radius)))

        rotate(calc(-1 * var(--dvia-angle)));

}

.dvia-cmenu-button {

    position: absolute;

    z-index: 10;

    width: var(--dvia-center-size);

    height: var(--dvia-center-size);

    display: flex;

    align-items: center;

    justify-content: center;

    background: white;

    border-radius: 50%;

    cursor: pointer;

    box-shadow: 0 5px 15px rgba(0,0,0,.12);

}

.dvia-cmenu-plus {

    position: relative;

    width: 42px;

    height: 42px;

    transition: transform 1.25s ease;

}

.dvia-cmenu-plus::before,

.dvia-cmenu-plus::after {

    content: "";

    position: absolute;

    background: black;

    border-radius: 2px;

}

.dvia-cmenu-plus::before {

    width: 100%;

    height: 4px;

    top: 50%;

    transform: translateY(-50%);

}

.dvia-cmenu-plus::after {

    height: 100%;

    width: 4px;

    left: 50%;

    transform: translateX(-50%);

}

.dvia-cmenu-toggle:checked

~ .dvia-cmenu-button .dvia-cmenu-plus {

    transform: rotate(675deg);

}

@media (prefers-reduced-motion: reduce) {

    .dvia-cmenu-orbit,

    .dvia-cmenu-item,

    .dvia-cmenu-plus {

        transition-duration: 0.01ms;

        transition-delay: 0ms;

    }

}

@media (max-width: 850px) {

    .dvia-booking-content {

        --dvia-panel-height: 380px;

        width: 100%;

        max-width: 100%;

    }

}

@media (max-width: 600px) {

    .dvia-cmenu {

        --dvia-center-size: 75px;

        --dvia-item-size: 48px;

        --dvia-radius: 105px;

        width: 290px;

        height: 290px;

    }

    .dvia-cmenu-plus {

        width: 28px;

        height: 28px;

    }

    .dvia-cmenu-item svg {

        width: 22px;

        height: 22px;

    }

}

@media (max-width: 480px) {

    .dvia-booking-content {

        --dvia-panel-height: 340px;

    }

    .dvia-booking-panel-header {

        padding-bottom: 12px;

    }

    .dvia-booking-panel .dvia-booking-actions {

        margin-top: 12px;

        padding-top: 12px;

    }

}

@media (prefers-reduced-motion: reduce) {
    .dvia-booking-panel.dvia-panel-exit-forward,
    .dvia-booking-panel.dvia-panel-enter-forward,
    .dvia-booking-panel.dvia-panel-exit-backward,
    .dvia-booking-panel.dvia-panel-enter-backward {
        animation-duration: 1ms;
    }
}

@media (max-width: 850px) {
    .dvia-booking-content {
        --dvia-panel-padding: 20px;
    }
}

.dvia-booking-layout .dvia-cmenu-orbit:nth-child(1){--i:0;}
.dvia-booking-layout .dvia-cmenu-orbit:nth-child(2){--i:1;}
.dvia-booking-layout .dvia-cmenu-orbit:nth-child(3){--i:2;}
.dvia-booking-layout .dvia-cmenu-orbit:nth-child(4){--i:3;}
.dvia-booking-layout .dvia-cmenu-orbit:nth-child(5){--i:4;}
.dvia-booking-layout .dvia-cmenu-orbit:nth-child(6){--i:5;}
.dvia-booking-layout .dvia-cmenu-orbit:nth-child(7){--i:6;}
.dvia-booking-layout .dvia-cmenu-orbit:nth-child(8){--i:7;}
.dvia-bc-public-select{display:block;width:100%;max-width:460px;padding:4px;border:1px solid #aab4c5;border-radius:8px;background:#fff;color:#1f2937}.dvia-bc-public-message{margin-top:12px;color:#475569}.dvia-booking-layout .dvia-booking-next:disabled{opacity:.45;cursor:not-allowed}

/* Booking date and read-only availability preview */
.dvia-booking-layout .dvia-bc-public-date{display:block;max-width:100%;width:260px;padding:11px 14px;border:1px solid #b8c8d3;border-radius:12px;background:#fff;color:#172b3a;font:inherit}
.dvia-booking-layout .dvia-bc-date-label{display:block;margin-bottom:9px;font-weight:600}
.dvia-booking-layout .dvia-bc-time-options{display:flex;flex-wrap:wrap;gap:10px;margin:10px 0}
.dvia-booking-layout .dvia-bc-time-choice{display:inline-flex;cursor:pointer;align-items:center;gap:7px;padding:9px 13px;border-radius:20px;border:1px solid #a9bfff;background:#e8efff;color:#234ebc}
.dvia-booking-layout .dvia-bc-time-choice:has(input:checked){background:#3765e9;color:white;border-color:#3765e9}
.dvia-booking-layout .dvia-bc-time-choice input{accent-color:#3865ec}

/* Layout adjustment: circular menu plus alignment */
.dvia-booking-layout .dvia-cmenu-plus {
    text-align: left;
}
/* Optional booking description */
.dvia-booking-layout .dvia-bc-booking-description{display:block;box-sizing:border-box;width:100%;max-width:700px;padding:12px;border:1px solid #b8c8d3;border-radius:12px;background:#fff;color:#172b3a;font:inherit;resize:vertical}

/* Customer Form — preview, no booking submission */
.dvia-booking-layout .dvia-bc-customer-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:18px;max-width:900px;align-items:start}
.dvia-booking-layout .dvia-bc-customer-form label{display:flex;flex-direction:column;gap:7px;color:#25324b;font-weight:500}
.dvia-booking-layout .dvia-bc-customer-form input:not([type=checkbox]),.dvia-booking-layout .dvia-bc-customer-form select,.dvia-booking-layout .dvia-bc-customer-form textarea{box-sizing:border-box;width:100%;padding:10px 12px;border:1px solid #aab4c5;border-radius:8px;background:#fff;color:#1f2937;font:inherit}
.dvia-booking-layout .dvia-bc-customer-form input[type=checkbox]{width:20px;height:20px}
.dvia-booking-layout .dvia-bc-form-error{color:#b42318}

/* Center available time options */
.dvia-booking-layout .dvia-bc-time-options {
    justify-content: center;
}

/* Review & Submit — read-only preview */
.dvia-booking-layout .dvia-bc-review-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:14px;max-width:950px}
.dvia-booking-layout .dvia-bc-review-item{display:flex;flex-direction:column;gap:5px;min-width:0;padding:12px 15px;background:#f4f7fb;border:1px solid #dbe5f0;border-radius:10px;overflow-wrap:anywhere}
.dvia-booking-layout .dvia-bc-review-item strong{font-size:13px;color:#44536a}
.dvia-booking-layout .dvia-bc-review-item span{color:#172b3a;white-space:pre-wrap}
.dvia-booking-layout .dvia-bc-review-consent{margin-top:20px;display:flex;flex-wrap:wrap;gap:10px 20px;align-items:center}

.dvia-booking-layout .dvia-bc-book-submit{background:#075fc2;color:white;border:0;border-radius:9px;padding:13px 25px;cursor:pointer;font-weight:600}
.dvia-booking-layout .dvia-bc-book-submit:disabled{opacity:.6;cursor:wait}
.dvia-booking-layout .dvia-bc-book-feedback{margin-top:12px}
.dvia-booking-layout .dvia-bc-book-again{padding:10px 20px;cursor:pointer;border-radius:8px;}

/* Selected service details: informational only, no layout shifts when empty. */
.dvia-booking-layout .dvia-bc-service-description{margin-top:18px;padding:14px 16px;border-radius:10px;background:rgba(125,145,180,.09);line-height:1.55;overflow-wrap:anywhere}
.dvia-booking-layout .dvia-bc-service-description[hidden]{display:none!important}
.dvia-booking-layout .dvia-bc-service-description p{margin:8px 0 0;white-space:pre-line}

/* DVIA Booking Center 0.11.5: public themes are scoped to the booking panels.
   Circular-menu active/completed states are intentionally not themed. */
.dvia-booking-layout.dvia-bc-public-theme-normal {
    --dvia-bc-theme-bg:#fff;--dvia-bc-theme-text:#172b3a;
    --dvia-bc-theme-border:#b8c8d3;--dvia-bc-theme-input:#fff;
    --dvia-bc-theme-card:#f4f7fb;--dvia-bc-theme-muted:#44536a;
}
.dvia-booking-layout.dvia-bc-public-theme-transparent {
    --dvia-bc-theme-bg:transparent;--dvia-bc-theme-text:#111;
    --dvia-bc-theme-border:#222;--dvia-bc-theme-input:transparent;
    --dvia-bc-theme-card:transparent;--dvia-bc-theme-muted:#222;
}
.dvia-booking-layout.dvia-bc-public-theme-gray {
    --dvia-bc-theme-bg:#555d69;--dvia-bc-theme-text:#fff;
    --dvia-bc-theme-border:#b7c0cd;--dvia-bc-theme-input:#69727e;
    --dvia-bc-theme-card:#68717e;--dvia-bc-theme-muted:#f0f3f7;
}
.dvia-booking-layout.dvia-bc-public-theme-black {
    --dvia-bc-theme-bg:#121212;--dvia-bc-theme-text:#fff;
    --dvia-bc-theme-border:#8a8a8a;--dvia-bc-theme-input:#242424;
    --dvia-bc-theme-card:#242424;--dvia-bc-theme-muted:#e0e0e0;
}
.dvia-booking-layout[class*="dvia-bc-public-theme-"] .dvia-booking-content {
    background:var(--dvia-bc-theme-bg);color:var(--dvia-bc-theme-text);
}
.dvia-booking-layout[class*="dvia-bc-public-theme-"] .dvia-booking-panel,
.dvia-booking-layout[class*="dvia-bc-public-theme-"] .dvia-booking-panel-header,
.dvia-booking-layout[class*="dvia-bc-public-theme-"] .dvia-booking-panel-header h3,
.dvia-booking-layout[class*="dvia-bc-public-theme-"] .dvia-booking-panel-header p,
.dvia-booking-layout[class*="dvia-bc-public-theme-"] .dvia-bc-date-label,
.dvia-booking-layout[class*="dvia-bc-public-theme-"] .dvia-bc-customer-form label,
.dvia-booking-layout[class*="dvia-bc-public-theme-"] .dvia-bc-public-message,
.dvia-booking-layout[class*="dvia-bc-public-theme-"] .dvia-bc-review-consent {
    color:var(--dvia-bc-theme-text);
}
.dvia-booking-layout[class*="dvia-bc-public-theme-"] .dvia-bc-public-select,
.dvia-booking-layout[class*="dvia-bc-public-theme-"] .dvia-bc-public-date,
.dvia-booking-layout[class*="dvia-bc-public-theme-"] .dvia-bc-booking-description,
.dvia-booking-layout[class*="dvia-bc-public-theme-"] .dvia-bc-customer-form input:not([type=checkbox]),
.dvia-booking-layout[class*="dvia-bc-public-theme-"] .dvia-bc-customer-form select,
.dvia-booking-layout[class*="dvia-bc-public-theme-"] .dvia-bc-customer-form textarea {
    background:var(--dvia-bc-theme-input);color:var(--dvia-bc-theme-text);
    border-color:var(--dvia-bc-theme-border);
}
.dvia-booking-layout[class*="dvia-bc-public-theme-"] .dvia-bc-review-item,
.dvia-booking-layout[class*="dvia-bc-public-theme-"] .dvia-bc-service-description {
    background:var(--dvia-bc-theme-card);border:1px solid var(--dvia-bc-theme-border);
    color:var(--dvia-bc-theme-text);
}
.dvia-booking-layout[class*="dvia-bc-public-theme-"] .dvia-bc-review-item strong,
.dvia-booking-layout[class*="dvia-bc-public-theme-"] .dvia-bc-review-item span {
    color:var(--dvia-bc-theme-text);
}
.dvia-booking-layout[class*="dvia-bc-public-theme-"] .dvia-bc-review-item strong {
    color:var(--dvia-bc-theme-muted);
}
.dvia-booking-layout[class*="dvia-bc-public-theme-"] .dvia-bc-collaborator-card {
    background:var(--dvia-bc-theme-card);color:var(--dvia-bc-theme-text);
    border:2px solid var(--dvia-bc-theme-border);
}
.dvia-booking-layout .dvia-bc-picture-select {position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip-path:inset(50%);white-space:nowrap;}
.dvia-booking-layout .dvia-bc-collaborator-pictures {display:flex;flex-wrap:wrap;gap:15px;align-items:stretch;padding:8px 0;}
.dvia-booking-layout .dvia-bc-collaborator-pictures[hidden]{display:none!important;}
.dvia-booking-layout .dvia-bc-collaborator-card{display:flex;flex-direction:column;align-items:center;gap:10px;justify-content:center;min-width:125px;max-width:180px;min-height:145px;padding:14px;border-radius:12px;cursor:pointer;font:inherit;text-align:center;overflow-wrap:anywhere;}
.dvia-booking-layout .dvia-bc-collaborator-card img,
.dvia-booking-layout .dvia-bc-review-collaborator-picture img {width:76px;height:76px;object-fit:cover;border-radius:50%;}
.dvia-booking-layout .dvia-bc-collaborator-avatar {display:grid;place-items:center;width:76px;height:76px;border-radius:50%;background:#dce6f8;color:#1b3b72;font-size:32px;font-weight:700;}
.dvia-booking-layout .dvia-bc-collaborator-card[aria-pressed="true"] {border-color:#3865ec!important;box-shadow:0 0 0 2px #3865ec55;}
.dvia-booking-layout .dvia-bc-collaborator-card:focus-visible {outline:3px solid #3865ec;outline-offset:3px;}
.dvia-booking-layout .dvia-bc-review-collaborator-picture {display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;}
.dvia-booking-layout .dvia-bc-review-collaborator-picture img,
.dvia-booking-layout .dvia-bc-review-collaborator-picture .dvia-bc-collaborator-avatar {width:60px;height:60px;}

.dvia-booking-layout.dvia-bc-public-theme-transparent .dvia-booking-content {box-shadow:none;}

/* 0.11.6: Transparent also affects the circular menu surface, without altering state markers. */
.dvia-booking-layout.dvia-bc-public-theme-transparent .dvia-cmenu,
.dvia-booking-layout.dvia-bc-public-theme-transparent .dvia-cmenu-button,
.dvia-booking-layout.dvia-bc-public-theme-transparent .dvia-cmenu-items {background-color:transparent;}
/* Customer field labels: native label elements stay in the DOM for accessibility. */
.dvia-booking-layout .dvia-bc-labels-hidden .dvia-bc-field-label-text {position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip-path:inset(50%);white-space:nowrap;}
.dvia-booking-layout .dvia-bc-labels-floating label {position:relative;display:flex;flex-direction:column;justify-content:flex-end;padding-top:14px;}
.dvia-booking-layout .dvia-bc-labels-floating .dvia-bc-field-label-text {position:absolute;top:27px;left:12px;z-index:1;pointer-events:none;transition:transform .15s ease,font-size .15s ease;transform-origin:left top;}
.dvia-booking-layout .dvia-bc-labels-floating label:focus-within .dvia-bc-field-label-text,
.dvia-booking-layout .dvia-bc-labels-floating label.dvia-bc-has-value .dvia-bc-field-label-text {transform:translateY(-22px);font-size:12px;}
.dvia-booking-layout .dvia-bc-labels-floating label:has(input[type=checkbox]) .dvia-bc-field-label-text {position:static;transform:none;}

.dvia-booking-layout .dvia-bc-labels-floating label:not(:focus-within):not(.dvia-bc-has-value) .dvia-bc-field-label-text {opacity:.75;}
.dvia-booking-layout .dvia-bc-labels-floating label:has(input[type=checkbox]) {padding-top:0;}

/* 0.11.7: shared field presentation for standard and custom fields. */
.dvia-booking-layout .dvia-bc-field-control{position:relative;display:block;width:100%;}
.dvia-booking-layout .dvia-bc-field-icon{display:none;position:absolute;right:4px;top:50%;transform:translateY(-50%);pointer-events:none;opacity:.75;line-height:20px;}
.dvia-booking-layout .dvia-bc-labels-icons .dvia-bc-field-icon{display:block;}
.dvia-booking-layout .dvia-bc-labels-icons .dvia-bc-field-control input:not([type=checkbox]),
.dvia-booking-layout .dvia-bc-labels-icons .dvia-bc-field-control select,
.dvia-booking-layout .dvia-bc-labels-icons .dvia-bc-field-control textarea{padding-right:34px!important;}
.dvia-booking-layout .dvia-bc-labels-icons .dvia-bc-field-label-text{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip-path:inset(50%);white-space:nowrap;}
.dvia-booking-layout .dvia-bc-labels-icons .dvia-bc-field-wrap:has(input[type=checkbox]) .dvia-bc-field-label-text{position:static!important;width:auto!important;height:auto!important;clip-path:none;}
.dvia-booking-layout .dvia-bc-labels-icons .dvia-bc-field-wrap:has(input[type=checkbox]) .dvia-bc-field-icon{display:none;}
.dvia-booking-layout .dvia-bc-labels-floating .dvia-bc-field-wrap{position:relative;padding-top:14px;}
.dvia-booking-layout .dvia-bc-labels-floating .dvia-bc-field-label-text{top:26px;left:12px;}
.dvia-booking-layout .dvia-bc-labels-floating .dvia-bc-field-control :is(input,textarea)::placeholder{color:transparent;}
.dvia-booking-layout .dvia-bc-labels-floating .dvia-bc-field-wrap:focus-within .dvia-bc-field-label-text {transform:translateY(-22px);font-size:12px;}
.dvia-booking-layout .dvia-bc-labels-floating .dvia-bc-field-wrap:has(input[type=checkbox]) .dvia-bc-field-label-text{position:static;transform:none;}
.dvia-bc-settings [data-dvia-show][hidden]{display:none!important;}

/* Transparent theme: the orbit buttons are transparent as well as the center. */
.dvia-booking-layout.dvia-bc-public-theme-transparent .dvia-cmenu-item,
.dvia-booking-layout.dvia-bc-public-theme-transparent .dvia-cmenu-item:hover,
.dvia-booking-layout.dvia-bc-public-theme-transparent .dvia-cmenu-item.dvia-cmenu-selected,
.dvia-booking-layout.dvia-bc-public-theme-transparent .dvia-cmenu-item.dvia-cmenu-completed {background:transparent!important;}

/* Disabled circular step retains geometry but cannot be interacted with. */
.dvia-booking-layout .dvia-cmenu-item.dvia-bc-step-disabled { opacity: .38; cursor: not-allowed; pointer-events: none; }

/* DVIA 0.12.3: compact responsive panels and consistent labels. */
.dvia-booking-layout .dvia-booking-panel-header { padding-bottom:10px; }
.dvia-booking-layout .dvia-booking-panel-header h3 { margin-top:0; margin-bottom:6px; }
.dvia-booking-layout .dvia-booking-panel-header p { margin-top:6px; margin-bottom:0; }
.dvia-booking-layout .dvia-booking-panel .dvia-booking-actions { margin-top:2px; padding-top:8px; }
.dvia-booking-layout .dvia-bc-collaborator-pictures { justify-content:center; }
.dvia-booking-layout .dvia-bc-labels-floating .dvia-bc-field-wrap { padding-top:18px; }
.dvia-booking-layout .dvia-bc-labels-floating .dvia-bc-field-wrap .dvia-bc-field-label-text { top:30px; left:12px; }
.dvia-booking-layout .dvia-bc-labels-floating .dvia-bc-field-wrap:focus-within .dvia-bc-field-label-text,
.dvia-booking-layout .dvia-bc-labels-floating .dvia-bc-field-wrap.dvia-bc-has-value .dvia-bc-field-label-text {transform:translateY(-22px);font-size:12px;}
.dvia-booking-layout .dvia-bc-labels-floating .dvia-bc-field-label-text { padding:0 3px; background:var(--dvia-bc-theme-bg,#fff); border-radius:2px; }
@media (max-width:850px) {
 .dvia-booking-layout { justify-items:center; }
 .dvia-booking-layout .dvia-cmenu { margin-left:auto; margin-right:auto; }
 .dvia-booking-layout .dvia-booking-content.dvia-booking-visible { padding:12px; width:100%; margin-left:auto; margin-right:auto; }
}
@media (max-width:480px) {
 .dvia-booking-layout .dvia-booking-content { --dvia-panel-height:460px; }
}

/* 0.12.4: consistent field labels, booking confirmation and mobile footer. */
.dvia-booking-layout .dvia-bc-labels-floating .dvia-bc-field-wrap,
.dvia-booking-layout .dvia-bc-labels-floating .dvia-bc-field-wrap label {box-sizing:border-box;}
.dvia-booking-layout .dvia-bc-labels-floating .dvia-bc-field-wrap .dvia-bc-field-label-text {
    top:26px;left:12px;padding:1px 5px;border-radius:4px;
    background:var(--dvia-bc-theme-input,var(--dvia-bc-theme-bg,#fff));
    line-height:1.3;
}
.dvia-booking-layout .dvia-bc-labels-floating .dvia-bc-field-wrap:focus-within .dvia-bc-field-label-text,
.dvia-booking-layout .dvia-bc-labels-floating .dvia-bc-field-wrap.dvia-bc-has-value .dvia-bc-field-label-text {transform:translateY(-22px);font-size:12px;}
.dvia-booking-layout .dvia-bc-review-item {text-align:left;align-items:flex-start;}
.dvia-booking-layout .dvia-bc-review-item strong,
.dvia-booking-layout .dvia-bc-review-item span {text-align:left;}
.dvia-booking-layout .dvia-bc-review-consent label,
.dvia-booking-layout .dvia-bc-review-consent a {
    background-color:#969090;border-radius:10px;padding:2px 6px;
    color:#20252d;font-size:12px;
}
.dvia-booking-layout .dvia-bc-review-consent a {text-decoration:none;}
.dvia-booking-layout .dvia-bc-review-consent a:focus-visible {outline:2px solid currentColor;outline-offset:2px;}
.dvia-booking-layout .dvia-bc-book-feedback {min-width:0;overflow-wrap:anywhere;flex:1 1 100%;order:-1;}
.dvia-booking-layout .dvia-bc-book-feedback:empty {display:none;}
.dvia-booking-layout .dvia-booking-panel[data-step="end"] .dvia-booking-actions {flex-wrap:wrap;}
.dvia-booking-layout .dvia-bc-booking-complete .dvia-booking-actions {align-items:stretch;}
.dvia-booking-layout .dvia-bc-booking-complete .dvia-bc-book-feedback {order:-1;flex-basis:100%;}
.dvia-booking-layout .dvia-bc-booking-complete .dvia-bc-book-success {margin-left:auto;}
.dvia-booking-layout .dvia-bc-collaborator-pictures {justify-content:center;align-content:center;}
@media (max-width:850px) {
    .dvia-booking-layout .dvia-booking-panel[data-step="collaborator"] .dvia-booking-panel-body {display:flex;flex-direction:column;justify-content:center;}
    .dvia-booking-layout .dvia-booking-panel[data-step="end"] .dvia-booking-actions {flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;}
    .dvia-booking-layout .dvia-booking-panel[data-step="end"] .dvia-bc-book-feedback {order:-1;width:100%;margin:0;}
    .dvia-booking-layout .dvia-booking-panel[data-step="end"] .dvia-bc-book-success {margin:0;align-self:center;}
    .dvia-booking-layout .dvia-booking-panel[data-step="end"] .dvia-booking-back,
    .dvia-booking-layout .dvia-booking-panel[data-step="end"] .dvia-bc-book-submit {align-self:auto;flex:0 1 auto;}
    .dvia-booking-layout .dvia-bc-collaborator-card {min-width:108px;min-height:125px;padding:10px;}
    .dvia-booking-layout .dvia-bc-collaborator-card img,
    .dvia-booking-layout .dvia-bc-collaborator-avatar {width:60px;height:60px;}
}

/* 0.12.5: consistent floating labels for standard and custom fields at all widths. */
.dvia-booking-layout .dvia-bc-labels-floating .dvia-bc-field-wrap:not(:has(input[type="checkbox"])) {
    position:relative;
    padding-top:14px;
}
.dvia-booking-layout .dvia-bc-labels-floating .dvia-bc-field-wrap:not(:has(input[type="checkbox"])) > .dvia-bc-field-label-text {
    position:absolute;
    top:26px;
    left:12px;
    transform:none;
    font-size:inherit;
    line-height:1.3;
    padding:1px 5px;
    border-radius:4px;
    background:var(--dvia-bc-theme-input,var(--dvia-bc-theme-bg,#fff));
    z-index:2;
}
.dvia-booking-layout .dvia-bc-labels-floating .dvia-bc-field-wrap:not(:has(input[type="checkbox"])):focus-within > .dvia-bc-field-label-text,
.dvia-booking-layout .dvia-bc-labels-floating .dvia-bc-field-wrap.dvia-bc-has-value:not(:has(input[type="checkbox"])) > .dvia-bc-field-label-text {
    transform:translateY(-22px);
    font-size:12px;
}
/* Keep checkbox labels in the normal flow. */
.dvia-booking-layout .dvia-bc-labels-floating .dvia-bc-field-wrap:has(input[type="checkbox"]) > .dvia-bc-field-label-text {position:static;transform:none;}
/* Center collaborator cards vertically as well as horizontally on desktop. */
.dvia-booking-layout .dvia-booking-panel[data-step="collaborator"] .dvia-booking-panel-body {display:flex;flex-direction:column;justify-content:center;}
.dvia-booking-layout .dvia-booking-panel[data-step="collaborator"] .dvia-bc-collaborator-pictures {justify-content:center;align-content:center;}
/* Mobile-only footer containment; desktop layout remains unchanged. */
@media (max-width:850px) {
    .dvia-booking-layout .dvia-booking-panel[data-step="end"] .dvia-booking-actions {width:100%;min-width:0;box-sizing:border-box;}
    .dvia-booking-layout .dvia-booking-panel[data-step="end"] .dvia-booking-actions > * {max-width:100%;box-sizing:border-box;min-width:0;}
    .dvia-booking-layout .dvia-booking-panel[data-step="end"] .dvia-bc-book-success {margin-left:0;margin-right:0;align-self:center;}
    .dvia-booking-layout .dvia-booking-panel[data-step="end"] :is(.dvia-bc-book-again,.dvia-bc-book-submit,.dvia-booking-back) {max-width:100%;box-sizing:border-box;}
}

/* 0.12.6: stable floating labels on desktop and mobile; exclude checkbox fields. */
.dvia-booking-layout .dvia-bc-labels-floating label.dvia-bc-field-wrap:not(:has(input[type="checkbox"])) {position:relative;padding-top:14px;}
.dvia-booking-layout .dvia-bc-labels-floating label.dvia-bc-field-wrap:not(:has(input[type="checkbox"])) > .dvia-bc-field-label-text {top:26px;left:12px;transform:none;font-size:inherit;line-height:1.3;z-index:3;pointer-events:none;background:var(--dvia-bc-theme-input,var(--dvia-bc-theme-bg,#fff));padding:1px 5px;border-radius:4px;}
.dvia-booking-layout .dvia-bc-labels-floating label.dvia-bc-field-wrap.dvia-bc-has-value:not(:has(input[type="checkbox"])) > .dvia-bc-field-label-text,
.dvia-booking-layout .dvia-bc-labels-floating label.dvia-bc-field-wrap:not(:has(input[type="checkbox"])):focus-within > .dvia-bc-field-label-text {transform:translateY(-22px);font-size:12px;}
.dvia-booking-layout .dvia-bc-honeypot {position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important;}
@media(max-width:850px){
 .dvia-booking-layout .dvia-booking-panel[data-step="collaborator"] .dvia-bc-collaborator-pictures {width:100%;justify-content:center!important;align-items:center;margin-left:auto;margin-right:auto;}
}

/* 0.12.7: prevent Grid row stretching from displacing floating labels. */
.dvia-booking-layout .dvia-bc-customer-form {align-items:start;}
/* Keep mobile booking feedback above buttons while preserving a horizontal button row. */
@media (max-width:850px) {
 .dvia-booking-layout .dvia-booking-panel[data-step="end"] .dvia-booking-actions {flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;}
 .dvia-booking-layout .dvia-booking-panel[data-step="end"] .dvia-bc-book-feedback {flex:0 0 100%;width:100%;max-width:100%;order:-1;margin:0;overflow-wrap:anywhere;}
 .dvia-booking-layout .dvia-booking-panel[data-step="end"] :is(.dvia-booking-back,.dvia-bc-book-submit) {align-self:auto;flex:0 1 auto;min-width:0;}
}

/* DVIA 0.12.21: menu variants reuse the existing step anchors and navigation. */
.dvia-booking-layout.dvia-bc-public-theme-transparent_white {
 --dvia-bc-theme-bg:transparent;--dvia-bc-theme-text:#fff;--dvia-bc-theme-border:#fff;
 --dvia-bc-theme-input:transparent;--dvia-bc-theme-card:transparent;--dvia-bc-theme-muted:#fff;
}
.dvia-booking-layout.dvia-bc-public-theme-transparent_white .dvia-booking-content{box-shadow:none;}
.dvia-booking-layout.dvia-bc-public-theme-transparent_white .dvia-cmenu,
.dvia-booking-layout.dvia-bc-public-theme-transparent_white .dvia-cmenu-button,
.dvia-booking-layout.dvia-bc-public-theme-transparent_white .dvia-cmenu-items{background:transparent;}
.dvia-booking-layout .dvia-bc-menu-step-text{display:none;}
/* Normal menu items follow theme, but selected and completed keep existing colors. */
.dvia-booking-layout.dvia-bc-public-theme-black .dvia-cmenu-item:not(.dvia-cmenu-selected):not(.dvia-cmenu-completed),
.dvia-booking-layout.dvia-bc-public-theme-transparent_white .dvia-cmenu-item:not(.dvia-cmenu-selected):not(.dvia-cmenu-completed){background:transparent;color:#fff;border:2px solid #fff;}
.dvia-booking-layout.dvia-bc-public-theme-black .dvia-cmenu-button,
.dvia-booking-layout.dvia-bc-public-theme-transparent_white .dvia-cmenu-button{color:#fff;border-color:#fff;}
.dvia-booking-layout.dvia-bc-public-theme-transparent_white .dvia-bc-customer-form input::placeholder,
.dvia-booking-layout.dvia-bc-public-theme-transparent_white .dvia-bc-customer-form textarea::placeholder{color:rgba(255,255,255,.85);}
/* Linear: override orbit geometry, not navigation logic. */
.dvia-booking-layout.dvia-bc-menu-linear .dvia-cmenu{width:100%;max-width:100%;height:auto;min-height:74px;display:block;--dvia-item-size:auto;--dvia-radius:0;}
.dvia-booking-layout.dvia-bc-menu-linear .dvia-cmenu-toggle,
.dvia-booking-layout.dvia-bc-menu-linear .dvia-cmenu-button{display:none!important;}
.dvia-booking-layout.dvia-bc-menu-linear .dvia-cmenu-items{position:static;display:flex;gap:10px;align-items:center;pointer-events:auto;overflow-x:auto;overscroll-behavior-x:contain;padding:12px 8px;scrollbar-width:thin;}
.dvia-booking-layout.dvia-bc-menu-linear.dvia-bc-menu-align-left .dvia-cmenu-items{justify-content:flex-start;}
.dvia-booking-layout.dvia-bc-menu-linear.dvia-bc-menu-align-center .dvia-cmenu-items{justify-content:center;}
.dvia-booking-layout.dvia-bc-menu-linear.dvia-bc-menu-align-right .dvia-cmenu-items{justify-content:flex-end;}
.dvia-booking-layout.dvia-bc-menu-linear .dvia-cmenu-orbit{position:static;transform:none!important;width:auto;height:auto;transition:none;flex:0 0 auto;}
.dvia-booking-layout.dvia-bc-menu-linear .dvia-cmenu-item,
.dvia-booking-layout.dvia-bc-menu-linear .dvia-cmenu-toggle:checked ~ .dvia-cmenu-items .dvia-cmenu-item{position:static;transform:none!important;opacity:1;visibility:visible;pointer-events:auto;transition:background-color .2s,border-color .2s;display:flex;flex-direction:row;gap:8px;width:auto;height:auto;min-height:46px;padding:9px 14px;border-radius:12px;border:2px solid var(--dvia-bc-theme-border,#b8c8d3);background:var(--dvia-bc-theme-input,#fff);color:var(--dvia-bc-theme-text,#172b3a);white-space:nowrap;text-decoration:none;}
.dvia-booking-layout.dvia-bc-menu-linear .dvia-cmenu-item svg{width:22px;height:22px;flex:0 0 22px;}
.dvia-booking-layout.dvia-bc-menu-linear.dvia-bc-menu-show-text .dvia-bc-menu-step-text{display:inline;}
.dvia-booking-layout.dvia-bc-menu-linear:not(.dvia-bc-menu-show-icons) .dvia-cmenu-item svg{display:none;}
.dvia-booking-layout.dvia-bc-menu-linear .dvia-cmenu-item.dvia-cmenu-selected{background:#a2bbf5!important;color:#000;border-color:#000;}
.dvia-booking-layout.dvia-bc-menu-linear .dvia-cmenu-item.dvia-cmenu-completed:not(.dvia-cmenu-selected){background:#a9f3f6!important;color:#376b35;border-color:#8bc48a;}
.dvia-booking-layout.dvia-bc-menu-linear .dvia-cmenu-item.dvia-bc-step-disabled{pointer-events:none;opacity:.38;}
@media(max-width:800px){.dvia-booking-layout.dvia-bc-menu-linear .dvia-cmenu-items{justify-content:flex-start!important;}}
/* Icon-only field identification still shows the required indicator. */
.dvia-booking-layout .dvia-bc-icon-required{display:none;}
.dvia-booking-layout .dvia-bc-labels-icons .dvia-bc-field-control .dvia-bc-icon-required{display:block;position:absolute;right:27px;top:50%;transform:translateY(-50%);color:#d8344d;font-weight:700;pointer-events:none;}

/* 0.12.22: Linear layout above its panel, on desktop and mobile. */
.dvia-booking-layout.dvia-bc-menu-linear {
    grid-template-columns:minmax(0,1fr);
    justify-items:stretch;
    align-items:start;
    gap:14px;
}
.dvia-booking-layout.dvia-bc-menu-linear > .dvia-cmenu {
    grid-column:1;
    grid-row:1;
    width:100%;
    min-width:0;
    max-width:100%;
    margin:0;
}
.dvia-booking-layout.dvia-bc-menu-linear > .dvia-booking-content {
    grid-column:1;
    grid-row:2;
    width:100%;
    min-width:0;
}
.dvia-booking-layout.dvia-bc-menu-linear .dvia-cmenu-items {
    width:100%;
    max-width:100%;
    box-sizing:border-box;
    min-width:0;
}
/* Gray stays gray in linear mode; use the selected theme variables. */
.dvia-booking-layout.dvia-bc-menu-linear.dvia-bc-public-theme-gray .dvia-cmenu-item:not(.dvia-cmenu-selected):not(.dvia-cmenu-completed) {
    background:var(--dvia-bc-theme-input);
    color:var(--dvia-bc-theme-text);
    border-color:var(--dvia-bc-theme-border);
}
/* Native option popups are browser-controlled. Provide readable contrast. */
.dvia-booking-layout.dvia-bc-public-theme-transparent_white select option,
.dvia-booking-layout.dvia-bc-public-theme-transparent_white select optgroup {
    background:#27303b;
    color:#fff;
}
/* Required markers for icon-identified fields, independent of menu style. */
.dvia-booking-layout .dvia-bc-labels-icons .dvia-bc-field-control:has(:required) .dvia-bc-icon-required {
    display:block;
    position:absolute;
    top:50%;
    right:29px;
    transform:translateY(-50%);
    z-index:2;
    font-size:17px;
    line-height:1;
    color:#e54857;
    pointer-events:none;
}
.dvia-booking-layout .dvia-bc-labels-icons .dvia-bc-field-control:has(:required) :is(input:not([type=checkbox]),textarea,select) {
    padding-right:56px!important;
}

/* 0.12.23: enforce the chosen menu theme, without changing selected/completed states. */
.dvia-booking-layout.dvia-bc-public-theme-black .dvia-cmenu-item:not(.dvia-cmenu-selected):not(.dvia-cmenu-completed) {
    background-color:#121212;
    color:#fff;
    border:2px solid #fff;
}
.dvia-booking-layout.dvia-bc-public-theme-gray .dvia-cmenu-item:not(.dvia-cmenu-selected):not(.dvia-cmenu-completed) {
    background-color:#555d69;
    color:#fff;
    border:2px solid #b7c0cd;
}
/* The plus/X strokes use pseudo-elements, so changing color alone is insufficient. */
.dvia-booking-layout.dvia-bc-menu-circular.dvia-bc-public-theme-transparent_white .dvia-cmenu-plus::before,
.dvia-booking-layout.dvia-bc-menu-circular.dvia-bc-public-theme-transparent_white .dvia-cmenu-plus::after,
.dvia-booking-layout.dvia-bc-menu-circular.dvia-bc-public-theme-black .dvia-cmenu-plus::before,
.dvia-booking-layout.dvia-bc-menu-circular.dvia-bc-public-theme-black .dvia-cmenu-plus::after {
    background-color:#fff;
}
.dvia-booking-layout.dvia-bc-menu-circular.dvia-bc-public-theme-black .dvia-cmenu-button {
    background-color:#121212;
    color:#fff;
}
/* Center the visible booking panel, without restricting the linear menu bar. */
.dvia-booking-layout .dvia-booking-content.dvia-booking-visible {
    max-width:900px;
    margin-left:auto;
    margin-right:auto;
}

/* 0.12.24: Gray circular toggle matches the gray theme. */
.dvia-booking-layout.dvia-bc-menu-circular.dvia-bc-public-theme-gray .dvia-cmenu-button {
    background-color:#555d69;
    color:#fff;
}
.dvia-booking-layout.dvia-bc-menu-circular.dvia-bc-public-theme-gray .dvia-cmenu-plus::before,
.dvia-booking-layout.dvia-bc-menu-circular.dvia-bc-public-theme-gray .dvia-cmenu-plus::after {
    background-color:#fff;
}

/* 0.12.25: Stack the existing circular menu above the panel at 980px.
   Linear already uses the same stacked arrangement at every viewport. */
@media (max-width: 980px) {
    .dvia-booking-layout.dvia-bc-menu-circular {
        grid-template-columns: minmax(0, 1fr);
        justify-items: center;
        gap: 20px;
    }
    .dvia-booking-layout.dvia-bc-menu-circular > .dvia-cmenu {
        grid-column: 1;
        grid-row: 1;
    }
    .dvia-booking-layout.dvia-bc-menu-circular > .dvia-booking-content {
        grid-column: 1;
        grid-row: 2;
        min-width: 0;
        width: 100%;
    }
}
