/* ==========================================================================
   BOOKING (schedule a call) — Desktop (1280px – 1920px)
   Single-screen page: nav row, profile/menu, background wordmark.
   Being built step by step — this pass is just the shell.
   Design reference: 1920x922 (see global.css fluid scale).
   ========================================================================== */

.booking-screen {
    position: relative;
    width: 100%;
    height: 100vh;
    background-color: #ffffff;
    overflow: hidden;
}

/* Top-left nav row — same flex + gap pattern as message-nav / ct-nav:
   a 40px gap holds automatically in every language. */
.booking-nav {
    position: absolute;
    left: 5rem;
    top: 5rem;
    display: flex;
    align-items: baseline;
    gap: 4rem;
    z-index: 2;
}

.booking-nav-link {
    font-family: 'Atyp Display', sans-serif;
    font-weight: 400;
    font-size: 4rem;
    line-height: 4rem;
    letter-spacing: -0.08em;
    color: #000000;
    opacity: 1;
    transition: opacity 0.2s ease;
}

.booking-nav-link:hover {
    opacity: 0.5;
}

.booking-nav-link--homepage {
    text-transform: uppercase;
}

/* Background wordmark, anchored to the bottom edge, full screen width —
   sits behind every other element on the screen. */
.booking-fone {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 45.5rem;
    z-index: 0;
    pointer-events: none;
}

.booking-photo {
    position: absolute;
    left: 15rem;
    top: 17rem;
    width: 11rem;
    height: 11rem;
    object-fit: cover;
    z-index: 1;
}

.booking-meet-text {
    position: absolute;
    left: 27.5rem;
    top: 19rem;
    font-family: 'Atyp Display', sans-serif;
    font-size: 3rem;
    line-height: 3rem;
    letter-spacing: -0.05em;
    color: #000000;
    opacity: 1;
    z-index: 1;
}

.booking-meet-name {
    font-weight: 500;
}

.booking-meet-role {
    font-weight: 300;
}

.booking-meet-of {
    font-weight: 300;
}

.booking-meet-brand {
    font-weight: 600;
}

.booking-calendar-box {
    position: absolute;
    left: 15rem;
    top: 29rem;
    width: 64.2rem;
    height: 59.2rem;
    background-color: #000000;
    opacity: 1;
    border-radius: 1rem 3rem 3rem 3rem;
    box-shadow: 0 0.5rem 2rem rgba(0, 0, 0, 0.1);
    z-index: 1;
}

/* Month label + prev/next arrows — a centered flex row does the "40px
   gap on each side of the text" job automatically, in every language,
   without measuring text width by hand. Each child gets its own
   margin-top since the text and arrows sit at different heights. */
.booking-cal-header {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    gap: 4rem;
}

.booking-cal-month {
    margin-top: 2.5rem;
    font-family: 'Atyp Display', sans-serif;
    font-weight: 600;
    font-size: 4rem;
    line-height: 4rem;
    letter-spacing: -0.08em;
    color: #ffffff;
    opacity: 1;
    user-select: none;
}

.booking-cal-arrow {
    margin-top: 4.1rem;
    width: 2rem;
    height: 2rem;
    padding: 0;
    background: none;
    border: none;
    cursor: pointer;
    transition: opacity 0.2s ease;
}

.booking-cal-arrow:hover {
    opacity: 0.6;
}

.booking-cal-arrow img {
    display: block;
    width: 100%;
    height: 100%;
}

.booking-cal-weekdays {
    position: absolute;
    left: 5.1rem;
    top: 9.2rem;
    display: grid;
    grid-template-columns: repeat(7, 6rem);
    column-gap: 2rem;
}

.booking-cal-weekday {
    font-family: 'Atyp Display', sans-serif;
    font-weight: 600;
    font-size: 3rem;
    line-height: 3rem;
    letter-spacing: -0.05em;
    color: #ffffff;
    opacity: 1;
    text-align: center;
    user-select: none;
}

.booking-cal-grid {
    position: absolute;
    left: 5.1rem;
    top: 13.2rem;
    display: grid;
    grid-template-columns: repeat(7, 6rem);
    grid-auto-rows: 6rem;
    column-gap: 2rem;
    row-gap: 1.5rem;
}

.booking-cal-day {
    width: 6rem;
    height: 6rem;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: rgba(255, 255, 255, 0.1);
    border: 0.05rem solid rgba(255, 255, 255, 0.2);
    border-radius: 1rem;
    cursor: pointer;
}

.booking-cal-day-num {
    position: relative;
    top: -0.2rem;
    font-family: 'Atyp Display', sans-serif;
    font-weight: 500;
    font-size: 3rem;
    line-height: 3rem;
    letter-spacing: -0.05em;
    color: #ffffff;
    opacity: 1;
    user-select: none;
}

/* Passed dates and every Sunday (studio doesn't take calls on Sundays)
   share the same disabled look. */
