.mec-calendar-shell {
            max-width:1180px;
            margin:30px auto;
        }

        .mec-main-heading {
            margin:0 0 18px;
            color:var(--mec-heading-color, #32147f);
            font-family:var(--mec-heading-font, Arial, sans-serif);
            font-size:30px;
            line-height:1.25;
            text-align:center;
        }

        .mec-calendar-wrapper {
            max-width:1180px;
            margin:0 auto;
            display:grid;
            grid-template-columns:minmax(0, 1.08fr) minmax(360px, .92fr);
            gap:28px;
            align-items:stretch;
        }

        .mec-calendar-panel,
        #mec-request-form-wrapper {
            box-sizing:border-box;
            background:#fff;
            border:1px solid #e5e7eb;
            border-radius:12px;
            padding:25px;
            box-shadow:0 5px 20px rgba(0,0,0,.06);
            height:100%;
        }

        .mec-calendar-panel {
            grid-column:1 / -1;
            width:100%;
            max-width:760px;
            margin:0 auto;
            transition:max-width .3s ease;
        }

        .mec-calendar-wrapper.mec-has-form .mec-calendar-panel {
            grid-column:auto;
            max-width:none;
        }

        .mec-hp-field {
            position:absolute !important;
            left:-10000px !important;
            width:1px !important;
            height:1px !important;
            overflow:hidden !important;
        }

        .mec-calendar-header {
            display:flex;
            justify-content:space-between;
            align-items:center;
            margin-bottom:20px;
        }

        .mec-calendar-header h3 {
            margin:0;
            font-size:24px;
            color:var(--mec-heading-color, #32147f);
            font-family:var(--mec-heading-font, Arial, sans-serif);
        }

        .mec-calendar-header button {
            background:var(--mec-primary, #111827);
            border:0;
            color:#fff;
            width:42px;
            height:42px;
            border-radius:8px;
            font-size:24px;
            cursor:pointer;
            display:inline-flex;
            align-items:center;
            justify-content:center;
            padding:0;
            line-height:1;
        }

        .mec-calendar-days,
        #mec-calendar-grid {
            display:grid;
            grid-template-columns:repeat(7,1fr);
            gap:8px;
        }

        .mec-calendar-days {
            font-weight:600;
            text-align:center;
            margin-bottom:8px;
        }

        .mec-calendar-days div {
            padding:10px 5px;
        }

        .mec-calendar-day {
            min-height:65px;
            display:flex;
            justify-content:center;
            align-items:center;
            border-radius:8px;
            font-weight:600;
        }

        .mec-calendar-day.available {
            background:#dcfce7;
            background:color-mix(in srgb, var(--mec-available, #7c3aed) 18%, white);
            color:var(--mec-available, #166534);
            cursor:pointer;
        }

        .mec-calendar-day.available:hover {
            transform:translateY(-2px);
            box-shadow:0 3px 10px rgba(0,0,0,.08);
        }

        .mec-calendar-day.booked {
            background:#fee2e2;
            background:color-mix(in srgb, var(--mec-booked, #db2777) 18%, white);
            color:var(--mec-booked, #991b1b);
            cursor:not-allowed;
        }

        .mec-calendar-day.past {
            background:#f5f5f5;
            color:#aaa;
        }

        .mec-calendar-day.empty {
            background:transparent;
        }

        .mec-calendar-legend {
            display:flex;
            gap:20px;
            margin-top:20px;
        }

        .mec-calendar-legend span {
            display:flex;
            align-items:center;
            gap:7px;
        }

        .mec-availability-note {
            margin:12px 0 0;
            color:#64748b;
            font-size:13px;
        }

        .mec-calendar-loading {
            grid-column:1 / -1;
            text-align:center;
            padding:18px;
            color:#64748b;
        }

        .mec-dot {
            width:12px;
            height:12px;
            border-radius:50%;
            display:inline-block;
        }

        .mec-available-dot {
            background:var(--mec-available, #7c3aed);
        }

        .mec-booked-dot {
            background:var(--mec-booked, #db2777);
        }

        .mec-partial-dot {
            background:#f59e0b;
        }

        #eventbook {
            scroll-margin-top:110px;
        }

        #mec-selected-date-box {
            margin-top:20px;
            padding:15px;
            background:#eff6ff;
            border-radius:8px;
        }

        #mec-request-form-wrapper {
            background:#f8fafc;
            margin:0;
            animation:mecPanelIn .35s ease both;
        }

        #mec-request-form-title {
            margin:0 0 16px;
            color:var(--mec-heading-color, #32147f);
            font-family:var(--mec-heading-font, Arial, sans-serif);
            font-size:20px;
            line-height:1.3;
        }

        #mec-event-request-form {
            opacity:1;
            transform:translateY(0);
            transition:opacity .35s ease, transform .35s ease;
        }

        #mec-event-request-form.mec-form-closing {
            opacity:0;
            transform:translateY(-14px);
            pointer-events:none;
        }

        .mec-form-row {
            margin-bottom:12px;
        }

        .mec-form-row label {
            display:block;
            font-weight:600;
            margin-bottom:6px;
        }

        .mec-form-row input,
        .mec-form-row select,
        .mec-form-row textarea {
            width:100%;
            padding:12px 14px;
            box-sizing:border-box;
            border:1px solid #d1d5db;
            border-radius:7px;
            min-height:42px;
            font-family:var(--mec-field-font, Arial, sans-serif);
        }

        #mec_form_event_date {
            background:#e5e7eb;
        }

        .mec-submit-button {
            background:var(--mec-button, #111827) !important;
            color:#fff;
            border:0;
            padding:13px 24px;
            border-radius:7px;
            cursor:pointer;
            font-weight:600;
            width:100%;
            min-height:44px;
            font-family:var(--mec-field-font, Arial, sans-serif);
        }

        .mec-submit-button:disabled {
            opacity:.6;
        }

        #mec-form-message {
            margin-top:15px;
            padding:12px 15px;
            border-radius:7px;
            min-height:42px;
            font-family:var(--mec-field-font, Arial, sans-serif);
        }

        .mec-form-row input::placeholder,
        .mec-form-row textarea::placeholder {
            color:#94a3b8;
            opacity:1;
            font-family:var(--mec-field-font, Arial, sans-serif);
        }

        .mec-form-row textarea {
            height:42px;
            min-height:42px;
            resize:vertical;
        }

        #mec-form-message.mec-success-message {
            margin:18px 0 0;
            padding:24px;
            border:1px solid #86efac;
            font-size:16px;
            line-height:1.6;
            text-align:center;
            animation:mecThanksIn .5s ease both;
        }

        @keyframes mecPanelIn {
            from { opacity:0; transform:translateX(18px); }
            to { opacity:1; transform:translateX(0); }
        }

        @keyframes mecThanksIn {
            from { opacity:0; transform:translateY(12px) scale(.98); }
            to { opacity:1; transform:translateY(0) scale(1); }
        }

        @media(max-width:782px) {

            .mec-calendar-wrapper {
                max-width:760px;
                grid-template-columns:1fr;
                gap:18px;
            }

            .mec-calendar-panel,
            #mec-request-form-wrapper {
                padding:15px;
            }

            .mec-calendar-panel,
            .mec-calendar-wrapper.mec-has-form .mec-calendar-panel {
                grid-column:1;
            }

            .mec-calendar-day {
                min-height:42px;
                font-size:12px;
            }

            .mec-calendar-days,
            #mec-calendar-grid {
                gap:4px;
            }

            .mec-calendar-header h3 {
                font-size:19px;
            }

        }

        @media (prefers-reduced-motion:reduce) {
            #mec-event-request-form,
            #mec-request-form-wrapper,
            #mec-form-message {
                animation:none !important;
                transition:none !important;
            }
        }

