.dgv-booking-wrap{--dgv-accent:#5b3df5;--dgv-danger:#c62828;--dgv-muted:#6b7280;max-width:980px;margin:0 auto;font:inherit;color:inherit}.dgv-booking-wrap *{box-sizing:border-box}.dgv-booking-intro{margin-bottom:24px}.dgv-booking-form{display:grid;gap:22px}.dgv-booking-section,.dgv-booking-summary{padding:24px;border:1px solid rgba(127,127,127,.25);border-radius:16px;background:rgba(255,255,255,.03)}.dgv-section-heading{display:flex;gap:14px;align-items:flex-start;margin-bottom:20px}.dgv-section-heading h3{margin:0 0 4px}.dgv-section-heading p{margin:0;color:var(--dgv-muted)}.dgv-step{display:inline-grid;place-items:center;min-width:34px;height:34px;border-radius:50%;background:var(--dgv-accent);color:#fff;font-weight:700}.dgv-calendar{position:relative}.dgv-calendar-toolbar{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;gap:10px;margin-bottom:14px}.dgv-calendar-toolbar button{height:42px;border:1px solid rgba(127,127,127,.35);border-radius:10px;background:transparent;color:inherit;font-size:26px;cursor:pointer}.dgv-calendar-toolbar button:disabled{opacity:.35;cursor:not-allowed}.dgv-calendar-title{text-align:center;font-size:1.05rem}.dgv-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.dgv-calendar-weekdays{margin-bottom:8px;text-align:center;font-size:.82rem;color:var(--dgv-muted)}.dgv-calendar-day{min-height:48px;border:1px solid rgba(127,127,127,.25);border-radius:10px;background:transparent;color:inherit;font-weight:600}.dgv-calendar-day:not(:disabled){cursor:pointer}.dgv-calendar-day:not(:disabled):hover,.dgv-calendar-day.is-selected{border-color:var(--dgv-accent);background:var(--dgv-accent);color:#fff}.dgv-calendar-day--booked{background:rgba(198,40,40,.16);border-color:rgba(198,40,40,.45);color:#ef5350}.dgv-calendar-day--hold{background:rgba(245,158,11,.16);border-color:rgba(245,158,11,.45)}.dgv-calendar-day--awaiting{background:rgba(198,40,40,.16);border-color:rgba(198,40,40,.45);color:#ef5350}.dgv-calendar-day--blocked{background:rgba(107,114,128,.18);color:#9ca3af}.dgv-calendar-day:disabled{cursor:not-allowed;opacity:.75}.dgv-calendar-day--empty{border:0;background:transparent}.dgv-calendar-loading{padding:10px;text-align:center;color:var(--dgv-muted)}.dgv-calendar-legend{display:flex;flex-wrap:wrap;gap:14px;margin-top:16px;font-size:.85rem}.dgv-calendar-legend i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:5px;vertical-align:-1px;border:1px solid rgba(127,127,127,.35)}.dgv-legend-free{background:transparent}.dgv-legend-selected{background:var(--dgv-accent)}.dgv-legend-booked{background:#c62828}.dgv-legend-blocked{background:#6b7280}.dgv-selected-date{margin:14px 0 0;font-weight:700}.dgv-fields-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.dgv-field{margin:0}.dgv-field--full{grid-column:1/-1}.dgv-field label{display:block;margin-bottom:7px;font-weight:600}.dgv-field input,.dgv-field textarea{width:100%;padding:12px 14px;border:1px solid rgba(127,127,127,.35);border-radius:10px;background:transparent;color:inherit;font:inherit}.dgv-services-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.dgv-service-option{display:flex;gap:10px;align-items:center;padding:14px;border:1px solid rgba(127,127,127,.25);border-radius:10px;cursor:pointer}.dgv-service-option input{width:18px;height:18px}.dgv-service-name small{display:block;color:var(--dgv-muted)}.dgv-booking-summary>div{display:flex;justify-content:space-between;gap:15px;align-items:center;font-size:1.15rem}.dgv-summary-amount{font-size:1.35rem;font-weight:800}.dgv-booking-submit{width:100%;margin-top:14px;padding:14px 18px;border:0;border-radius:10px;background:var(--dgv-accent);color:#fff;font-weight:700;cursor:pointer}.dgv-booking-submit:disabled{opacity:.5;cursor:not-allowed}.dgv-checkout-note{margin:10px 0 0;text-align:center;font-size:.85rem;color:var(--dgv-muted)}.dgv-booking-message{padding:14px;border-radius:10px;margin-bottom:18px}.dgv-booking-message--error{background:#ffebee;color:#b71c1c}.dgv-honeypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}.dgv-booking-submit.is-loading{pointer-events:none}@media(max-width:700px){.dgv-booking-section,.dgv-booking-summary{padding:18px}.dgv-fields-grid,.dgv-services-grid{grid-template-columns:1fr}.dgv-calendar-grid{gap:5px}.dgv-calendar-day{min-height:42px}.dgv-calendar-legend{gap:8px 12px}}

.dgv-choice-group{border:0;padding:0;margin:0}.dgv-choice-group legend{margin-bottom:10px;font-weight:700}.dgv-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.dgv-choice-grid--compact{grid-template-columns:repeat(2,minmax(0,1fr));max-width:620px}.dgv-choice-option{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid rgba(127,127,127,.25);border-radius:10px;cursor:pointer}.dgv-choice-option input{width:18px;height:18px;margin:0}.dgv-choice-option:has(input:checked){border-color:var(--dgv-accent);box-shadow:0 0 0 1px var(--dgv-accent)}.dgv-conditional-field{margin-top:12px!important}.dgv-conditional-wrap{margin-top:12px}.dgv-consent-box{padding:16px;border:1px solid rgba(127,127,127,.25);border-radius:12px}.dgv-consent-box p{margin:0 0 14px;color:var(--dgv-muted)}.dgv-booking-details{margin-top:8px}.dgv-booking-details summary{cursor:pointer;font-weight:600}.dgv-booking-details ul{margin:8px 0 0 18px}@media(max-width:700px){.dgv-choice-grid,.dgv-choice-grid--compact{grid-template-columns:1fr}}

/* DGV 1.4.0 - Tema scuro robusto. Le regole sono volutamente specifiche
   per evitare sovrascritture da parte di Elementor e del tema attivo. */
body .elementor .dgv-booking-wrap,
body .dgv-booking-wrap {
    --dgv-accent: #ffffff;
    --dgv-danger: #e53935;
    --dgv-muted: #b7b7b7;
    --dgv-panel: #111111;
    --dgv-field: #080808;
    --dgv-border: #3b3b3b;
    color: #ffffff !important;
    color-scheme: dark;
}

body .elementor .dgv-booking-wrap section.dgv-booking-section,
body .elementor .dgv-booking-wrap section.dgv-booking-summary,
body .dgv-booking-wrap section.dgv-booking-section,
body .dgv-booking-wrap section.dgv-booking-summary,
body .dgv-booking-wrap .dgv-consent-box {
    background: var(--dgv-panel) !important;
    background-color: var(--dgv-panel) !important;
    border-color: var(--dgv-border) !important;
    color: #ffffff !important;
    box-shadow: none !important;
}

body .dgv-booking-wrap h1,
body .dgv-booking-wrap h2,
body .dgv-booking-wrap h3,
body .dgv-booking-wrap h4,
body .dgv-booking-wrap p,
body .dgv-booking-wrap label,
body .dgv-booking-wrap legend,
body .dgv-booking-wrap strong,
body .dgv-booking-wrap span:not(.dgv-step):not(.dgv-summary-amount) {
    color: inherit;
}

body .dgv-booking-wrap .dgv-section-heading p,
body .dgv-booking-wrap .dgv-calendar-weekdays,
body .dgv-booking-wrap .dgv-calendar-loading,
body .dgv-booking-wrap .dgv-checkout-note,
body .dgv-booking-wrap .dgv-consent-box p,
body .dgv-booking-wrap .dgv-service-name small {
    color: var(--dgv-muted) !important;
}

body .elementor .dgv-booking-wrap input[type="text"],
body .elementor .dgv-booking-wrap input[type="email"],
body .elementor .dgv-booking-wrap input[type="tel"],
body .elementor .dgv-booking-wrap input[type="number"],
body .elementor .dgv-booking-wrap input[type="date"],
body .elementor .dgv-booking-wrap textarea,
body .elementor .dgv-booking-wrap select,
body .dgv-booking-wrap input[type="text"],
body .dgv-booking-wrap input[type="email"],
body .dgv-booking-wrap input[type="tel"],
body .dgv-booking-wrap input[type="number"],
body .dgv-booking-wrap input[type="date"],
body .dgv-booking-wrap textarea,
body .dgv-booking-wrap select {
    background: var(--dgv-field) !important;
    background-color: var(--dgv-field) !important;
    color: #ffffff !important;
    border: 1px solid var(--dgv-border) !important;
    -webkit-text-fill-color: #ffffff !important;
    box-shadow: none !important;
}

body .dgv-booking-wrap input::placeholder,
body .dgv-booking-wrap textarea::placeholder {
    color: #8f8f8f !important;
    -webkit-text-fill-color: #8f8f8f !important;
    opacity: 1 !important;
}

body .dgv-booking-wrap input:-webkit-autofill,
body .dgv-booking-wrap input:-webkit-autofill:hover,
body .dgv-booking-wrap input:-webkit-autofill:focus {
    -webkit-text-fill-color: #ffffff !important;
    -webkit-box-shadow: 0 0 0 1000px var(--dgv-field) inset !important;
    transition: background-color 9999s ease-in-out 0s;
}

body .elementor .dgv-booking-wrap .dgv-choice-option,
body .elementor .dgv-booking-wrap .dgv-service-option,
body .dgv-booking-wrap .dgv-choice-option,
body .dgv-booking-wrap .dgv-service-option {
    background: #171717 !important;
    background-color: #171717 !important;
    border-color: var(--dgv-border) !important;
    color: #ffffff !important;
    box-shadow: none !important;
}

body .dgv-booking-wrap .dgv-choice-option:hover,
body .dgv-booking-wrap .dgv-service-option:hover {
    background: #222222 !important;
    border-color: #777777 !important;
}

body .dgv-booking-wrap .dgv-choice-option:has(input:checked),
body .dgv-booking-wrap .dgv-service-option:has(input:checked) {
    background: #292929 !important;
    border-color: #ffffff !important;
    box-shadow: 0 0 0 1px #ffffff !important;
}

body .dgv-booking-wrap input[type="radio"],
body .dgv-booking-wrap input[type="checkbox"] {
    accent-color: #ffffff !important;
}

body .dgv-booking-wrap .dgv-calendar-toolbar button {
    background: #161616 !important;
    color: #ffffff !important;
    border-color: var(--dgv-border) !important;
}

body .dgv-booking-wrap .dgv-calendar-day {
    background: #151515 !important;
    color: #ffffff !important;
    border-color: var(--dgv-border) !important;
}

body .dgv-booking-wrap .dgv-calendar-day:not(:disabled):hover,
body .dgv-booking-wrap .dgv-calendar-day.is-selected {
    background: #ffffff !important;
    color: #080808 !important;
    border-color: #ffffff !important;
}

body .dgv-booking-wrap .dgv-calendar-day--booked,
body .dgv-booking-wrap .dgv-calendar-day--awaiting {
    background: #401315 !important;
    color: #ff8a80 !important;
    border-color: #e53935 !important;
}

body .dgv-booking-wrap .dgv-calendar-day--hold {
    background: #4a3210 !important;
    color: #ffd180 !important;
    border-color: #f59e0b !important;
}

body .dgv-booking-wrap .dgv-calendar-day--blocked,
body .dgv-booking-wrap .dgv-calendar-day:disabled:not(.dgv-calendar-day--booked):not(.dgv-calendar-day--awaiting):not(.dgv-calendar-day--hold) {
    background: #242424 !important;
    color: #777777 !important;
    border-color: #3d3d3d !important;
}

body .dgv-booking-wrap .dgv-calendar-day--empty {
    background: transparent !important;
    border-color: transparent !important;
}

body .dgv-booking-wrap .dgv-step {
    background: #ffffff !important;
    color: #080808 !important;
}

body .dgv-booking-wrap .dgv-booking-submit {
    background: #ffffff !important;
    color: #080808 !important;
    border: 1px solid #ffffff !important;
}

body .dgv-booking-wrap .dgv-booking-submit:hover,
body .dgv-booking-wrap .dgv-booking-submit:focus {
    background: #d8d8d8 !important;
    color: #000000 !important;
}

/* Date occupate ma ancora prenotabili. Il numero indica le richieste presenti. */
body .dgv-booking-wrap .dgv-calendar-day {
    position: relative;
}

body .dgv-booking-wrap .dgv-calendar-day__count {
    position: absolute;
    top: 3px;
    right: 4px;
    display: inline-grid;
    place-items: center;
    min-width: 16px;
    height: 16px;
    padding: 0 4px;
    border-radius: 999px;
    background: #ffffff;
    color: #9f1d1d !important;
    font-size: 10px;
    font-weight: 800;
    line-height: 1;
}

body .dgv-booking-wrap .dgv-calendar-day.is-selected,
body .dgv-booking-wrap .dgv-calendar-day.is-bookable-occupied.is-selected {
    background: #ffffff !important;
    color: #080808 !important;
    border-color: #ffffff !important;
    box-shadow: 0 0 0 2px rgba(255, 255, 255, .28) !important;
}

body .dgv-booking-wrap .dgv-calendar-day.is-selected .dgv-calendar-day__count {
    background: #9f1d1d;
    color: #ffffff !important;
}