.booking-cal-day.is-disabled {
    background-color: rgba(255, 255, 255, 0.05);
    border-color: rgba(255, 255, 255, 0.05);
    cursor: default;
    pointer-events: none;
}

.booking-cal-day.is-disabled .booking-cal-day-num {
    opacity: 0.2;
}

/* Clicking an active day marks it selected — same look as "today". */
.booking-cal-day.is-selected {
    background-color: #ffffff;
    border-color: #ffffff;
}

.booking-cal-day.is-selected .booking-cal-day-num {
    color: #000000;
    opacity: 1;
}

/* Today (when not the selected date) — same fill as a normal cell,
   just a fully-opaque white border to mark it out from the rest. */
.booking-cal-day.is-today {
    border-color: #ffffff;
}

.booking-duration-box {
    position: absolute;
    top: 17rem;
    right: 15rem;
    width: 94.3rem;
    height: 71.2rem;
    background-color: #ffffff;
    border-radius: 3rem;
    box-shadow: 0 0.5rem 2rem rgba(0, 0, 0, 0.1);
    z-index: 1;
}

.booking-duration-heading {
    position: absolute;
    top: 5rem;
    left: 6rem;
    font-family: 'Atyp Display', sans-serif;
    font-weight: 600;
    font-size: 4rem;
    line-height: 4rem;
    letter-spacing: -0.08em;
    color: #000000;
    opacity: 1;
}

.booking-duration-btn {
    position: absolute;
    top: 11.5rem;
    width: 21rem;
    height: 5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #000000;
    border-radius: 5rem;
    opacity: 1;
    transition: opacity 0.2s ease;
}

.booking-duration-btn span {
    position: relative;
    top: -0.2rem;
    font-family: 'Atyp Display', sans-serif;
    font-weight: 600;
    font-size: 2.5rem;
    line-height: 2.5rem;
    letter-spacing: -0.08em;
    color: #ffffff;
}

.booking-duration-btn.is-selected {
    opacity: 0.5;
}

.booking-duration-btn--1h { left: 6rem; }
.booking-duration-btn--30m { left: 28.5rem; }
.booking-duration-btn--15m { left: 51rem; }

.booking-time-heading {
    position: absolute;
    left: 6rem;
    top: 24.2rem;
    font-family: 'Atyp Display', sans-serif;
    font-weight: 600;
    font-size: 4rem;
    line-height: 4rem;
    letter-spacing: -0.08em;
    color: #000000;
    opacity: 1;
    white-space: pre-line;
}

.booking-time-grid {
    position: absolute;
    left: 6rem;
    top: 35.2rem;
    display: grid;
    grid-template-columns: repeat(6, 12rem);
    grid-auto-rows: 6rem;
    column-gap: 2rem;
    row-gap: 2rem;
}

.booking-time-slot {
    width: 12rem;
    height: 6rem;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: rgba(0, 0, 0, 0.2);
    border: 0.1rem solid rgba(0, 0, 0, 0.3);
    border-radius: 1rem;
    cursor: pointer;
}

.booking-time-slot span {
    position: relative;
    top: -0.2rem;
    font-family: 'Atyp Display', sans-serif;
    font-weight: 600;
    font-size: 3rem;
    line-height: 3rem;
    letter-spacing: -0.05em;
    color: rgba(255, 255, 255, 0.8);
    user-select: none;
}

.booking-time-slot.is-selected {
    background-color: #000000;
}

/* Step 1 (calendar + duration + fone) fades out into step 2 (the final
   confirm platform) once a date, duration and time are all picked. */
.booking-step-1 {
    opacity: 1;
    transition: opacity 0.5s ease;
}

.booking-step-1.is-hidden {
    opacity: 0;
    pointer-events: none;
}

.booking-step-2 {
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.5s ease;
}

.booking-step-2.is-active {
    opacity: 1;
    pointer-events: auto;
}

.booking-fone2 {
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 182rem;
    height: 80.2rem;
    z-index: 0;
    pointer-events: none;
}

.booking-platform {
    position: absolute;
    top: 18rem;
    left: 50%;
    transform: translateX(-50%);
    width: 124.6rem;
    height: 69.1rem;
    z-index: 1;
}

.booking-platform-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 0;
}

.booking-back-btn {
    position: absolute;
    left: 13rem;
    bottom: 4rem;
    width: 22.6rem;
    height: 6rem;
    padding: 0;
    background: none;
    border: none;
    cursor: pointer;
    opacity: 1;
    transition: opacity 0.2s ease;
    z-index: 1;
}

.booking-back-btn:hover {
    opacity: 0.7;
}

.booking-back-btn img {
    position: absolute;
    top: 0;
    left: 0;
    display: block;
    width: 100%;
    height: 100%;
}

