.booking-main {
    background:linear-gradient(180deg,#f7eded 0,#fbf8f8 370px,#fff 100%);
    padding:65px 0 100px
}
.booking-heading {
    display:flex;
    justify-content:space-between;
    gap:30px;
    align-items:center;
    margin-bottom:48px
}
.booking-heading h1 {
    font-size:clamp(38px,4.3vw,60px);
    line-height:1.15
}
.booking-heading h1 span {
    color:#997274;
    font-size:.78em;
    font-weight:500
}
.booking-heading p:not(.eyebrow) {
    font-size:16px;
    margin:22px 0 0
}
.booking-stamp {
    width:126px;
    height:126px;
    border:1px solid #e1b8ba;
    border-radius:50%;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    transform:rotate(8deg);
    color:#8b262a;
    flex-shrink:0
}
.booking-stamp>span {
    font-size:43px;
    font-weight:600;
    line-height:1.1;
    letter-spacing:-.06em
}
.booking-stamp small {
    font-size:9px;
    letter-spacing:.17em;
    text-align:center;
    line-height:1.7
}
.booking-layout {
    display:grid;
    grid-template-columns:320px minmax(0,1fr);
    gap:32px;
    align-items:start
}
.booking-location {
    background:var(--dark);
    border-radius:15px;
    padding:34px;
    color:white;
    position:relative;
    overflow:hidden
}
.booking-location:before {
    content:'';
    position:absolute;
    right:-100px;
    top:-100px;
    width:230px;
    height:230px;
    border:1px solid #6c1e2170;
    border-radius:50%;
    box-shadow:0 0 0 35px #6c1e2114,0 0 0 70px #6c1e2109;
    pointer-events:none
}
.booking-location .eyebrow {
    color:#d35f64;
    font-size:10px;
    display:block;
    position:relative
}
.booking-location h2 {
    font-size:35px;
    margin:26px 0 22px;
    position:relative
}
.booking-location>p {
    font-size:14px;
    color:#bf9e9f
}
.booking-info {
    display:flex;
    gap:15px;
    padding-top:23px;
    margin-top:23px;
    border-top:1px solid #492b2c
}
.booking-info>span {
    font-size:11px;
    color:#c7373d;
    padding-top:3px
}
.booking-info strong {
    font-size:14px;
    display:block
}
.booking-info small {
    font-size:12px;
    color:#bf9e9f;
    display:block;
    margin-top:6px;
    line-height:1.7
}
.booking-help {
    padding:26px 20px
}
.booking-help>span {
    font-size:12px;
    color:#977677
}
.booking-help>a {
    display:block;
    font-size:17px;
    font-weight:700;
    margin-top:8px
}
.booking-help p {
    font-size:12px;
    margin:14px 0
}
.booking-panel {
    background:#fff;
    border:1px solid #ede1e2;
    border-radius:16px;
    padding:34px 40px;
    box-shadow:0 18px 70px #4f171908;
    min-width:0
}
.booking-steps {
    display:flex;
    align-items:center;
    gap:18px;
    margin-bottom:32px;
    padding-bottom:28px;
    border-bottom:1px solid var(--line)
}
.booking-steps>span {
    font-size:13px;
    display:flex;
    align-items:center;
    gap:10px;
    color:#9a7d7e;
    font-weight:650
}
.booking-steps b {
    width:29px;
    height:29px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:#f6f0f0;
    font-size:12px
}
.booking-steps .active {
    color:#832428
}
.booking-steps .active b {
    background:#f5e0e1;
    color:#7f2327
}
.booking-steps>i {
    height:1px;
    background:#ecdcdd;
    flex:1
}
.booking-section-title {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:15px;
    margin-bottom:26px
}
.booking-section-title h2 {
    font-size:27px
}
.booking-section-title>span {
    font-size:11px;
    color:#85969d
}
.calendar-nav {
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-bottom:22px
}
.calendar-nav strong {
    font-size:17px;
    letter-spacing:-.02em
}
.calendar-nav button {
    width:35px;
    height:35px;
    border:1px solid var(--line);
    background:#fff;
    border-radius:8px;
    font-size:25px;
    line-height:1
}
.calendar-nav button:disabled {
    opacity:.3;
    cursor:default
}
.calendar-week,.calendar-days {
    display:grid;
    grid-template-columns:repeat(7,minmax(0,1fr));
    gap:7px
}
.calendar-week {
    margin-bottom:8px;
    text-align:center;
    color:#8b9ca3;
    font-size:11px
}
.calendar-days button {
    height:44px;
    border:1px solid #eddcdd;
    background:#fcf7f7;
    border-radius:8px;
    font-size:14px;
    position:relative;
    transition:.18s
}
.calendar-days button:after {
    content:'';
    position:absolute;
    width:3px;
    height:3px;
    border-radius:50%;
    background:#8e272b;
    bottom:5px;
    left:calc(50% - 1.5px)
}
.calendar-days button:not(:disabled):hover {
    border-color:#8c262b;
    background:#f9edee;
    transform:translateY(-2px)
}
.calendar-days button[aria-pressed=true] {
    background:linear-gradient(130deg,#a92e33,#90282c);
    color:#fff;
    border-color:transparent;
    box-shadow:0 5px 16px #8c262b2a
}
.calendar-days button[aria-pressed=true]:after {
    background:white
}
.calendar-days button:disabled {
    background:#fcfafa;
    color:#d2c2c3;
    border-color:transparent;
    cursor:default
}
.calendar-days button:disabled:after {
    display:none
}
.calendar-legend {
    display:flex;
    justify-content:space-between;
    gap:10px;
    margin:17px 0 27px;
    color:#8b9ca3;
    font-size:10px
}
.calendar-legend>span:first-child {
    display:flex;
    gap:6px;
    align-items:center
}
.calendar-legend i {
    width:5px;
    height:5px;
    background:#8e272b;
    border-radius:50%
}
.slot-heading {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:10px;
    border-top:1px solid var(--line);
    padding-top:25px;
    margin-bottom:16px
}
.slot-heading h3 {
    font-size:16px;
    letter-spacing:-.02em
}
.slot-heading span {
    font-size:11px;
    color:#8b9ca3
}
.booking-slots {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:9px
}
.booking-slots button {
    border:1px solid #eddcdd;
    background:white;
    border-radius:7px;
    padding:10px;
    font-size:14px;
    transition:.18s;
    font-weight:600
}
.booking-slots button small {
    display:block;
    font-size:9px;
    font-weight:400;
    color:#af9495;
    line-height:1.3;
    margin-top:2px
}
.booking-slots button:disabled {
    background:#faf7f7;
    color:#cab6b7;
    cursor:default;
    border-color:transparent
}
.booking-slots button[aria-pressed=true] {
    background:#f9e8e9;
    border-color:#90282c;
    color:#6b1d20;
    box-shadow:0 0 0 1px #90282c
}
.booking-slots button:not(:disabled):hover {
    border-color:#90282c
}
.booking-bottom {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
    border-top:1px solid var(--line);
    padding-top:23px;
    margin-top:26px
}
.booking-bottom>span {
    font-size:11px;
    color:#947172
}
.booking-bottom .btn {
    font-size:13px;
    white-space:nowrap
}
.booking-bottom .btn:disabled {
    background:#f1e6e6;
    color:#b59b9c;
    transform:none;
    box-shadow:none;
    cursor:default
}
.booking-alert {
    background:#fff1ef;
    color:#9c3a35;
    padding:14px 17px;
    border:1px solid #f2d7d0;
    border-radius:8px;
    font-size:13px;
    margin-bottom:22px
}
.booking-alert button {
    margin-left:12px;
    background:none;
    border:0;
    text-decoration:underline;
    color:inherit
}
#booking-loading {
    padding:65px 15px;
    text-align:center;
    color:#947172;
    font-size:14px
}
.booking-selected {
    display:flex;
    gap:15px;
    align-items:center;
    background:#faefef;
    border:1px solid #eacacb;
    border-radius:10px;
    padding:17px 20px;
    margin-bottom:26px
}
.booking-selected>span {
    display:grid;
    place-items:center;
    background:#8d272b;
    color:white;
    width:30px;
    height:30px;
    border-radius:50%;
    flex-shrink:0
}
.booking-selected strong {
    font-size:14px
}
.booking-selected small {
    display:block;
    font-size:12px;
    color:#9d6f71
}
.booking-selected button {
    margin-left:auto;
    color:#862529;
    font-size:12px;
    text-decoration:underline
}
.booking-input-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:20px
}
.booking-input-grid .full {
    grid-column:1/-1
}
.booking-input-grid label {
    font-size:13px
}
.booking-input-grid label>span {
    font-weight:400;
    color:#ac9394;
    font-size:11px
}
.booking-input-grid textarea {
    resize:vertical;
    min-height:90px
}
.booking-consent {
    display:flex;
    align-items:start;
    gap:11px;
    margin-top:24px;
    font-size:12px;
    font-weight:400;
    color:#73858f;
    line-height:1.7
}
.booking-consent input {
    width:17px;
    height:17px;
    min-height:0;
    margin:4px 0 0;
    accent-color:#89262a;
    flex-shrink:0
}
.booking-consent a {
    text-decoration:underline;
    color:#822327
}
.booking-honeypot {
    position:absolute;
    left:-10000px;
    width:1px;
    height:1px;
    overflow:hidden
}
.booking-email-note {
    font-size:11px;
    margin:18px 0 0;
    line-height:1.6;
    color:#a78889
}
.booking-success {
    text-align:center;
    padding:8px 0 20px;
    outline:none
}
.booking-success-mark {
    display:grid;
    place-items:center;
    width:72px;
    height:72px;
    border-radius:50%;
    font-size:31px;
    color:#fff;
    background:linear-gradient(135deg,#ac2f34,#95292d);
    margin:0 auto 28px;
    box-shadow:0 0 0 10px #faedee;
    animation:rise .5s both
}
.booking-success .eyebrow {
    font-size:10px;
    margin-bottom:18px
}
.booking-success h2 {
    font-size:46px;
    margin-bottom:20px
}
.booking-success>p:not(.eyebrow) {
    font-size:14px
}
.booking-ticket {
    border:1px solid #e9cfd0;
    background:linear-gradient(135deg,#fbf4f4,#fff);
    border-radius:12px;
    padding:26px;
    margin:25px auto;
    max-width:440px;
    position:relative
}
.booking-ticket>small {
    display:block;
    font-size:9px;
    letter-spacing:.16em;
    color:#9a494c;
    margin-bottom:15px
}
.booking-ticket>strong {
    display:block;
    font-size:23px;
    letter-spacing:-.03em
}
.booking-ticket>span {
    display:block;
    font-size:16px;
    color:#7f2327;
    margin-top:7px
}
.booking-ticket hr {
    border:0;
    border-top:1px dashed #debfc0;
    margin:22px 0
}
.booking-ticket>div {
    display:flex;
    justify-content:space-between;
    font-size:11px;
    gap:10px
}
.booking-ticket>div>span {
    color:#a78c8d
}
.booking-ticket b {
    letter-spacing:.05em
}
.booking-ticket p {
    font-size:11px;
    margin:16px 0 0
}
.booking-success-actions {
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    justify-content:center
}
.booking-success-actions .btn {
    font-size:12px
}
.booking-panel [hidden] {
    display:none!important
}
.booking-invite {
    margin-top:24px;
    border-top:1px solid var(--line);
    padding-top:24px
}
.booking-invite p {
    font-size:14px
}
.booking-invite .btn {
    font-size:13px
}
.page-booking .site-footer {
    margin-top:0
}
@media(max-width:1000px) {
    .booking-layout {
        grid-template-columns:260px minmax(0,1fr);
        gap:24px
    }
    .booking-panel {
        padding:28px
    }
    .booking-location {
        padding:27px
    }
    .booking-steps {
        gap:10px
    }
    .booking-steps>span {
        font-size:11px
    }
    .booking-bottom {
        align-items:stretch;
        flex-direction:column;
        gap:14px
    }
    .booking-bottom>span {
        text-align:center
    }
    .booking-stamp {
        width:105px;
        height:105px
    }
    .booking-section-title>span {
        display:none
    }

}
@media(max-width:760px) {
    .booking-main {
        padding:42px 0 65px
    }
    .booking-heading {
        margin-bottom:32px
    }
    .booking-heading h1 {
        font-size:42px
    }
    .booking-heading h1 span {
        font-size:.7em
    }
    .booking-heading p:not(.eyebrow) {
        font-size:14px
    }
    .booking-stamp {
        display:none
    }
    .booking-layout {
        grid-template-columns:1fr
    }
    .booking-aside {
        order:2
    }
    .booking-location {
        display:none
    }
    .booking-help {
        text-align:center;
        padding:15px
    }
    .booking-panel {
        padding:25px
    }
    .booking-section-title h2 {
        font-size:25px
    }
    .calendar-days button {
        height:44px
    }
    .booking-steps>span {
        font-size:12px
    }
    .booking-bottom {
        flex-direction:row;
        align-items:center
    }
    .booking-bottom>span {
        text-align:left;
        max-width:145px
    }
    .booking-bottom .btn {
        font-size:12px
    }
    .booking-ticket>strong {
        font-size:21px
    }

}
@media(max-width:450px) {
    .booking-heading h1 {
        font-size:37px
    }
    .booking-heading .eyebrow {
        font-size:9px
    }
    .booking-panel {
        padding:23px 18px
    }
    .booking-steps {
        gap:8px;
        margin-bottom:25px;
        padding-bottom:23px
    }
    .booking-steps>span {
        font-size:10px;
        gap:7px
    }
    .booking-steps b {
        width:24px;
        height:24px;
        font-size:10px
    }
    .booking-section-title h2 {
        font-size:23px
    }
    .calendar-week,.calendar-days {
        gap:5px
    }
    .calendar-days button {
        height:39px;
        font-size:13px
    }
    .calendar-legend {
        font-size:9px;
        gap:14px
    }
    .calendar-legend>span:last-child {
        text-align:right;
        max-width:165px
    }
    .slot-heading {
        align-items:start
    }
    .slot-heading h3 {
        font-size:14px
    }
    .slot-heading span {
        font-size:10px
    }
    .booking-bottom {
        flex-direction:column;
        align-items:stretch
    }
    .booking-bottom>span {
        max-width:none;
        text-align:center
    }
    .booking-input-grid {
        grid-template-columns:1fr;
        gap:17px
    }
    .booking-selected {
        padding:15px 12px;
        gap:10px
    }
    .booking-selected strong {
        font-size:12px
    }
    .booking-selected small {
        font-size:11px
    }
    .booking-consent {
        font-size:12px
    }
    .booking-success h2 {
        font-size:40px
    }
    .booking-ticket {
        padding:23px 15px
    }
    .booking-ticket>div {
        flex-direction:column;
        gap:4px
    }
    .booking-success-actions {
        flex-direction:column
    }
    .booking-main .fineprint {
        font-size:11px
    }
    .booking-panel .btn {
        min-height:50px
    }

}