/* Modern theme and floating-label form. */
.mec-calendar-shell { color:var(--mec-text,#43356f); font-size:var(--mec-body-size,16px); }
.mec-main-heading { font-size:var(--mec-heading-size,32px); letter-spacing:-.025em; }
.mec-calendar-panel { background:var(--mec-card,#fff); }
#mec-request-form-wrapper { background:var(--mec-form-card,#faf7ff); }
.mec-calendar-panel,#mec-request-form-wrapper { border-radius:var(--mec-radius,16px); border-color:#e2e8f0; box-shadow:0 14px 40px rgba(15,23,42,.08); }
.mec-calendar-header button { background:var(--mec-button,#32147f); color:var(--mec-button-text,#fff) !important; -webkit-text-fill-color:var(--mec-button-text,#fff); box-shadow:0 7px 16px rgba(50,20,127,.22); transition:transform .2s ease,box-shadow .2s ease; }
.mec-calendar-header button:hover:not(:disabled) { transform:translateY(-1px); box-shadow:0 10px 22px rgba(15,23,42,.2); }
.mec-calendar-day { transition:transform .18s ease,box-shadow .18s ease; }

.mec-form-row { position:relative; margin-bottom:16px; }
.mec-form-row label { position:absolute; z-index:2; left:16px; top:50%; display:flex; align-items:center; gap:9px; margin:0; padding:0 5px; color:#64748b; font-family:var(--mec-field-font,system-ui,sans-serif); font-weight:500; transform:translateY(-50%); transform-origin:left center; pointer-events:none; transition:top .18s ease,transform .18s ease,color .18s ease,background .18s ease; }
.mec-form-row input,.mec-form-row select,.mec-form-row textarea { height:54px; min-height:54px; padding:15px 16px 10px 48px; border:1px solid var(--mec-input-border,#d8c9f3); border-radius:calc(var(--mec-radius,16px) * .65); background:var(--mec-input,#fff); color:var(--mec-text,#43356f); outline:none; box-shadow:none; transition:border-color .18s ease,box-shadow .18s ease,background .18s ease; }
.mec-calendar-shell .mec-form-row input,.mec-calendar-shell .mec-form-row select,.mec-calendar-shell .mec-form-row textarea,.mec-calendar-shell .mec-form-row select option { font-family:var(--mec-field-font,system-ui,sans-serif) !important; font-size:inherit !important; color:var(--mec-text,#43356f); }
.mec-calendar-shell .mec-form-row select { font-weight:500 !important; }
.mec-form-row textarea { resize:vertical; line-height:1.4; }
.mec-form-row input::placeholder,.mec-form-row textarea::placeholder { color:transparent; }
.mec-form-row:focus-within input::placeholder,.mec-form-row:focus-within textarea::placeholder { color:#94a3b8; }
.mec-form-row:focus-within label,.mec-form-row:has(input:not(:placeholder-shown)) label,.mec-form-row:has(textarea:not(:placeholder-shown)) label,.mec-field-type label { top:0; background:var(--mec-form-card,#faf7ff); color:var(--mec-focus,#a21caf); transform:translateY(-50%) scale(.82); }
.mec-form-row input:focus,.mec-form-row select:focus,.mec-form-row textarea:focus { border-color:var(--mec-focus,#a21caf); box-shadow:0 0 0 4px color-mix(in srgb,var(--mec-focus,#a21caf) 14%,transparent); }
.mec-field-type select { padding-left:48px; }

.mec-form-row label::before { content:""; width:var(--mec-icon-size,18px); height:var(--mec-icon-size,18px); flex:0 0 auto; background:var(--mec-icon,#8b2cf5); mask:center/contain no-repeat var(--mec-field-icon); -webkit-mask:center/contain no-repeat var(--mec-field-icon); }
.mec-field-date { --mec-field-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 2v2H5a3 3 0 0 0-3 3v12a3 3 0 0 0 3 3h14a3 3 0 0 0 3-3V7a3 3 0 0 0-3-3h-2V2h-2v2H9V2H7zm12 18H5a1 1 0 0 1-1-1v-9h16v9a1 1 0 0 1-1 1z'/%3E%3C/svg%3E"); }
.mec-field-name { --mec-field-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 12a5 5 0 1 0 0-10 5 5 0 0 0 0 10zm0 2c-5 0-9 2.5-9 5.5V22h18v-2.5C21 16.5 17 14 12 14z'/%3E%3C/svg%3E"); }
.mec-field-job-title,.mec-field-organization { --mec-field-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 4V2h6v2h5a2 2 0 0 1 2 2v13a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h5zm2 0h2V3h-2v1zm9 7H4v8h16v-8zM4 9h16V6H4v3z'/%3E%3C/svg%3E"); }
.mec-field-event-name { --mec-field-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2l2.8 5.7L21 8.6l-4.5 4.4 1.1 6.2L12 16.3l-5.6 2.9 1.1-6.2L3 8.6l6.2-.9L12 2z'/%3E%3C/svg%3E"); }
.mec-field-email { --mec-field-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 4H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h16a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2zm0 4-8 5-8-5V6l8 5 8-5v2z'/%3E%3C/svg%3E"); }
.mec-field-phone { --mec-field-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15.5 15.5 0 0 0 6.6 6.6l2.2-2.2c.3-.3.7-.4 1-.2 1.1.4 2.3.6 3.6.6.6 0 1 .4 1 1V20c0 .6-.4 1-1 1A17 17 0 0 1 3 4c0-.6.4-1 1-1h3.5c.6 0 1 .4 1 1 0 1.3.2 2.5.6 3.6.1.3 0 .7-.2 1l-2.3 2.2z'/%3E%3C/svg%3E"); }
.mec-field-location { --mec-field-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a8 8 0 0 0-8 8c0 6 8 12 8 12s8-6 8-12a8 8 0 0 0-8-8zm0 11a3 3 0 1 1 0-6 3 3 0 0 1 0 6z'/%3E%3C/svg%3E"); }
.mec-field-type { --mec-field-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M21 12l-9 9-9-9V3h9l9 9zM7.5 6A1.5 1.5 0 1 0 7.5 9 1.5 1.5 0 0 0 7.5 6z'/%3E%3C/svg%3E"); }
.mec-field-message { --mec-field-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 3h16a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H8l-6 4V5a2 2 0 0 1 2-2zm2 5v2h12V8H6zm0 4v2h9v-2H6z'/%3E%3C/svg%3E"); }
.mec-submit-button { background:var(--mec-button,#32147f) !important; color:var(--mec-button-text,#fff) !important; -webkit-text-fill-color:var(--mec-button-text,#fff); border-radius:calc(var(--mec-radius,16px) * .65); box-shadow:0 10px 24px color-mix(in srgb,var(--mec-focus,#a21caf) 25%,transparent); font-size:15px; letter-spacing:.01em; transition:transform .2s ease,box-shadow .2s ease; }
.mec-submit-button *, .mec-calendar-header button * { color:inherit !important; -webkit-text-fill-color:inherit; }
.mec-submit-button:hover:not(:disabled) { transform:translateY(-1px); box-shadow:0 14px 30px color-mix(in srgb,var(--mec-focus,#a21caf) 32%,transparent); }

@media(max-width:782px){.mec-main-heading{font-size:calc(var(--mec-heading-size,32px) * .82)}.mec-form-row label{left:12px}.mec-form-row input,.mec-form-row select,.mec-form-row textarea{padding-left:44px}}

#mec-event-request-form { display:flex; flex-direction:column; }
.mec-wizard-progress { display:flex; align-items:center; gap:12px; margin:0 0 18px; color:var(--mec-text,#43356f); font-family:var(--mec-field-font,system-ui,sans-serif); font-size:.8em; font-weight:600; }
.mec-wizard-progress-track { position:relative; flex:1; height:5px; overflow:hidden; border-radius:999px; background:color-mix(in srgb,var(--mec-focus,#a21caf) 14%,#fff); }
.mec-wizard-progress-track span { display:block; width:50%; height:100%; border-radius:inherit; background:var(--mec-button,#32147f); transition:width .3s ease; }
.mec-form-step { display:flex; flex-direction:column; animation:mecWizardSlideIn .32s ease both; }
.mec-form-step[data-step="1"] .mec-form-row { order:initial !important; }
.mec-form-step[hidden] { display:none !important; }
.mec-wizard-actions { display:flex; gap:14px; margin-top:22px; padding-top:4px; order:100; }
.mec-wizard-button,.mec-submit-button { min-height:52px; border:0; border-radius:calc(var(--mec-radius,16px) * .65); cursor:pointer; font-family:var(--mec-field-font,system-ui,sans-serif); font-size:15px; font-weight:700; transition:transform .2s ease,box-shadow .2s ease; }
.mec-next-button { width:100%; color:var(--mec-button-text,#fff); background:var(--mec-button,#32147f); box-shadow:0 10px 24px color-mix(in srgb,var(--mec-focus,#a21caf) 25%,transparent); }
.mec-back-button { flex:0 0 34%; color:var(--mec-focus,#a21caf); background:transparent; border:1px solid var(--mec-input-border,#d8c9f3); }
.mec-wizard-actions .mec-submit-button { flex:1; width:auto; }
.mec-wizard-button:hover,.mec-submit-button:hover:not(:disabled) { transform:translateY(-1px); }
@keyframes mecWizardSlideIn { from { opacity:0; transform:translateX(22px); } to { opacity:1; transform:translateX(0); } }
.mec-consent { order:90; display:flex; align-items:flex-start; gap:10px; margin:2px 0 18px; color:var(--mec-text,#43356f); font-size:.9em; line-height:1.5; }
.mec-consent input { width:18px; height:18px; margin-top:2px; accent-color:var(--mec-focus,#a21caf); }
.mec-success-copy {
    margin: 0;
}

.mec-whatsapp-redirect-title,
.mec-whatsapp-redirect-note {
    display: block;
}

.mec-whatsapp-redirect-title {
    margin-top: 14px;
    color: #087a3e;
    font-size: 1.05em;
}

.mec-whatsapp-redirect-note {
    margin-top: 6px;
    color: #166534;
    font-size: .92em;
}
.mec-calendar-day.partially-booked {
    background: #fef3c7;
    color: #92400e;
}
.mec-slot-availability-message {
    box-sizing: border-box;
    margin: 8px 2px 0;
    padding: 9px 12px;
    border-radius: 8px;
    background: #ecfdf5;
    color: #166534;
    font-size: .84em;
    line-height: 1.45;
}

.mec-slot-availability-message:empty {
    display: none;
}

.mec-slot-availability-message.is-unavailable {
    background: #fff7ed;
    color: #9a3412;
}