.booking-back-btn-label {
    position: absolute;
    right: 1.9rem;
    top: 1.2rem;
    font-family: 'Atyp Display', sans-serif;
    font-weight: 600;
    font-size: 3rem;
    line-height: 3rem;
    letter-spacing: -0.08em;
    color: #ffffff;
    text-align: right;
}

.booking2-photo {
    position: absolute;
    left: 13rem;
    top: 4.5rem;
    width: 7.5rem;
    height: 7.5rem;
    object-fit: cover;
    z-index: 1;
}

.booking2-meet-name {
    position: absolute;
    left: 22rem;
    top: 6.5rem;
    font-family: 'Atyp Display', sans-serif;
    font-weight: 600;
    font-size: 3rem;
    line-height: 3rem;
    letter-spacing: -0.08em;
    color: #828282;
    opacity: 1;
    user-select: none;
    z-index: 1;
}

.booking2-meet-role {
    position: absolute;
    left: 22rem;
    top: 9.3rem;
    font-family: 'Atyp Display', sans-serif;
    font-weight: 300;
    font-size: 2rem;
    line-height: 2rem;
    letter-spacing: -0.08em;
    color: #828282;
    opacity: 0.5;
    user-select: none;
    z-index: 1;
}

.booking2-meet-brand {
    font-weight: 600;
}

.booking2-label {
    position: absolute;
    font-family: 'Atyp Display', sans-serif;
    font-weight: 600;
    font-size: 3rem;
    line-height: 3rem;
    letter-spacing: -0.08em;
    color: #000000;
    opacity: 1;
    z-index: 1;
}

.booking2-lbl-name { left: 13rem; top: 17rem; }
.booking2-lbl-email { left: 65.6rem; top: 17rem; }
.booking2-lbl-project { left: 13rem; top: 29rem; }

.booking2-input {
    position: absolute;
    box-sizing: border-box;
    background-color: #ffffff;
    border: 0.1rem solid rgba(0, 0, 0, 0.2);
    outline: none;
    padding: 0 1.5rem;
    font-family: 'Atyp Display', sans-serif;
    font-weight: 400;
    font-size: 2.5rem;
    line-height: 2.5rem;
    letter-spacing: -0.08em;
    color: #000000;
    border-radius: 0.5rem 1.5rem 1.5rem 1.5rem;
    z-index: 1;
}

.booking2-inp-name,
.booking2-inp-email {
    display: flex;
    align-items: center;
    top: 20.5rem;
    width: 46rem;
    height: 5rem;
}

.booking2-inp-name { left: 13rem; }
.booking2-inp-email { left: 65.6rem; }

.booking2-textarea {
    left: 13rem;
    top: 32.5rem;
    width: 98.6rem;
    height: 22.5rem;
    padding-top: 1.3rem;
    resize: none;
}

.booking2-placeholder {
    position: absolute;
    font-family: 'Atyp Display', sans-serif;
    font-weight: 400;
    font-size: 2.5rem;
    line-height: 2.5rem;
    letter-spacing: -0.08em;
    color: #000000;
    opacity: 0.2;
    pointer-events: none;
    white-space: nowrap;
    z-index: 2;
}

.booking2-placeholder.is-hidden {
    display: none;
}

.booking2-ph-name { left: 14.5rem; top: 21.6rem; }
.booking2-ph-email { left: 67.1rem; top: 21.6rem; }
.booking2-ph-project { left: 14.5rem; top: 33.6rem; }

.booking2-send-btn {
    position: absolute;
    left: 89rem;
    bottom: 4rem;
    width: 22.6rem;
    height: 6rem;
    padding: 0;
    background: none;
    border: none;
    cursor: default;
    opacity: 1;
    transition: opacity 0.2s ease;
    z-index: 1;
}

.booking2-send-btn.is-ready {
    cursor: pointer;
}

.booking2-send-btn.is-ready:hover {
    opacity: 0.7;
}

.booking2-send-img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: block;
    transition: opacity 0.2s ease;
}

.booking2-send-img--off {
    opacity: 1;
}

.booking2-send-img--on {
    opacity: 0;
}

.booking2-send-btn.is-ready .booking2-send-img--off {
    opacity: 0;
}

.booking2-send-btn.is-ready .booking2-send-img--on {
    opacity: 1;
}

.booking2-send-label {
    position: absolute;
    left: 1.9rem;
    top: 1.2rem;
    font-family: 'Atyp Display', sans-serif;
    font-weight: 600;
    font-size: 3rem;
    line-height: 3rem;
    letter-spacing: -0.08em;
    text-align: left;
    transition: opacity 0.2s ease;
}

.booking2-send-label--off {
    color: rgba(0, 0, 0, 0.2);
    opacity: 1;
}

.booking2-send-label--on {
    color: #ffffff;
    opacity: 0;
}

.booking2-send-btn.is-ready .booking2-send-label--off {
    opacity: 0;
}

.booking2-send-btn.is-ready .booking2-send-label--on {
    opacity: 1;
}
