.ef-reserve__shell{position:relative;display:grid;grid-template-columns:minmax(0,.85fr) minmax(330px,1.15fr);gap:clamp(45px,8vw,120px);align-items:center;padding:clamp(42px,6vw,82px);background:var(--ef-colour-paper-light);box-shadow:0 28px 80px rgba(43,47,40,.13);overflow:hidden}
.ef-reserve__shell::before{content:"";position:absolute;width:250px;height:250px;right:-95px;top:-125px;border:1px solid rgba(198,132,108,.45);border-radius:50%}
.ef-reserve__copy{position:relative;z-index:1;max-width:480px}.ef-reserve__copy h2{font-size:var(--ef-heading-lg);line-height:.98}.ef-reserve__copy .ef-rich-text{color:var(--ef-colour-muted)}
.ef-reserve__details{margin:1.7rem 0 0;padding:1.5rem 0 0;border-top:1px solid var(--ef-line);list-style:none}.ef-reserve__details li{margin:.7rem 0;font-size:1.05rem;line-height:1.55;color:var(--ef-colour-muted)}
.ef-reserve__widget{position:relative;z-index:1;display:flex;justify-content:center;min-width:0}.ef-reserve__widget-frame{width:100%;max-width:560px;min-height:320px;padding:clamp(26px,4vw,48px);background:#fff;border:1px solid rgba(44,44,44,.1);box-shadow:0 18px 50px rgba(44,44,44,.1)}
.ef-reserve__placeholder{display:grid;min-height:220px;place-items:center;border:1px dashed rgba(44,44,44,.25);color:var(--ef-colour-muted)}
.ef-reserve__actions{border-top:1px solid var(--ef-line)}.ef-reserve-action{display:grid;grid-template-columns:1fr auto;gap:.35rem 1rem;align-items:center;padding:1.4rem 0;border-bottom:1px solid var(--ef-line);color:inherit;text-decoration:none}
.ef-reserve-action span{font-family:var(--ef-font-heading,"Marcellus",serif);font-size:clamp(1.4rem,3vw,2.4rem)}.ef-reserve-action small{grid-column:1}.ef-reserve-action b{grid-column:2;grid-row:1/3;font-size:1.5rem}
@media(max-width:900px){.ef-reserve__shell{grid-template-columns:1fr}}


/* v0.18.1 OpenTable treatment */
.ef-reserve__widget-frame{min-height:0;max-width:640px}
.ef-reserve__widget-frame #ot-widget-container,
.ef-reserve__widget-frame [id^="ot-widget-container"],
.ef-reserve__widget-frame oc-component,
.ef-reserve__widget-frame #ot-reservation-widget{display:block;width:100%!important;max-width:none!important}
.ef-reserve__widget-frame .ot-dtp-picker{width:100%!important;max-width:none!important;padding:0!important;margin:0!important;background:transparent!important;box-shadow:none!important;font-family:var(--ef-font-body,"museo-sans",Arial,sans-serif)!important}
.ef-reserve__widget-frame .ot-title{margin:0 0 24px!important;color:var(--ef-colour-charcoal)!important;font-family:var(--ef-font-heading,"Marcellus",serif)!important;font-size:clamp(2rem,3vw,3.1rem)!important;line-height:1.05!important;font-weight:400!important;text-align:center!important;letter-spacing:0!important}
.ef-reserve__widget-frame .ot-dtp-picker-form{display:grid!important;grid-template-columns:1fr!important;gap:12px!important}
.ef-reserve__widget-frame .ot-dtp-picker-selector{width:100%!important;min-width:0!important;height:60px!important;margin:0!important;border:1px solid rgba(44,44,44,.18)!important;border-radius:0!important;background:var(--ef-colour-paper-light)!important}
.ef-reserve__widget-frame .ot-select-label,.ef-reserve__widget-frame .ot-datepicker{width:100%!important;height:58px!important;min-height:58px!important;padding:0 16px!important;border:0!important;border-radius:0!important;background:transparent!important;color:var(--ef-colour-charcoal)!important;box-shadow:none!important;font-family:inherit!important;font-size:1.1rem!important}
.ef-reserve__widget-frame .ot-label-text{font-size:1.1rem!important;line-height:1.3!important}
.ef-reserve__widget-frame .ot-dropdown-content svg path,.ef-reserve__widget-frame .ot-select-label>div:last-child svg path{fill:var(--ef-colour-coral-dark)!important}
.ef-reserve__widget-frame .ot-button,.ef-reserve__widget-frame .ot-dtp-picker-button{width:100%!important;min-height:60px!important;margin:4px 0 0!important;padding:0 22px!important;border:1px solid var(--ef-colour-coral)!important;border-radius:0!important;background:var(--ef-colour-coral)!important;color:#fff!important;box-shadow:none!important;font-family:inherit!important;font-size:.9rem!important;font-weight:600!important;letter-spacing:.16em!important;text-transform:uppercase!important;cursor:pointer!important}
.ef-reserve__widget-frame .ot-date-picker{position:relative!important;overflow:visible!important}
.ef-reserve__widget-frame .picker{position:absolute!important;top:calc(100% + 10px)!important;left:0!important;right:auto!important;width:min(390px,calc(100vw - 72px))!important;min-width:min(390px,calc(100vw - 72px))!important;z-index:10000!important;font-size:1.05rem!important}
.ef-reserve__widget-frame .picker__holder{position:relative!important;width:100%!important;max-width:none!important;min-height:0!important;overflow:visible!important;background:#fff!important;border:1px solid rgba(44,44,44,.16)!important;box-shadow:0 18px 44px rgba(44,44,44,.18)!important}
.ef-reserve__widget-frame .picker__frame,.ef-reserve__widget-frame .picker__wrap,.ef-reserve__widget-frame .picker__box{width:100%!important;max-width:none!important;margin:0!important;border-radius:0!important;font-family:inherit!important}
.ef-reserve__widget-frame .picker__box{padding:18px!important}.ef-reserve__widget-frame .picker__header{margin-bottom:12px!important;position:relative!important}
.ef-reserve__widget-frame .caption_label,.ef-reserve__widget-frame .picker__month,.ef-reserve__widget-frame .picker__year{font-family:var(--ef-font-heading,"Marcellus",serif)!important;font-size:1.18rem!important}
.ef-reserve__widget-frame .picker__table{width:100%!important;table-layout:fixed!important;border-collapse:separate!important;border-spacing:3px!important}
.ef-reserve__widget-frame .picker__weekday{padding:7px 2px!important;font-size:.84rem!important;font-weight:600!important;color:var(--ef-colour-muted)!important}
.ef-reserve__widget-frame .picker__day{display:flex!important;align-items:center!important;justify-content:center!important;min-height:40px!important;padding:0!important;font-size:1rem!important;border:1px solid transparent!important}
.ef-reserve__widget-frame .picker__day:hover{background:var(--ef-colour-cream)!important;border-color:var(--ef-colour-coral)!important}
.ef-reserve__widget-frame .picker__day--selected,.ef-reserve__widget-frame .picker__day--highlighted{background:var(--ef-colour-coral)!important;border-color:var(--ef-colour-coral)!important;color:#fff!important}
.ef-reserve__widget-frame .picker__header .nav{position:absolute!important;inset:50% 0 auto!important;transform:translateY(-50%)!important;display:flex!important;align-items:center!important;justify-content:space-between!important;pointer-events:none!important}
.ef-reserve__widget-frame .picker__nav--prev,.ef-reserve__widget-frame .picker__nav--next{display:flex!important;align-items:center!important;justify-content:center!important;width:40px!important;height:40px!important;padding:0!important;border-radius:50%!important;pointer-events:auto!important}
.ef-reserve__widget-frame .picker__nav--prev .icon,.ef-reserve__widget-frame .picker__nav--next .icon,.ef-reserve__widget-frame .picker__nav--prev svg,.ef-reserve__widget-frame .picker__nav--next svg{display:block!important;width:22px!important;height:22px!important;margin:auto!important}
.ef-reserve__widget-frame .picker__close{font-size:.86rem!important;letter-spacing:.08em!important;text-transform:uppercase!important;color:var(--ef-colour-coral-dark)!important}.ef-reserve__widget-frame .ot-logo{display:none!important}
.ef-reserve__details li{font-size:1.16rem;line-height:1.6}.ef-large-party-trigger{margin-top:1.6rem}

/* Large party enquiry modal */
.ef-large-party-modal[hidden]{display:none}.ef-large-party-modal{position:fixed;inset:0;z-index:100000;display:grid;place-items:center;padding:24px}.ef-large-party-modal__backdrop{position:absolute;inset:0;background:rgba(22,29,34,.76);backdrop-filter:blur(5px)}
.ef-large-party-modal__dialog{position:relative;z-index:1;width:min(760px,100%);max-height:calc(100vh - 48px);overflow:auto;padding:clamp(30px,5vw,58px);background:var(--ef-colour-paper-light);color:var(--ef-colour-charcoal);box-shadow:0 28px 90px rgba(0,0,0,.3)}
.ef-large-party-modal__dialog h2{font-size:clamp(2.7rem,5vw,5.3rem);line-height:.98}.ef-large-party-modal__intro{max-width:620px;margin-top:1.25rem!important;color:var(--ef-colour-muted)}.ef-large-party-modal__close{position:absolute;top:14px;right:17px;width:42px;height:42px;border:0;background:transparent;color:inherit;font:300 2rem/1 Arial;cursor:pointer}
.ef-large-party-form{margin-top:2rem}.ef-large-party-form__grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.ef-large-party-form label{display:grid;gap:7px;font-size:.82rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.ef-large-party-form__wide{grid-column:1/-1}.ef-large-party-form input,.ef-large-party-form textarea{width:100%;min-height:52px;padding:12px 14px;border:1px solid rgba(44,44,44,.24);border-radius:0;background:#fff;color:inherit;font:inherit;letter-spacing:0;text-transform:none}.ef-large-party-form textarea{resize:vertical}.ef-large-party-form .ef-button{margin-top:20px}.ef-large-party-form__status{margin-top:14px!important;font-size:1rem!important}.ef-large-party-form__status.is-error{color:#9b2c2c}.ef-large-party-form__status.is-success{color:#355d3e}.ef-large-party-form__bot{position:absolute!important;left:-9999px!important}.ef-large-party-modal.is-open{display:grid}body.ef-large-party-open{overflow:hidden}
@media(max-width:680px){.ef-reserve__widget-frame{padding:26px 20px}.ef-reserve__widget-frame .picker{left:50%!important;transform:translateX(-50%)!important;width:min(360px,calc(100vw - 48px))!important;min-width:min(360px,calc(100vw - 48px))!important}.ef-large-party-form__grid{grid-template-columns:1fr}.ef-large-party-form__wide{grid-column:auto}.ef-large-party-modal{padding:12px}.ef-large-party-modal__dialog{max-height:calc(100vh - 24px);padding:46px 22px 30px}}

/* v0.18.2 inline large-party handoff and calendar refinements */
.ef-reserve__widget-frame .picker__box{padding:20px 20px 32px!important}
.ef-reserve__widget-frame .picker__header{min-height:42px!important;display:flex!important;align-items:center!important;justify-content:center!important}
.ef-reserve__widget-frame .picker__header .nav{position:absolute!important;top:50%!important;left:0!important;right:0!important;transform:translateY(-50%)!important;height:40px!important;display:flex!important;align-items:center!important;justify-content:space-between!important;pointer-events:none!important}
.ef-reserve__widget-frame .picker__nav--prev,.ef-reserve__widget-frame .picker__nav--next{position:relative!important;top:auto!important;left:auto!important;right:auto!important;display:grid!important;place-items:center!important;width:40px!important;height:40px!important;min-width:40px!important;min-height:40px!important;padding:0!important;margin:0!important;line-height:0!important;pointer-events:auto!important}
.ef-reserve__widget-frame .picker__nav--prev span,.ef-reserve__widget-frame .picker__nav--next span{position:static!important;display:grid!important;place-items:center!important;width:24px!important;height:24px!important;margin:0!important;transform:none!important;line-height:0!important}
.ef-reserve__widget-frame .picker__nav--prev svg,.ef-reserve__widget-frame .picker__nav--next svg{position:static!important;display:block!important;width:22px!important;height:22px!important;margin:0!important;transform:none!important}
.ef-reserve__widget-frame .picker__table{margin-bottom:4px!important}

.ef-reserve__widget-frame{overflow:hidden;transition:min-height .35s ease}
.ef-reserve__booking-view,.ef-large-party-inline{transition:opacity .24s ease,transform .32s cubic-bezier(.22,1,.36,1)}
.ef-reserve__booking-view.is-leaving{opacity:0;transform:translateY(-10px)}
.ef-large-party-inline[hidden]{display:none!important}
.ef-large-party-inline{color:var(--ef-colour-charcoal);opacity:0;transform:translateY(14px)}
.ef-large-party-inline.is-visible{opacity:1;transform:none}
.ef-large-party-inline__back{display:inline-flex;align-items:center;gap:8px;margin:0 0 28px;padding:0;border:0;border-bottom:1px solid currentColor;background:transparent;color:var(--ef-colour-coral-dark);font:600 .8rem/1.4 var(--ef-font-body,"museo-sans",Arial,sans-serif);letter-spacing:.11em;text-transform:uppercase;cursor:pointer}
.ef-large-party-inline .ef-eyebrow{color:var(--ef-colour-coral-dark)!important}
.ef-large-party-inline h3{margin:0;color:var(--ef-colour-charcoal)!important;font-family:var(--ef-font-heading,"Marcellus",serif)!important;font-size:clamp(2.35rem,4vw,4.4rem)!important;font-weight:400!important;line-height:1!important;letter-spacing:0!important;text-transform:none!important}
.ef-large-party-inline__intro{margin:1rem 0 0!important;color:var(--ef-colour-muted)!important;font-size:1.15rem!important;line-height:1.55!important}
.ef-large-party-form{margin-top:2rem}
.ef-large-party-form__grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.ef-large-party-form label{display:grid!important;gap:8px!important;color:var(--ef-colour-charcoal)!important;font-size:.78rem!important;font-weight:700!important;line-height:1.35!important;letter-spacing:.1em!important;text-transform:uppercase!important}
.ef-large-party-form label span{color:var(--ef-colour-charcoal)!important;opacity:.82}
.ef-large-party-form__wide{grid-column:1/-1}
.ef-large-party-form input,.ef-large-party-form textarea{width:100%!important;min-height:54px!important;padding:13px 14px!important;border:1px solid rgba(44,44,44,.24)!important;border-radius:0!important;background:#fff!important;color:var(--ef-colour-charcoal)!important;box-shadow:none!important;font:500 1rem/1.4 var(--ef-font-body,"museo-sans",Arial,sans-serif)!important;letter-spacing:0!important;text-transform:none!important}
.ef-large-party-form input::placeholder,.ef-large-party-form textarea::placeholder{color:rgba(44,44,44,.55)!important}
.ef-large-party-form input:focus,.ef-large-party-form textarea:focus{outline:2px solid rgba(198,132,108,.35)!important;outline-offset:1px!important;border-color:var(--ef-colour-coral)!important}
.ef-large-party-form textarea{resize:vertical;min-height:110px!important}
.ef-large-party-form .ef-button{margin-top:20px}
.ef-large-party-form__status{margin-top:14px!important;font-size:1rem!important;line-height:1.5!important;color:var(--ef-colour-charcoal)!important}
.ef-large-party-form__status.is-error{color:#9b2c2c!important}.ef-large-party-form__status.is-success{color:#355d3e!important}
.ef-large-party-form__bot{position:absolute!important;left:-9999px!important}

@media(max-width:680px){
  .ef-large-party-form__grid{grid-template-columns:1fr}
  .ef-large-party-form__wide{grid-column:auto}
  .ef-large-party-inline__back{margin-bottom:22px}
}


/* v0.18.3 completed enquiry state */
.ef-large-party-inline__success[hidden]{display:none!important}
.ef-large-party-inline__success{opacity:0;transform:translateY(10px);transition:opacity .28s ease,transform .36s cubic-bezier(.22,1,.36,1);padding:clamp(28px,4vw,54px) 0}
.ef-large-party-inline__success.is-visible{opacity:1;transform:none}
.ef-large-party-inline__success p{margin:0!important;color:var(--ef-colour-charcoal)!important;font-family:var(--ef-font-heading,"Marcellus",serif)!important;font-size:clamp(1.9rem,3vw,3.2rem)!important;line-height:1.2!important}


/* v0.18.4: completed enquiry replaces the form heading. */
.ef-large-party-inline__success{padding:clamp(12px,2vw,24px) 0}
.ef-large-party-inline__success h3{margin:0;font-family:var(--ef-font-heading,"Marcellus",serif);font-size:clamp(3.25rem,5vw,5.9rem);font-weight:400;line-height:.98;letter-spacing:0;color:var(--ef-colour-charcoal)}
.ef-large-party-inline__success p{margin:1.5rem 0 0;font-size:clamp(1.2rem,1.55vw,1.55rem);line-height:1.55;color:var(--ef-colour-muted)}
.ef-large-party-inline__success.is-visible{animation:ef-large-party-success-in .42s cubic-bezier(.22,1,.36,1) both}
@keyframes ef-large-party-success-in{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@media(max-width:680px){.ef-large-party-inline__success h3{font-size:clamp(2.75rem,13vw,4.6rem)}}


/* v0.18.6: allow the OpenTable calendar to extend beyond the booking card. */
.ef-reserve__shell,
.ef-reserve__widget,
.ef-reserve__widget-frame,
.ef-reserve__booking-view,
.ef-reserve__widget-frame .ot-dtp-picker,
.ef-reserve__widget-frame .ot-dtp-picker-form,
.ef-reserve__widget-frame .ot-date-picker {
    overflow: visible !important;
}
.ef-reserve__widget-frame .picker {
    z-index: 10050 !important;
}
.ef-reserve__widget-frame .picker__holder,
.ef-reserve__widget-frame .picker__frame,
.ef-reserve__widget-frame .picker__wrap {
    max-height: none !important;
    overflow: visible !important;
}
.ef-reserve__widget-frame .picker__box {
    padding-bottom: 36px !important;
}
@media (max-width: 680px) {
    .ef-reserve__shell { padding-bottom: clamp(64px, 14vw, 96px); }
    .ef-reserve__widget-frame .picker {
        width: min(360px, calc(100vw - 40px)) !important;
        min-width: min(360px, calc(100vw - 40px)) !important;
    }
}


/* v0.18.9: remove the booking-panel circle and present the mobile calendar
   as a stable viewport-centred overlay. */
.ef-reserve__shell::before {
    display: none !important;
    content: none !important;
}

@media (max-width: 900px) {
    .ef-reserve__widget-frame .picker.picker--opened,
    .ef-reserve__widget-frame .picker[aria-hidden="false"] {
        position: fixed !important;
        top: 50% !important;
        left: 50% !important;
        right: auto !important;
        width: min(390px, calc(100vw - 24px)) !important;
        min-width: 0 !important;
        max-width: calc(100vw - 24px) !important;
        max-height: calc(100dvh - 24px) !important;
        margin: 0 !important;
        transform: translate(-50%, -50%) !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        overscroll-behavior: contain;
        z-index: 100000 !important;
    }

    .ef-reserve__widget-frame .picker.picker--opened .picker__holder,
    .ef-reserve__widget-frame .picker[aria-hidden="false"] .picker__holder {
        width: 100% !important;
        max-width: none !important;
    }

    .ef-reserve__widget-frame .picker__box {
        padding: 18px 12px 34px !important;
    }

    .ef-reserve__widget-frame .picker__table {
        border-spacing: 2px !important;
    }
}

@media (max-width: 380px) {
    .ef-reserve__widget-frame .picker.picker--opened,
    .ef-reserve__widget-frame .picker[aria-hidden="false"] {
        width: calc(100vw - 16px) !important;
        max-width: calc(100vw - 16px) !important;
    }
    .ef-reserve__widget-frame .picker__day {
        min-height: 36px !important;
        font-size: .92rem !important;
    }
    .ef-reserve__widget-frame .picker__weekday {
        font-size: .76rem !important;
    }
}

/* v0.18.10: mobile OpenTable calendar reset based on the live CFE markup.
   The calendar remains viewport-centred, but all OpenTable height/overflow
   constraints are removed so the complete six-week grid is visible. */
@media (max-width: 900px) {
    .ef-reserve__widget-frame .picker.picker--opened,
    .ef-reserve__widget-frame .picker[aria-hidden="false"] {
        position: fixed !important;
        inset: auto !important;
        top: 50% !important;
        left: 50% !important;
        right: auto !important;
        bottom: auto !important;
        width: min(520px, calc(100vw - 24px)) !important;
        min-width: 0 !important;
        max-width: calc(100vw - 24px) !important;
        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;
        margin: 0 !important;
        padding: 0 !important;
        transform: translate(-50%, -50%) !important;
        overflow: visible !important;
        z-index: 100000 !important;
    }

    .ef-reserve__widget-frame .picker.picker--opened .picker__holder,
    .ef-reserve__widget-frame .picker[aria-hidden="false"] .picker__holder,
    .ef-reserve__widget-frame .picker.picker--opened .picker__frame,
    .ef-reserve__widget-frame .picker[aria-hidden="false"] .picker__frame,
    .ef-reserve__widget-frame .picker.picker--opened .picker__wrap,
    .ef-reserve__widget-frame .picker[aria-hidden="false"] .picker__wrap,
    .ef-reserve__widget-frame .picker.picker--opened .picker__box,
    .ef-reserve__widget-frame .picker[aria-hidden="false"] .picker__box,
    .ef-reserve__widget-frame .picker.picker--opened .rdp-months,
    .ef-reserve__widget-frame .picker[aria-hidden="false"] .rdp-months,
    .ef-reserve__widget-frame .picker.picker--opened .rdp-month,
    .ef-reserve__widget-frame .picker[aria-hidden="false"] .rdp-month {
        position: relative !important;
        inset: auto !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;
        margin: 0 !important;
        transform: none !important;
        overflow: visible !important;
    }

    .ef-reserve__widget-frame .picker.picker--opened .picker__holder,
    .ef-reserve__widget-frame .picker[aria-hidden="false"] .picker__holder {
        background: #fff !important;
        box-shadow: 0 20px 54px rgba(24, 28, 31, .24) !important;
    }

    .ef-reserve__widget-frame .picker.picker--opened .picker__box,
    .ef-reserve__widget-frame .picker[aria-hidden="false"] .picker__box {
        padding: 20px 14px 30px !important;
    }

    .ef-reserve__widget-frame .picker.picker--opened .picker__table,
    .ef-reserve__widget-frame .picker[aria-hidden="false"] .picker__table {
        width: 100% !important;
        min-width: 0 !important;
        table-layout: fixed !important;
    }
}

@media (max-width: 680px) {
    .ef-reserve__widget-frame .picker.picker--opened,
    .ef-reserve__widget-frame .picker[aria-hidden="false"] {
        width: calc(100vw - 20px) !important;
        max-width: calc(100vw - 20px) !important;
    }

    .ef-reserve__widget-frame .picker.picker--opened .picker__day,
    .ef-reserve__widget-frame .picker[aria-hidden="false"] .picker__day {
        min-height: 42px !important;
    }
}

@media (max-width: 380px) {
    .ef-reserve__widget-frame .picker.picker--opened .picker__box,
    .ef-reserve__widget-frame .picker[aria-hidden="false"] .picker__box {
        padding-inline: 8px !important;
    }

    .ef-reserve__widget-frame .picker.picker--opened .picker__day,
    .ef-reserve__widget-frame .picker[aria-hidden="false"] .picker__day {
        min-height: 38px !important;
        font-size: .9rem !important;
    }
}
