.yoguini-private-classes {
    --yg-private-card: #fffdf8;
    --yg-private-ink: var(--yoguini-brand-ink, #223128);
    --yg-private-muted: var(--yoguini-brand-muted, #6d6a61);
    --yg-private-accent: var(--yoguini-brand-accent, #496b53);
    --yg-private-accent-dark: #35513e;
    --yg-private-soft: #e9efe6;
    --yg-private-border: #d8d5c9;
    color: var(--yg-private-ink);
    width: 100%;
}

.yoguini-private-classes * {
    box-sizing: border-box;
}

.yoguini-private-classes__inner {
    width: 100%;
}

.yoguini-private-booking__heading p {
    color: var(--yg-private-accent);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .12em;
    margin: 0 0 8px;
}

.yoguini-private-classes h2,
.yoguini-private-classes h3 {
    color: var(--yg-private-ink);
    line-height: 1.15;
}

.yoguini-private-form__submit {
    align-items: center;
    background: var(--yg-private-accent);
    border: 1px solid var(--yg-private-accent);
    border-radius: 7px;
    color: #fff;
    cursor: pointer;
    display: inline-flex;
    font: inherit;
    font-weight: 800;
    justify-content: center;
    min-height: 48px;
    padding: 12px 20px;
}

.yoguini-private-form__submit:hover,
.yoguini-private-form__submit:focus {
    background: var(--yg-private-accent-dark);
    border-color: var(--yg-private-accent-dark);
    color: #fff;
}

.yoguini-private-notice {
    border: 1px solid var(--yg-private-border);
    border-radius: 8px;
    margin: 0 0 18px;
    padding: 15px 17px;
}

.yoguini-private-notice p {
    margin: 0;
}

.yoguini-private-notice.is-success {
    background: #eaf5eb;
    border-color: #a4c9aa;
}

.yoguini-private-notice.is-error {
    background: #fff1ef;
    border-color: #dba29a;
}

.yoguini-private-notice.is-info {
    background: #eef4f6;
    border-color: #aebfc4;
}

.yoguini-private-classes__unavailable h2,
.yoguini-private-booking__heading h2 {
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(27px, 4vw, 38px);
    font-weight: 400;
    margin: 0 0 12px;
}

.yoguini-private-classes__unavailable {
    background: rgba(255, 255, 255, .62);
    border: 1px dashed var(--yg-private-border);
    border-radius: 10px;
    margin: 0;
    padding: 34px;
    text-align: center;
}

.yoguini-private-classes__unavailable p {
    color: var(--yg-private-muted);
    margin: 0;
}

.yoguini-private-booking {
    background: var(--yg-private-card);
    border: 1px solid var(--yg-private-border);
    border-radius: 12px;
    box-shadow: 0 18px 50px rgba(34, 49, 40, .09);
    margin: 0;
    padding: clamp(20px, 4vw, 36px);
}

.yoguini-private-booking[hidden] {
    display: none;
}

.yoguini-private-booking__heading {
    align-items: start;
    display: flex;
    justify-content: space-between;
}

.yoguini-private-booking__heading h2 {
    margin-bottom: 0;
}

.yoguini-private-form {
    display: grid;
    gap: 24px;
    margin-top: 28px;
}

.yoguini-private-honeypot {
    left: -9999px;
    position: absolute;
}

.yoguini-private-calendar {
    display: grid;
    gap: 22px;
    grid-template-columns: minmax(0, 1.55fr) minmax(210px, .65fr);
}

.yoguini-private-calendar fieldset {
    border: 0;
    margin: 0;
    min-width: 0;
    padding: 0;
}

.yoguini-private-calendar legend {
    font-size: 15px;
    font-weight: 800;
    margin-bottom: 14px;
}

.yoguini-private-calendar__month-navigation {
    align-items: center;
    display: grid;
    gap: 12px;
    grid-template-columns: 38px minmax(0, 1fr) 38px;
    margin-bottom: 13px;
}

.yoguini-private-calendar__month-navigation button {
    align-items: center;
    background: #fff;
    border: 1px solid var(--yg-private-border);
    border-radius: 50%;
    color: var(--yg-private-ink);
    cursor: pointer;
    display: inline-flex;
    font: inherit;
    font-size: 18px;
    height: 38px;
    justify-content: center;
    padding: 0;
    width: 38px;
}

.yoguini-private-calendar__month-navigation button:disabled {
    cursor: default;
    opacity: .32;
}

.yoguini-private-calendar__month-titles h3 {
    font-size: 16px;
    letter-spacing: .03em;
    margin: 0;
    text-align: center;
    text-transform: uppercase;
}

.yoguini-private-calendar__weekdays {
    color: var(--yg-private-muted);
    display: grid;
    font-size: 11px;
    font-weight: 800;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    margin-bottom: 5px;
    text-align: center;
}

.yoguini-private-calendar__date-grid {
    display: grid;
    gap: 5px;
    grid-template-columns: repeat(7, minmax(0, 1fr));
}

.yoguini-private-calendar input[type="radio"] {
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    height: 1px;
    overflow: hidden;
    position: absolute;
    white-space: nowrap;
    width: 1px;
}

.yoguini-private-calendar__date-grid label {
    align-items: center;
    background: #fff;
    border: 1px solid var(--yg-private-border);
    border-radius: 7px;
    cursor: pointer;
    display: flex;
    font-size: 14px;
    font-weight: 800;
    justify-content: center;
    min-height: 42px;
    padding: 6px 3px;
}

.yoguini-private-calendar__day {
    align-items: center;
    border: 1px solid transparent;
    border-radius: 7px;
    color: var(--yg-private-muted);
    display: flex;
    font-size: 13px;
    justify-content: center;
    min-height: 42px;
    opacity: .42;
    padding: 6px 3px;
}

.yoguini-private-calendar__date-grid .is-today {
    border-color: var(--yg-private-accent);
}

.yoguini-private-calendar input[type="radio"]:focus + label {
    outline: 2px solid var(--yg-private-accent);
    outline-offset: 2px;
}

.yoguini-private-calendar input[type="radio"]:checked + label {
    background: var(--yg-private-accent);
    border-color: var(--yg-private-accent);
    color: #fff;
}

.yoguini-private-calendar__time-help {
    color: var(--yg-private-muted);
    font-size: 13px;
    line-height: 1.45;
    margin: 0;
}

.yoguini-private-calendar__time-help[hidden] {
    display: none;
}

.yoguini-private-calendar__times > div {
    display: grid;
    gap: 8px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.yoguini-private-calendar__times > div[hidden] {
    display: none;
}

.yoguini-private-calendar__times label {
    background: #fff;
    border: 1px solid var(--yg-private-border);
    border-radius: 7px;
    cursor: pointer;
    font-weight: 800;
    padding: 11px 8px;
    text-align: center;
}

.yoguini-private-form__fields {
    display: grid;
    gap: 15px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.yoguini-private-form__fields label {
    display: grid;
    gap: 6px;
}

.yoguini-private-form__fields label > span {
    font-size: 14px;
    font-weight: 800;
}

.yoguini-private-form__fields .is-wide {
    grid-column: 1 / -1;
}

.yoguini-private-form input,
.yoguini-private-form select,
.yoguini-private-form textarea {
    background: #fff;
    border: 1px solid #cbc7ba;
    border-radius: 7px;
    color: var(--yg-private-ink);
    font: inherit;
    min-height: 44px;
    padding: 10px 11px;
    width: 100%;
}

.yoguini-private-form textarea {
    line-height: 1.5;
    resize: vertical;
}

.yoguini-private-form__summary {
    align-items: center;
    background: var(--yg-private-soft);
    border-radius: 8px;
    display: grid;
    gap: 5px 16px;
    grid-template-columns: minmax(0, 1fr) auto;
    padding: 16px 18px;
}

.yoguini-private-form__summary span {
    font-weight: 800;
}

.yoguini-private-form__summary strong {
    color: var(--yg-private-accent-dark);
    font-size: 26px;
    grid-column: 2;
    grid-row: 1 / span 2;
}

.yoguini-private-form__summary small,
.yoguini-private-form__terms {
    color: var(--yg-private-muted);
    line-height: 1.45;
}

.yoguini-private-form__terms {
    font-size: 13px;
    margin: -8px 0 0;
}

.yoguini-private-form__consent {
    align-items: start;
    display: grid;
    gap: 10px;
    grid-template-columns: 18px minmax(0, 1fr);
}

.yoguini-private-form__consent input {
    margin-top: 3px;
    min-height: 0;
    width: auto;
}

.yoguini-private-form__consent span {
    color: var(--yg-private-muted);
    font-size: 13px;
    line-height: 1.45;
}

.yoguini-private-form__submit {
    justify-self: start;
}

@media (max-width: 760px) {
    .yoguini-private-calendar {
        grid-template-columns: 1fr;
    }

    .yoguini-private-calendar__times > div {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 540px) {
    .yoguini-private-form__fields,
    .yoguini-private-calendar__times > div {
        grid-template-columns: 1fr;
    }

    .yoguini-private-form__summary {
        grid-template-columns: 1fr;
    }

    .yoguini-private-form__summary strong {
        grid-column: 1;
        grid-row: auto;
    }

    .yoguini-private-form__submit {
        justify-self: stretch;
        width: 100%;
    }
}
