.fc-booking {
    --fc-border: #d8e2ea;
    --fc-border-strong: #bdcddd;
    --fc-text: #204820;
    --fc-text-soft: #667b8d;
    --fc-accent: #416333;
    --fc-accent-soft: #edf4fb;
    --fc-service-accent: #6b9251;
    --fc-service-soft: #f1f7ec;
    border: 1px solid var(--fc-border);
    border-radius: 24px;
    padding: 28px;
    background:
        radial-gradient(circle at top right, rgba(209, 226, 238, 0.38), transparent 28%),
        linear-gradient(180deg, #ffffff 0%, #f7fafc 100%);
    box-shadow: 0 20px 50px rgba(24, 42, 57, 0.09);
}

.fc-booking__header h3 {
    margin: 0 0 20px;
    color: var(--fc-text);
    font-size: 1.65rem;
    line-height: 1.15;
}

.fc-booking__summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin-bottom: 24px;
}

.fc-booking__summary-card {
    position: relative;
    overflow: hidden;
    min-height: 122px;
    padding: 18px 18px 16px;
    border: 1px solid var(--fc-border);
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 10px 26px rgba(23, 42, 58, 0.05);
}

.fc-booking__summary-card::before {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    height: 44px;
    background: linear-gradient(180deg, #eef3fb 0%, #f6f9fc 100%);
}

.fc-booking__summary-card--service::before {
    background: linear-gradient(180deg, #eef6ea 0%, #f8fbf5 100%);
}

.fc-booking__summary-card--clinic::before {
    background: linear-gradient(180deg, #e8eff4 0%, #f7fafc 100%);
}

.fc-booking__summary-eyebrow,
.fc-booking__field > span {
    position: relative;
    z-index: 1;
    display: block;
    margin-bottom: 8px;
    color: var(--fc-text-soft);
    font-size: 0.76rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.fc-booking__summary-body {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    gap: 14px;
    min-height: 70px;
}

.fc-booking__summary-avatar {
    width: 62px;
    height: 62px;
    flex: 0 0 62px;
    border: 4px solid #fff;
    border-radius: 50%;
    overflow: hidden;
    background: #dbe6ef;
    box-shadow: 0 10px 20px rgba(30, 49, 67, 0.14);
}

.fc-booking__summary-avatar img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

.fc-booking__summary-avatar.is-empty {
    display: none;
}

.fc-booking__summary-copy {
    min-width: 0;
}

.fc-booking__summary-copy strong {
    display: block;
    color: var(--fc-text);
    font-size: 1rem;
    line-height: 1.25;
}

.fc-booking__summary-subtitle,
.fc-booking__summary-meta {
    display: block;
    margin-top: 4px;
    line-height: 1.35;
}

.fc-booking__summary-subtitle {
    color: #5e7385;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.fc-booking__summary-meta {
    color: var(--fc-text-soft);
    font-size: 0.84rem;
}

.fc-booking__summary-subtitle.is-empty,
.fc-booking__summary-meta.is-empty {
    display: none;
}

.fc-booking__form {
    display: block;
}

.fc-booking__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.fc-booking__field {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.fc-booking__field--picker {
    grid-column: 1 / -1;
}

.fc-booking__field input {
    width: 100%;
    border: 1px solid var(--fc-border-strong);
    border-radius: 14px;
    padding: 13px 15px;
    background: #fff;
    color: var(--fc-text);
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.fc-booking__field input:focus {
    outline: none;
    border-color: var(--fc-accent);
    box-shadow: 0 0 0 4px rgba(31, 79, 111, 0.11);
}

.fc-booking__picker {
    display: block;
}

.fc-booking__picker-menu {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 16px;
}

.fc-booking__picker-empty {
    margin: 0;
    padding: 18px;
    border: 1px dashed var(--fc-border-strong);
    border-radius: 18px;
    background: #fbfdff;
    color: var(--fc-text-soft);
}

.fc-booking__picker-option {
    position: relative;
    width: 100%;
    min-height: 100%;
    display: flex;
    flex-direction: column;
    padding: 0;
    border: 1px solid var(--fc-border);
    border-radius: 22px;
    background: #fff;
    color: var(--fc-text);
    text-align: left;
    cursor: pointer;
    overflow: hidden;
    box-shadow: 0 12px 30px rgba(23, 42, 58, 0.06);
    transition:
        transform 0.18s ease,
        box-shadow 0.18s ease,
        border-color 0.18s ease;
}

.fc-booking__picker-option:hover {
    transform: translateY(-2px);
    box-shadow: 0 18px 34px rgba(23, 42, 58, 0.11);
}

.fc-booking__picker-option.is-selected {
    border-color: rgba(31, 79, 111, 0.5);
    box-shadow: 0 20px 36px rgba(31, 79, 111, 0.16);
}

.fc-booking__picker-option--service.is-selected {
    border-color: rgba(107, 146, 81, 0.52);
    box-shadow: 0 20px 36px rgba(107, 146, 81, 0.16);
}

.fc-booking__picker-option-check {
    position: absolute;
    top: 14px;
    right: 14px;
    width: 24px;
    height: 24px;
    border: 2px solid #c9d6e0;
    border-radius: 50%;
    background: #fff;
    transition: background-color 0.18s ease, border-color 0.18s ease, transform 0.18s ease;
}

.fc-booking__picker-option-check::after {
    content: "";
    position: absolute;
    top: 4px;
    left: 7px;
    width: 6px;
    height: 10px;
    border-right: 2px solid #fff;
    border-bottom: 2px solid #fff;
    transform: rotate(45deg);
    opacity: 0;
}

.fc-booking__picker-option.is-selected .fc-booking__picker-option-check {
    border-color: var(--fc-accent);
    background: var(--fc-accent);
    transform: scale(1.04);
}

.fc-booking__picker-option--service.is-selected .fc-booking__picker-option-check {
    border-color: var(--fc-service-accent);
    background: var(--fc-service-accent);
}

.fc-booking__picker-option.is-selected .fc-booking__picker-option-check::after {
    opacity: 1;
}

.fc-booking__picker-option-media {
    display: flex;
    justify-content: center;
}

.fc-booking__picker-option--doctor .fc-booking__picker-option-media {
    min-height: 88px;
    padding: 26px 18px 0;
    background: linear-gradient(180deg, #eef3fb 0%, #f8fbfd 100%);
    align-items: flex-end;
}

.fc-booking__picker-option--service .fc-booking__picker-option-media {
    padding: 24px 20px 0;
    align-items: center;
}

.fc-booking__picker-option-avatar {
    width: 92px;
    height: 92px;
    border: 5px solid #fff;
    border-radius: 50%;
    overflow: hidden;
    background: #dbe6ef;
    box-shadow: 0 12px 24px rgba(30, 49, 67, 0.16);
}

.fc-booking__picker-option--doctor .fc-booking__picker-option-avatar {
    margin-bottom: -46px;
}

.fc-booking__picker-option--service .fc-booking__picker-option-avatar {
    width: 88px;
    height: 88px;
    margin-bottom: 0;
    border-color: #f4f8f1;
}

.fc-booking__picker-option-avatar img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

.fc-booking__picker-option-avatar.is-empty {
    display: none;
}

.fc-booking__picker-option-copy {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.fc-booking__picker-option--doctor .fc-booking__picker-option-copy {
    align-items: center;
    padding: 58px 22px 18px;
    text-align: center;
}

.fc-booking__picker-option--service .fc-booking__picker-option-copy {
    align-items: center;
    padding: 16px 22px 20px;
    text-align: center;
}

.fc-booking__picker-option-label {
    color: var(--fc-text);
    font-size: 1.02rem;
    line-height: 1.3;
}

.fc-booking__picker-option-subtitle {
    color: #617688;
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.fc-booking__picker-option-meta {
    display: block;
    line-height: 1.35;
}

.fc-booking__picker-option--doctor .fc-booking__picker-option-meta--primary {
    width: 100%;
    margin-top: 6px;
    padding-top: 10px;
    border-top: 1px solid #dbe4ec;
    color: var(--fc-text-soft);
    font-size: 0.85rem;
}

.fc-booking__picker-option--service .fc-booking__picker-option-meta--primary {
    color: var(--fc-service-accent);
    font-size: 0.94rem;
    font-weight: 700;
}

.fc-booking__picker-option--service .fc-booking__picker-option-meta--secondary {
    color: var(--fc-text-soft);
    font-size: 0.88rem;
}

.fc-booking__phone-group {
    display: flex;
    align-items: stretch;
    border: 1px solid var(--fc-border-strong);
    border-radius: 14px;
    background: #fff;
    overflow: hidden;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.fc-booking__phone-group:focus-within {
    border-color: var(--fc-accent);
    box-shadow: 0 0 0 4px rgba(31, 79, 111, 0.11);
}

.fc-booking__phone-prefix {
    display: inline-flex;
    align-items: center;
    padding: 0 14px;
    background: var(--fc-accent-soft);
    color: var(--fc-text);
    font-weight: 700;
    border-right: 1px solid var(--fc-border-strong);
}

.fc-booking__phone-group input {
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

.fc-booking__phone-group input:focus {
    border-color: transparent;
    box-shadow: none;
}

.fc-booking .fc-booking__field--date {
    grid-column: 1 / -1;
}


.fc-booking .fc-booking__field--date {
    grid-column: 1 / -1;
}

.fc-booking .fc-booking__calendar {
    position: relative;
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: 420px;
    margin: 0;
    border: 1px solid #e8eee8;
    border-radius: 22px;
    overflow: hidden;
    background: #ffffff;
    box-shadow: 0 12px 28px rgba(48, 73, 54, 0.08);
}

.fc-booking .fc-booking__calendar-toolbar {
    display: grid;
    grid-template-columns: 36px minmax(0, 1fr) 36px;
    align-items: center;
    gap: 12px;
    padding: 16px 16px 10px;
    background: #ffffff;
}

.fc-booking .fc-booking__calendar-heading {
    min-width: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    text-align: center;
}

.fc-booking .fc-booking__calendar-heading strong {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin: 0;
    color: #475b50;
    font-size: 1.4rem;
    font-weight: 800;
    line-height: 1.1;
    text-transform: capitalize;
}

.fc-booking .fc-booking__calendar-heading strong::after {
    content: "";
    width: 10px;
    height: 6px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='%23687b70' d='M1.15.66a.75.75 0 0 1 1.06 0L5 3.44 7.79.66a.75.75 0 0 1 1.06 1.06L5.53 5.03a.75.75 0 0 1-1.06 0L1.15 1.72A.75.75 0 0 1 1.15.66z'/%3E%3C/svg%3E") no-repeat center / contain;
    opacity: 0.8;
}

.fc-booking .fc-booking__calendar-heading span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 54px;
    margin: 0;
    color: #687b70;
    font-size: 1.1rem;
    font-weight: 700;
    line-height: 1.1;
}

.fc-booking .fc-booking__calendar-nav {
    appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    min-width: 36px;
    min-height: 36px;
    margin: 0;
    padding: 0;
    border: 1px solid #e7ede7;
    border-radius: 999px;
    background: #ffffff;
    color: #93a297;
    box-shadow: 0 4px 10px rgba(48, 73, 54, 0.05);
    cursor: pointer;
    font: inherit;
    line-height: 1;
    transition: transform 0.18s ease, box-shadow 0.18s ease, background-color 0.18s ease, color 0.18s ease, border-color 0.18s ease;
}

.fc-booking .fc-booking__calendar-nav span {
    display: block;
    font-size: 1.1rem;
    line-height: 1;
    transform: translateY(-1px);
}

.fc-booking .fc-booking__calendar-nav:hover {
    background: #f8fbf8;
    border-color: #dce7dc;
    color: #5f7366;
    transform: translateY(-1px);
}

.fc-booking .fc-booking__calendar-nav:focus-visible {
    outline: 0;
    box-shadow: 0 0 0 3px rgba(127, 177, 140, 0.18);
}

.fc-booking .fc-booking__calendar-weekdays,
.fc-booking .fc-booking__calendar-grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    width: 100%;
    box-sizing: border-box;
}

.fc-booking .fc-booking__calendar-weekdays {
    gap: 6px;
    padding: 0 16px 8px;
    background: #ffffff;
}

.fc-booking .fc-booking__calendar-grid {
    gap: 6px;
    padding: 0 16px 16px;
}

.fc-booking .fc-booking__calendar-weekday {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 22px;
    color: #7f9085;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.02em;
    text-align: center;
    text-transform: uppercase;
}

.fc-booking .fc-booking__calendar-day {
    position: relative;
    appearance: none;
    box-sizing: border-box;
    width: 100%;
    aspect-ratio: 1 / 1;
    min-height: 42px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    margin: 0;
    padding: 7px 6px;
    border: 1px solid #e7eee7;
    border-radius: 9px;
    background: #ffffff;
    color: #8fa196;
    box-shadow: none;
    cursor: pointer;
    font: inherit;
    line-height: 1;
    text-align: center;
    transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease, background-color 0.18s ease, color 0.18s ease;
}

.fc-booking .fc-booking__calendar-day:hover:not(:disabled) {
    transform: translateY(-1px);
    box-shadow: 0 8px 18px rgba(48, 73, 54, 0.08);
}

.fc-booking .fc-booking__calendar-day:disabled {
    cursor: default;
}

.fc-booking .fc-booking__calendar-day:focus-visible {
    outline: 0;
    box-shadow: 0 0 0 3px rgba(127, 177, 140, 0.18);
}

.fc-booking .fc-booking__calendar-day-number {
    display: block;
    font-weight: 700;
    font-size: 1rem;
    line-height: 1;
}

.fc-booking .fc-booking__calendar-day-indicator {
    position: absolute;
    right: 5px;
    bottom: 4px;
    display: block;
    width: 12px;
    height: 12px;
    flex: 0 0 12px;
    background: transparent;
    opacity: 0.95;
}

.fc-booking .fc-booking__calendar-day.is-available {
    border-color: #bfe3cb;
    background: #dff0e6;
    color: #61af7c;
}

.fc-booking .fc-booking__calendar-day.is-available .fc-booking__calendar-day-indicator {
    display: none;
}

.fc-booking .fc-booking__calendar-day.is-full {
    border-color: #f7d293;
    background: #ffefce;
    color: #f1af42;
}

.fc-booking .fc-booking__calendar-day.is-full .fc-booking__calendar-day-indicator {
    display: none;
}

.fc-booking .fc-booking__calendar-day.is-clinic_holiday {
    border-color: #dcccf8;
    background: #f4edff;
    color: #9b7ad7;
}

.fc-booking .fc-booking__calendar-day.is-clinic_holiday .fc-booking__calendar-day-indicator {
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath fill='%239b7ad7' d='M184 48c0-8.8 7.2-16 16-16h112c8.8 0 16 7.2 16 16v40h40c26.5 0 48 21.5 48 48v296c0 26.5-21.5 48-48 48H144c-26.5 0-48-21.5-48-48V136c0-26.5 21.5-48 48-48h40V48zm56 104c-13.3 0-24 10.7-24 24v32h-32c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h32v32c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24v-32h32c13.3 0 24-10.7 24-24v-16c0-13.3-10.7-24-24-24h-32v-32c0-13.3-10.7-24-24-24h-16z'/%3E%3C/svg%3E") no-repeat center / contain;
}

.fc-booking .fc-booking__calendar-day.is-doctor_leave {
    border-color: #f8bfd3;
    background: #ffe6ef;
    color: #ec6ea0;
}

.fc-booking .fc-booking__calendar-day.is-doctor_leave .fc-booking__calendar-day-indicator {
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath fill='%23ec6ea0' d='M184 48c0-8.8 7.2-16 16-16h112c8.8 0 16 7.2 16 16v24h56c22.1 0 40 17.9 40 40v96c0 22.1-17.9 40-40 40h-48v40c0 13.3-10.7 24-24 24h-16v40h64c57.4 0 104 46.6 104 104v8c0 13.3-10.7 24-24 24H72c-13.3 0-24-10.7-24-24v-8c0-57.4 46.6-104 104-104h64v-40h-16c-13.3 0-24-10.7-24-24v-40h-48c-22.1 0-40-17.9-40-40v-96c0-22.1 17.9-40 40-40h56V48z'/%3E%3C/svg%3E") no-repeat center / contain;
}

.fc-booking .fc-booking__calendar-day.is-past,
.fc-booking .fc-booking__calendar-day.is-unavailable,
.fc-booking .fc-booking__calendar-day.is-outside {
    border-color: #edf2ed;
    background: #fbfcfb;
    color: #d7dfd9;
    box-shadow: none;
}

.fc-booking .fc-booking__calendar-day.is-past .fc-booking__calendar-day-indicator,
.fc-booking .fc-booking__calendar-day.is-unavailable .fc-booking__calendar-day-indicator,
.fc-booking .fc-booking__calendar-day.is-outside .fc-booking__calendar-day-indicator {
    display: none;
}

.fc-booking .fc-booking__calendar-day.is-selected {
    border-color: #79b48d;
    box-shadow: 0 0 0 2px rgba(121, 180, 141, 0.22);
}

.fc-booking .fc-booking__calendar-day.is-placeholder {
    min-height: 42px;
    aspect-ratio: 1 / 1;
    border: 1px solid #f0f4f0;
    border-radius: 9px;
    background: #ffffff;
}

.fc-booking .fc-booking__calendar-day.is-message {
    grid-column: 1 / -1;
    aspect-ratio: auto;
    min-height: auto;
    justify-content: center;
    align-items: center;
    padding: 18px;
    color: var(--fc-text-soft);
    line-height: 1.5;
    text-align: center;
}

.fc-booking .fc-booking__calendar-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 16px;
    max-width: 420px;
    margin-top: 14px;
    padding: 0 4px;
}

.fc-booking .fc-booking__calendar-legend::before {
    content: "Calendar legend";
    flex-basis: 100%;
    color: #5c6d73;
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.fc-booking .fc-booking__calendar-legend-item {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #6f7d86;
    font-size: 0.83rem;
    font-weight: 600;
    line-height: 1.25;
}

.fc-booking .fc-booking__calendar-legend-dot {
    display: inline-block;
    width: 18px;
    height: 18px;
    flex: 0 0 18px;
    background: transparent;
}

.fc-booking .fc-booking__calendar-legend-dot.is-available {
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath fill='%2361af7c' d='M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM369 209L241 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L335 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z'/%3E%3C/svg%3E") no-repeat center / contain;
}

.fc-booking .fc-booking__calendar-legend-dot.is-full {
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath fill='%23f1af42' d='M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM216 336h24V272H216c-13.3 0-24-10.7-24-24s10.7-24 24-24h48c13.3 0 24 10.7 24 24v88h8c13.3 0 24 10.7 24 24s-10.7 24-24 24H216c-13.3 0-24-10.7-24-24s10.7-24 24-24zm40-208a32 32 0 1 1 0 64 32 32 0 1 1 0-64z'/%3E%3C/svg%3E") no-repeat center / contain;
}

.fc-booking .fc-booking__calendar-legend-dot.is-clinic-holiday {
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath fill='%239b7ad7' d='M184 48c0-8.8 7.2-16 16-16h112c8.8 0 16 7.2 16 16v40h40c26.5 0 48 21.5 48 48v296c0 26.5-21.5 48-48 48H144c-26.5 0-48-21.5-48-48V136c0-26.5 21.5-48 48-48h40V48zm56 104c-13.3 0-24 10.7-24 24v32h-32c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h32v32c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24v-32h32c13.3 0 24-10.7 24-24v-16c0-13.3-10.7-24-24-24h-32v-32c0-13.3-10.7-24-24-24h-16z'/%3E%3C/svg%3E") no-repeat center / contain;
}

.fc-booking .fc-booking__calendar-legend-dot.is-doctor-leave {
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath fill='%23ec6ea0' d='M184 48c0-8.8 7.2-16 16-16h112c8.8 0 16 7.2 16 16v24h56c22.1 0 40 17.9 40 40v96c0 22.1-17.9 40-40 40h-48v40c0 13.3-10.7 24-24 24h-16v40h64c57.4 0 104 46.6 104 104v8c0 13.3-10.7 24-24 24H72c-13.3 0-24-10.7-24-24v-8c0-57.4 46.6-104 104-104h64v-40h-16c-13.3 0-24-10.7-24-24v-40h-48c-22.1 0-40-17.9-40-40v-96c0-22.1 17.9-40 40-40h56V48z'/%3E%3C/svg%3E") no-repeat center / contain;
}

.fc-booking .fc-booking__calendar-legend-dot.is-past {
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath fill='%23d5dde5' d='M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM175 175c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z'/%3E%3C/svg%3E") no-repeat center / contain;
}

.fc-booking__slots {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 22px;
    min-height: 46px;
}

.fc-booking__hint {
    margin: 0;
    color: var(--fc-text-soft);
}

.fc-booking__slot {
    border: 1px solid var(--fc-border-strong);
    border-radius: 999px;
    padding: 10px 16px;
    background: #fff;
    color: var(--fc-text);
    cursor: pointer;
    transition: all 0.18s ease;
}

.fc-booking__slot:hover,
.fc-booking__slot.is-selected {
    border-color: var(--fc-accent);
    background: var(--fc-accent);
    color: #fff;
}

.fc-booking__actions {
    margin-top: 24px;
}

.fc-booking__submit {
    border: 0;
    border-radius: 999px;
    padding: 14px 24px;
    background: linear-gradient(135deg, #163b57 0%, #285b7b 100%);
    color: #fff;
    cursor: pointer;
    font-weight: 700;
    letter-spacing: 0.01em;
    box-shadow: 0 12px 24px rgba(22, 59, 87, 0.18);
}

.fc-booking__submit:disabled {
    opacity: 0.65;
    cursor: wait;
}

.fc-booking__notice {
    margin-top: 14px;
    min-height: 24px;
    color: var(--fc-text);
}

.fc-booking__notice.is-error {
    color: #b42318;
}

.fc-booking__notice.is-success {
    color: #147347;
}

.fc-booking--error {
    border-color: #f5c2c7;
    background: #fff1f2;
    color: #b42318;
}

.fc-booking-thank-you {
    padding: 28px;
    border: 1px solid var(--fc-border);
    border-radius: 24px;
    background:
        radial-gradient(circle at top right, rgba(216, 239, 219, 0.45), transparent 28%),
        linear-gradient(180deg, #ffffff 0%, #f7fcf8 100%);
    box-shadow: 0 20px 40px rgba(24, 42, 57, 0.08);
}

.fc-booking-thank-you__eyebrow {
    display: inline-block;
    margin-bottom: 10px;
    color: #4b7a57;
    font-size: 0.76rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.fc-booking-thank-you h3 {
    margin: 0 0 12px;
    color: var(--fc-text);
    font-size: 1.55rem;
    line-height: 1.2;
}

.fc-booking-thank-you p {
    margin: 0;
    color: var(--fc-text-soft);
    font-size: 1rem;
    line-height: 1.7;
}

@media (max-width: 991px) {
    .fc-booking__summary {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 767px) {
    .fc-booking {
        padding: 20px;
        border-radius: 20px;
    }

    .fc-booking__grid,
    .fc-booking__picker-menu {
        grid-template-columns: 1fr;
    }

    .fc-booking__summary-card {
        min-height: auto;
    }

    .fc-booking__summary-body {
        align-items: flex-start;
    }

    .fc-booking .fc-booking__calendar {
        border-radius: 20px;
    }

    .fc-booking .fc-booking__calendar-toolbar {
        gap: 10px;
        grid-template-columns: 34px minmax(0, 1fr) 34px;
        padding: 14px 14px 12px;
    }

    .fc-booking .fc-booking__calendar-weekdays,
    .fc-booking .fc-booking__calendar-grid {
        gap: 6px;
    }

    .fc-booking .fc-booking__calendar-weekdays {
        padding: 14px 14px 8px;
    }

    .fc-booking .fc-booking__calendar-grid {
        padding: 0 14px 14px;
    }

    .fc-booking .fc-booking__calendar-day,
    .fc-booking .fc-booking__calendar-day.is-placeholder {
        min-height: 46px;
        padding: 8px 8px 7px;
        border-radius: 10px;
    }

    .fc-booking .fc-booking__calendar-heading strong {
        font-size: 1.02rem;
    }

    .fc-booking .fc-booking__calendar-heading span,
    .fc-booking .fc-booking__calendar-legend-item {
        font-size: 0.78rem;
    }

    .fc-booking-thank-you {
        padding: 22px;
        border-radius: 20px;
    }
}
