/* D2C Game native booking — standalone and scoped, no third-party iframe. */
.d2c-booking-page { background: #f7f8fc; }
.d2c-booking, .d2c-booking * { box-sizing: border-box; }
.d2c-booking { min-height: 80vh; padding: 32px 20px 92px; }
.d2c-booking [hidden] { display: none !important; }
.d2c-booking__container { width: min(1170px, 100%); margin: 0 auto; }
.d2c-booking__breadcrumb { display: flex; align-items: center; gap: 10px; font-size: .88rem; color: #667085; margin-bottom: 36px; }
.d2c-booking__breadcrumb a { text-underline-offset: 3px; color: #4f2bab; }
.d2c-booking__heading { text-align: center; margin: 0 auto 38px; max-width: 850px; }
.d2c-booking__eyebrow { font-size: .79rem; font-weight: 850; letter-spacing: .17em; color: #6d28d9; margin: 0 0 16px; }
.d2c-booking__heading h1 { color: #0a0f2c; font-size: clamp(2.25rem, 4.8vw, 4.3rem); letter-spacing: -.055em; line-height: 1.09; margin: 0 0 16px; }
.d2c-booking__heading > p:not(.d2c-booking__eyebrow) { font-size: 1.06rem; color: #667085; line-height: 1.65; max-width: 675px; margin: 0 auto; }
.d2c-booking__layout { display: grid; grid-template-columns: minmax(250px, 325px) minmax(0, 1fr); align-items: start; gap: 22px; }
.d2c-booking__information { border-radius: 20px; background: #0a0f2c; color: white; padding: 34px 28px; position: sticky; top: 96px; }
.d2c-booking__tag { display: inline-block; font-weight: 790; color: #ffc21c; letter-spacing: .1em; text-transform: uppercase; font-size: .73rem; }
.d2c-booking__info-top h2 { margin: 15px 0 12px; font-size: 1.62rem; line-height: 1.15; letter-spacing: -.025em; color: white; }
.d2c-booking__info-top p { color: #cbd2e2; font-size: .96rem; margin: 0; line-height: 1.7; }
.d2c-booking__details { list-style: none; padding: 24px 0 22px; margin: 24px 0 18px; border-top: 1px solid #333c5b; border-bottom: 1px solid #333c5b; }
.d2c-booking__details li { display: flex; align-items: center; gap: 11px; margin-bottom: 12px; font-size: .94rem; color: #f4f6ff; }
.d2c-booking__details li:last-child { margin: 0; }
.d2c-booking__details span { width: 25px; text-align: center; font-size: 1.1rem; color: #ffc21c; }
.d2c-booking__fineprint { font-size: .79rem; color: #c0c8da; line-height: 1.6; margin: 0; }
.d2c-booking__calendar { border: 1px solid #e5e6ec; background: white; padding: 27px; border-radius: 20px; box-shadow: 0 17px 45px rgba(10,15,44,.04); min-width: 0; }
.d2c-booking__calendar-head { padding-bottom: 25px; }
.d2c-booking__calendar-head h2 { color: #0a0f2c; font-size: 1.4rem; font-weight: 820; margin: 0 0 5px; }
.d2c-booking__calendar-head p { color: #667085; margin: 0; font-size: .93rem; line-height: 1.55; }
.d2c-booking__picker { display: grid; grid-template-columns: minmax(250px, 1.25fr) minmax(180px, 1fr); gap: 20px; }
.d2c-booking__month-heading { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 17px; }
.d2c-booking__month-heading strong { font-size: 1.06rem; color: #0a0f2c; }
.d2c-booking__month-arrows { display: flex; gap: 7px; }
.d2c-booking__month-arrows button { appearance: none; cursor: pointer; background: #f3f0fd; color: #5027aa; border: 1px solid #e8e0fc; border-radius: 9px; width: 34px; height: 34px; font-size: 25px; line-height: 1; }
.d2c-booking__month-arrows button:disabled { opacity: .36; cursor: not-allowed; }
.d2c-booking__weekdays, .d2c-booking__days { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 5px; }
.d2c-booking__weekdays { margin-bottom: 7px; }
.d2c-booking__weekdays span { font-size: .7rem; text-align: center; color: #858da0; font-weight: 750; }
.d2c-booking__day { appearance: none; border: 1px solid transparent; border-radius: 10px; background: transparent; min-height: 38px; font-size: .86rem; color: #a4aab6; font-weight: 640; padding: 0; }
.d2c-booking__day.is-available { color: #3c197e; background: #f3ecff; border-color: #f0e3ff; cursor: pointer; }
.d2c-booking__day.is-available:hover, .d2c-booking__day.is-available:focus-visible { border-color: #804de5; background: #e8daff; }
.d2c-booking__day.is-selected, .d2c-booking__day.is-selected:hover { background: #6b2ad8; color: white; border-color: #6b2ad8; }
.d2c-booking__times { padding-left: 20px; border-left: 1px solid #ececf2; min-width: 0; }
.d2c-booking__times h3 { font-size: 1.05rem; font-weight: 800; color: #141a34; margin: 0 0 7px; }
.d2c-booking__timezone { font-size: .77rem; color: #667085; margin: 0 0 17px; }
.d2c-booking__timezone strong { color: #5b2bbd; }
.d2c-booking__slots { display: flex; flex-direction: column; gap: 9px; max-height: 325px; overflow-y: auto; padding-right: 4px; }
.d2c-booking__empty { color: #8991a0; font-size: .88rem; line-height: 1.55; margin: 0; }
.d2c-booking__slot { appearance: none; width: 100%; text-align: center; border-radius: 10px; border: 1px solid #dcd4ee; background: #fff; padding: 11px 8px; color: #5931ac; font-weight: 740; cursor: pointer; font-size: .9rem; }
.d2c-booking__slot:hover, .d2c-booking__slot:focus-visible { background: #f6f0ff; border-color: #9c76e9; }
.d2c-booking__slot.is-selected { background: #6b2ad8; color: white; border-color: #6b2ad8; }
.d2c-booking__form { margin-top: 25px; border-top: 1px solid #e9eaf0; padding-top: 22px; }
.d2c-booking__form h3 { color: #151a34; font-weight: 800; margin: 0 0 17px; font-size: 1.15rem; }
.d2c-booking__field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; }
.d2c-booking__field { display: flex; flex-direction: column; gap: 7px; margin-bottom: 16px; font-weight: 710; font-size: .84rem; color: #283046; }
.d2c-booking__field-title { display: inline; font-weight: 710; }
.d2c-booking__field-title em { color: #c71d4e; font-style: normal; }
.d2c-booking__field small { display: inline; font-weight: 450; color: #7d8795; }
.d2c-booking__field input, .d2c-booking__field textarea { font: inherit; font-weight: 400; font-size: .93rem; width: 100%; padding: 12px 13px; border: 1px solid #d9dce5; border-radius: 10px; background: #fff; color: #171f34; outline: none; }
.d2c-booking__field input:focus, .d2c-booking__field textarea:focus { border-color: #905ae9; box-shadow: 0 0 0 3px #905ae922; }
.d2c-booking__field textarea { resize: vertical; }
.d2c-booking__selection { color: #473070; background: #f5f0ff; padding: 12px 13px; border-radius: 10px; margin: 3px 0 13px; font-size: .88rem; }
.d2c-booking__error { color: #ab1d40; background: #fff1f4; border: 1px solid #ffc5d1; border-radius: 9px; padding: 12px; margin: 0 0 13px; font-size: .88rem; }
.d2c-booking__submit { display: flex; align-items: center; justify-content: space-between; gap: 16px; border: 0; border-radius: 10px; padding: 15px 18px; background: #6926d7; color: white; width: 100%; font-size: 1rem; font-weight: 820; cursor: pointer; }
.d2c-booking__submit:disabled { background: #c5b6db; cursor: not-allowed; }
.d2c-booking__submit:not(:disabled):hover { background: #5120ae; }
.d2c-booking__privacy { color: #778092; font-size: .76rem; line-height: 1.6; margin: 11px 0 0; }
.d2c-booking__honeypot { position: absolute; width: 1px; height: 1px; left: -10000px; overflow: hidden; }
.d2c-booking__success { padding: 38px 12px; text-align: center; outline: none; }
.d2c-booking__success-icon { background: #eaf8f1; color: #13794a; display: flex; align-items: center; justify-content: center; width: 68px; height: 68px; margin: 0 auto 18px; border-radius: 50%; font-size: 32px; font-weight: 800; }
.d2c-booking__success h2 { margin: 0 0 12px; color: #10152d; font-size: 1.8rem; }
.d2c-booking__success > p { color: #556277; line-height: 1.6; }
.d2c-booking__success-details { text-align: left; background: #f7f8fc; border-radius: 12px; padding: 16px 20px; max-width: 485px; margin: 22px auto; }
.d2c-booking__success-details p { font-size: .9rem; color: #42506a; overflow-wrap: anywhere; }
.d2c-booking__success a { font-weight: 760; color: #6529cd; text-underline-offset: 3px; }
@media (max-width: 980px) { .d2c-booking__layout { grid-template-columns: 260px minmax(0,1fr); } .d2c-booking__picker { grid-template-columns: 1fr; } .d2c-booking__times { border-left: 0; border-top: 1px solid #ececf2; padding-left: 0; padding-top: 20px; } .d2c-booking__slots { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 760px) { .d2c-booking { padding: 21px 14px 65px; } .d2c-booking__breadcrumb { margin-bottom: 25px; } .d2c-booking__heading { margin-bottom: 26px; } .d2c-booking__layout { display: block; } .d2c-booking__information { position: static; padding: 24px 24px 20px; margin-bottom: 16px; border-radius: 16px; } .d2c-booking__details { display: flex; flex-wrap: wrap; gap: 10px 16px; margin: 16px 0; padding: 15px 0; } .d2c-booking__details li { margin: 0; font-size: .88rem; } .d2c-booking__calendar { padding: 19px; border-radius: 16px; } .d2c-booking__field-row { grid-template-columns: 1fr; gap: 0; } }
@media (max-width: 420px) { .d2c-booking__calendar { padding: 16px 13px; } .d2c-booking__day { min-height: 36px; } .d2c-booking__slots { grid-template-columns: 1fr 1fr; } }
