[data-mmsb-booking] {
max-width: 860px;
margin: 0 auto;
padding: 22px;
border-radius: 22px;
background: #ffffff;
box-shadow: 0 16px 45px rgba(15, 23, 42, 0.07);
color: #2b1822;
box-sizing: border-box;
}
.mmsb-header {
text-align: center;
margin-bottom: 22px;
}
.mmsb-kicker {
margin: 0 0 6px;
text-transform: uppercase;
letter-spacing: 0.12em;
font-size: 11px;
font-weight: 800;
color: #874165;
}
.mmsb-header h2 {
margin: 0;
font-size: clamp(24px, 3vw, 34px);
line-height: 1.08;
color: #874165;
}
.mmsb-header p {
margin: 10px auto 0;
max-width: 560px;
color: #7a4a63;
font-size: 14px;
}
.mmsb-section {
margin-top: 18px;
padding: 18px;
border: 1px solid #eadde5;
border-radius: 18px;
background: #fdf8fb;
}
.mmsb-section h3 {
margin: 0 0 14px;
font-size: 16px;
line-height: 1.25;
color: #874165;
text-align: center;
}
.mmsb-mode-grid,
.mmsb-services,
.mmsb-form-grid,
.mmsb-date-grid {
display: grid;
gap: 12px;
}
.mmsb-mode-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.mmsb-services {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.mmsb-form-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.mmsb-date-grid {
grid-template-columns: minmax(0, 1.35fr) minmax(220px, 0.65fr);
align-items: start;
}
.mmsb-mode-card,
.mmsb-service-card,
.mmsb-slot,
.mmsb-submit,
.mmsb-calendar-nav,
.mmsb-calendar-day {
appearance: none;
font-family: inherit;
cursor: pointer;
transition: transform 0.16s ease, border-color 0.16s ease, background-color 0.16s ease, box-shadow 0.16s ease, color 0.16s ease;
}
[data-mmsb-booking] .mmsb-mode-card,
[data-mmsb-booking] .mmsb-service-card {
border: 1px solid #874165 !important;
border-radius: 14px;
background: #874165 !important;
color: #ffffff !important;
text-align: left;
padding: 14px 16px;
min-height: 74px;
box-shadow: none !important;
}
[data-mmsb-booking] .mmsb-mode-card:hover,
[data-mmsb-booking] .mmsb-service-card:hover {
transform: translateY(-1px);
border-color: #6f3552 !important;
background: #7a3b5c !important;
}
[data-mmsb-booking] .mmsb-mode-active,
[data-mmsb-booking] .mmsb-service-active {
border-color: #5e2d45 !important;
background: #6f3552 !important;
box-shadow: 0 0 0 3px rgba(135, 65, 101, 0.24) !important;
}
[data-mmsb-booking] .mmsb-mode-active::after,
[data-mmsb-booking] .mmsb-service-active::after {
content: "Selezionato";
display: inline-block;
margin-top: 8px;
padding: 3px 8px;
border-radius: 999px;
background: rgba(255, 255, 255, 0.18);
color: #ffffff;
font-size: 11px;
font-weight: 800;
}
[data-mmsb-booking] .mmsb-mode-title,
[data-mmsb-booking] .mmsb-service-title {
display: block;
font-weight: 800;
color: #ffffff !important;
font-size: 15px;
line-height: 1.25;
}
[data-mmsb-booking] .mmsb-mode-text,
[data-mmsb-booking] .mmsb-service-meta {
display: block;
margin-top: 7px;
color: rgba(255, 255, 255, 0.82) !important;
font-size: 13px;
line-height: 1.35;
}
.mmsb-field {
display: flex;
flex-direction: column;
gap: 7px;
font-weight: 700;
color: #4a2638;
font-size: 14px;
}
.mmsb-field-full {
margin-top: 12px;
}
.mmsb-field input,
.mmsb-field textarea {
width: 100%;
border: 1px solid #eadde5;
border-radius: 12px;
padding: 11px 12px;
font: inherit;
color: #2b1822;
background: #ffffff;
box-sizing: border-box;
}
.mmsb-field input:focus,
.mmsb-field textarea:focus {
outline: none;
border-color: #874165;
box-shadow: 0 0 0 3px rgba(135, 65, 101, 0.14);
}
.mmsb-day-note {
padding: 13px 14px;
border-radius: 14px;
background: #f5eaf0;
color: #6f3552;
font-size: 14px;
line-height: 1.45;
font-weight: 700;
}
.mmsb-calendar {
border: 1px solid #eadde5;
border-radius: 16px;
padding: 12px;
background: #ffffff;
}
.mmsb-calendar-head {
display: flex;
align-items: center;
justify-content: space-between;
gap: 10px;
margin-bottom: 10px;
color: #874165;
}
.mmsb-calendar-head strong {
font-size: 15px;
text-transform: capitalize;
}
[data-mmsb-booking] .mmsb-calendar-nav {
width: 34px;
height: 34px;
border: 1px solid #eadde5 !important;
border-radius: 999px;
background: #fbf6f9 !important;
color: #874165 !important;
font-size: 22px;
line-height: 1;
display: inline-flex;
align-items: center;
justify-content: center;
padding: 0;
}
[data-mmsb-booking] .mmsb-calendar-nav:hover:not(:disabled) {
background: #f5eaf0 !important;
border-color: #874165 !important;
}
[data-mmsb-booking] .mmsb-calendar-nav:disabled {
opacity: 0.35;
cursor: not-allowed;
}
.mmsb-calendar-weekdays,
.mmsb-calendar-days {
display: grid;
grid-template-columns: repeat(7, minmax(0, 1fr));
gap: 6px;
}
.mmsb-calendar-weekdays {
margin-bottom: 6px;
}
.mmsb-calendar-weekdays span {
text-align: center;
font-size: 11px;
font-weight: 800;
color: #874165;
}
[data-mmsb-booking] .mmsb-calendar-day {
border: 1px solid transparent !important;
border-radius: 10px;
min-height: 36px;
padding: 0;
background: #fbf4f8 !important;
color: #b9a6b0 !important;
font-size: 13px;
font-weight: 800;
box-shadow: none !important;
}
[data-mmsb-booking] .mmsb-calendar-day:hover:not(:disabled) {
transform: translateY(-1px);
}
[data-mmsb-booking] .mmsb-calendar-day:disabled {
cursor: not-allowed;
opacity: 1;
}
[data-mmsb-booking] .mmsb-calendar-day-empty {
visibility: hidden;
pointer-events: none;
}
[data-mmsb-booking] .mmsb-calendar-day-available {
background: #874165 !important;
color: #ffffff !important;
border-color: #874165 !important;
}
[data-mmsb-booking] .mmsb-calendar-day-available:hover {
background: #7a3b5c !important;
border-color: #6f3552 !important;
}
[data-mmsb-booking] .mmsb-calendar-day-active {
background: #6f3552 !important;
color: #ffffff !important;
border-color: #4e2439 !important;
box-shadow: 0 0 0 3px rgba(135, 65, 101, 0.25) !important;
}
[data-mmsb-booking] .mmsb-calendar-day-today {
border-color: #b77c9c !important;
}
.mmsb-slots {
display: flex;
flex-wrap: wrap;
gap: 9px;
margin-top: 14px;
}
[data-mmsb-booking] .mmsb-slot {
border: 1px solid #eadde5 !important;
background: #ffffff !important;
color: #874165 !important;
padding: 9px 13px;
border-radius: 999px;
font-weight: 800;
box-shadow: none !important;
}
[data-mmsb-booking] .mmsb-slot:hover {
transform: translateY(-1px);
border-color: #874165 !important;
}
[data-mmsb-booking] .mmsb-slot-active {
border-color: #5e2d45 !important;
background: #874165 !important;
color: #ffffff !important;
box-shadow: 0 0 0 3px rgba(135, 65, 101, 0.22) !important;
}
.mmsb-empty,
.mmsb-loading {
width: 100%;
padding: 13px 14px;
border-radius: 12px;
background: #fbf4f8;
color: #7a4a63;
font-weight: 700;
font-size: 14px;
}
.mmsb-privacy {
display: flex;
align-items: flex-start;
gap: 10px;
margin-top: 14px;
color: #6f3552;
font-size: 13px;
line-height: 1.45;
}
.mmsb-privacy input {
margin-top: 3px;
}
[data-mmsb-booking] .mmsb-submit {
margin-top: 16px;
border: none !important;
border-radius: 999px;
background: #874165 !important;
color: #ffffff !important;
padding: 12px 22px;
font-size: 15px;
font-weight: 900;
box-shadow: none !important;
}
[data-mmsb-booking] .mmsb-submit:hover {
background: #6f3552 !important;
transform: translateY(-1px);
}
[data-mmsb-booking] .mmsb-submit:disabled {
opacity: 0.65;
cursor: not-allowed;
transform: none;
}
.mmsb-alert {
display: none;
margin: 0 0 18px;
padding: 13px 14px;
border-radius: 12px;
font-weight: 800;
font-size: 14px;
}
.mmsb-alert-visible {
display: block;
}
.mmsb-alert-success {
background: #ecfdf3;
color: #166534;
border: 1px solid #bbf7d0;
}
.mmsb-alert-error {
background: #fff1f2;
color: #9f1239;
border: 1px solid #fecdd3;
}
@media (max-width: 760px) {
[data-mmsb-booking] {
padding: 16px;
border-radius: 18px;
}
.mmsb-section {
padding: 16px;
}
.mmsb-mode-grid,
.mmsb-services,
.mmsb-form-grid,
.mmsb-date-grid {
grid-template-columns: 1fr;
}
.mmsb-header h2 {
font-size: 25px;
}
} [data-mmsb-booking] {
max-width: 820px;
padding: 18px;
}
.mmsb-header {
margin-bottom: 16px;
}
.mmsb-header h2 {
font-size: clamp(22px, 2.5vw, 30px);
line-height: 1.1;
}
.mmsb-header p {
margin-top: 8px;
font-size: 13px;
}
.mmsb-section {
margin-top: 14px;
padding: 14px;
border-radius: 16px;
}
.mmsb-section h3 {
margin-bottom: 12px;
font-size: 15px;
}
.mmsb-services {
gap: 10px;
}
[data-mmsb-booking] .mmsb-service-card {
position: relative;
display: flex;
min-height: 58px;
flex-direction: column;
justify-content: center;
gap: 4px;
padding: 10px 42px 10px 14px;
border-radius: 12px;
}
[data-mmsb-booking] .mmsb-mode-card {
position: relative;
display: flex;
min-height: 66px;
flex-direction: column;
justify-content: center;
gap: 4px;
padding: 12px 42px 12px 14px;
}
[data-mmsb-booking] .mmsb-mode-title,
[data-mmsb-booking] .mmsb-service-title {
font-size: 14px;
line-height: 1.2;
}
[data-mmsb-booking] .mmsb-mode-text,
[data-mmsb-booking] .mmsb-service-meta {
margin-top: 0;
font-size: 12.5px;
line-height: 1.3;
}
[data-mmsb-booking] .mmsb-mode-active::after,
[data-mmsb-booking] .mmsb-service-active::after {
content: "✓";
position: absolute;
top: 10px;
right: 10px;
display: inline-flex;
width: 22px;
height: 22px;
margin: 0;
align-items: center;
justify-content: center;
border-radius: 999px;
background: rgba(255, 255, 255, 0.22);
color: #ffffff;
font-size: 13px;
font-weight: 900;
}
.mmsb-date-grid {
grid-template-columns: minmax(0, 1fr) minmax(190px, 0.42fr);
align-items: stretch;
gap: 12px;
}
.mmsb-date-main {
min-width: 0;
}
.mmsb-date-side {
display: flex;
min-height: 100%;
align-items: flex-end;
}
.mmsb-day-note {
width: 100%;
min-height: 44px;
padding: 10px 12px;
border: 1px solid #eadde5;
border-radius: 12px;
background: #fbf4f8;
color: #6f3552;
font-size: 12.5px;
line-height: 1.35;
font-weight: 800;
text-align: center;
display: flex;
align-items: center;
justify-content: center;
}
.mmsb-calendar {
padding: 10px;
}
.mmsb-calendar-head {
margin-bottom: 8px;
}
[data-mmsb-booking] .mmsb-calendar-day {
min-height: 32px;
border-radius: 9px;
font-size: 12.5px;
}
.mmsb-slots {
margin-top: 12px;
gap: 8px;
}
[data-mmsb-booking] .mmsb-slot {
padding: 8px 12px;
font-size: 13px;
}
@media (max-width: 760px) {
.mmsb-date-side {
align-items: stretch;
}
.mmsb-day-note {
margin-top: 10px;
}
[data-mmsb-booking] .mmsb-service-card,
[data-mmsb-booking] .mmsb-mode-card {
padding-right: 42px;
}
} .mmsb-date-grid {
grid-template-columns: minmax(0, 1fr) minmax(180px, 0.48fr);
align-items: start;
gap: 12px;
}
.mmsb-day-note {
min-height: 76px;
margin-top: 0;
padding: 12px 14px;
align-self: start;
white-space: pre-line;
text-align: center;
line-height: 1.35;
}
@media (max-width: 760px) {
.mmsb-date-grid {
grid-template-columns: 1fr;
}
.mmsb-day-note {
min-height: auto;
margin-top: 0;
}
} .mmsb-alert-success {
padding: 16px 18px;
border-width: 2px;
font-size: 15px;
text-align: center;
}