#reservation-window{position:fixed;inset:0;z-index:2147483601;background:rgba(20,10,8,.72);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:none;white-space:normal;overflow-y:auto;overflow-x:hidden}
#reservation-window.hidden{display:none}
#reservation-window.active{display:block}
#reservation-window::before{content:"";position:fixed;inset:0;background:radial-gradient(circle at top left,rgba(244,198,11,.12),transparent 28%),radial-gradient(circle at top right,rgba(246,81,86,.12),transparent 30%);pointer-events:none}

#reservation-container{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(940px,calc(100% - 28px));max-height:calc(100vh - 32px);padding:26px 24px 22px;background:linear-gradient(180deg,#fffdf9 0%,#fff7ee 100%);border:1px solid rgba(128,0,32,.10);border-radius:28px;box-shadow:0 28px 70px rgba(20,10,8,.35),0 10px 28px rgba(20,10,8,.16);overflow:hidden;padding-top:88px}
#reservation-container::before{content:"";position:absolute;left:0;right:0;top:0;height:5px;background:linear-gradient(90deg,var(--gold,#f4c60b),var(--scarlet,#f65156))}
#reservation-book{display:block;width:100%;margin-top:18px;max-height:calc(100vh - 190px);overflow-x:hidden;overflow-y:auto;padding:4px 2px 8px}
#reservation-book::-webkit-scrollbar{width:10px}
#reservation-book::-webkit-scrollbar-thumb{background:rgba(128,0,32,.18);border-radius:999px}
#reservation-book::-webkit-scrollbar-track{background:transparent}

#cart-heading{margin:0 0 10px;padding:0 110px 0 0;color:#7a5a54;font-size:.9rem;line-height:1.4;font-weight:700;text-transform:uppercase;letter-spacing:.08em}
#package-title{margin:18px 52px 8px;text-align:center;color:var(--wine,#800020);font-size:clamp(2rem,3vw,3.05rem);line-height:1.02;font-weight:900;letter-spacing:-.03em;text-transform:none}
#close-reservation{position:absolute;top:14px;right:14px;width:42px;height:42px;border:1px solid rgba(128,0,32,.12);border-radius:50%;background:rgba(255,255,255,.86);color:#341813;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 10px 22px rgba(20,10,8,.10);transition:transform var(--ease,.22s ease),box-shadow var(--ease,.22s ease),background var(--ease,.22s ease),border-color var(--ease,.22s ease);z-index:7}
#close-reservation:hover{transform:translateY(-1px);background:#fff;box-shadow:0 14px 26px rgba(20,10,8,.16)}
#close-reservation .material-symbols-outlined{font-size:28px;line-height:1}
#close-reservation .icon-svg{font-size:22px}

#security-header{position:absolute;top:18px;left:18px;display:inline-flex;align-items:center;gap:10px;padding:10px 14px;border:1px solid rgba(128,0,32,.08);border-radius:999px;background:linear-gradient(180deg,#fff7e0,#fffdf5);box-shadow:0 10px 20px rgba(20,10,8,.06);cursor:pointer;color:#341813;font-weight:800;font-size:.98rem;transition:transform var(--ease,.22s ease),box-shadow var(--ease,.22s ease);max-width:calc(100% - 92px);z-index:6}
#security-header:hover{transform:translateY(-1px);box-shadow:0 14px 26px rgba(20,10,8,.10)}
#security-header img{width:24px;height:24px;display:block}
#security-header span{display:block;line-height:1.2}

#security-dialogue{position:absolute;top:66px;left:18px;width:min(420px,calc(100% - 36px));padding:18px 18px 16px;border-radius:18px;background:linear-gradient(180deg,#2f6f87,#275f74);box-shadow:0 18px 40px rgba(0,0,0,.22);z-index:12;display:none}
#security-dialogue.active{display:block}
#security-dialogue::before{content:"";position:absolute;left:22px;top:-10px;width:18px;height:18px;background:#2f6f87;transform:rotate(45deg)}
#security-dialogue::after{content:"×";position:absolute;right:10px;top:8px;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(255,255,255,.42);color:#fff;font-size:16px;font-weight:700}
#security-dialogue p{margin:0;padding-right:20px;color:#fff;line-height:1.65;font-size:.96rem}

.reservation-page.hidden{display:none}
.reservation-page.active{display:block;text-align:center}
#page0,#page1,#page2,#page3,#page4{padding:4px 2px}

.page-0-option{position:relative;display:flex;align-items:center;gap:14px;margin:0 auto 14px;max-width:720px;padding:18px 22px;border-radius:22px;background:linear-gradient(180deg,#fffdf9 0%,#fff 100%);border:1px solid rgba(128,0,32,.08);box-shadow:0 10px 22px rgba(20,10,8,.05)}
.page-0-option .page-0-input{position:absolute;opacity:0;pointer-events:none}
.page-0-label{display:block;flex:1;text-align:left;color:#341813;font-size:1.05rem;font-weight:800;line-height:1.45;padding-right:52px}
.custom-radio{position:absolute;right:18px;top:50%;transform:translateY(-50%);width:34px;height:34px;border-radius:50%;border:2px solid rgba(128,0,32,.22);background:#fff;cursor:pointer;box-shadow:inset 0 0 0 7px transparent;transition:all var(--ease,.22s ease)}
.custom-radio.checked{background:linear-gradient(180deg,var(--gold,#f4c60b),#ffd84e);border-color:#d6a30d;box-shadow:inset 0 0 0 8px var(--wine,#800020)}

#group-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;max-width:760px;margin:18px auto 0}
.product-group{width:100%;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 18px;border:1px solid rgba(128,0,32,.08);border-radius:24px;background:linear-gradient(180deg,#fffdf9 0%,#fff 100%);box-shadow:0 10px 24px rgba(20,10,8,.06);text-align:left;cursor:pointer;transition:transform var(--ease,.22s ease),box-shadow var(--ease,.22s ease),border-color var(--ease,.22s ease),background var(--ease,.22s ease)}
.product-group:hover{transform:translateY(-2px);box-shadow:0 16px 30px rgba(20,10,8,.10);border-color:rgba(128,0,32,.16)}
.group-left{display:block;flex:1;min-width:0;text-align:left}
.group-left .title{display:block;margin:0 0 6px;color:#341813;font-size:1.45rem;line-height:1.08;font-weight:900;letter-spacing:-.02em}
.price{display:block;color:#7a5a54;font-size:.96rem;font-weight:800}
.price span{display:inline-block;margin-left:6px;font-size:1.22rem;font-weight:900;color:var(--wine,#800020)}
.price .strike{color:#9b817b;text-decoration:line-through;text-decoration-thickness:2px}
.price .from{color:#9a6640}
.radio{display:inline-flex;align-items:center;justify-content:center;flex:0 0 38px;width:38px;height:38px;border-radius:50%;border:2px solid rgba(128,0,32,.16);background:#fff;box-shadow:0 8px 16px rgba(20,10,8,.06);transition:all var(--ease,.22s ease)}
.radio.unchecked{background:#fff}
.radio.checked{background:#0f8c2d;border-color:#0f8c2d;box-shadow:0 12px 22px rgba(15,140,45,.20)}
.radio .material-symbols-outlined{font-size:24px;line-height:1;color:#fff}
.radio.unchecked .material-symbols-outlined{display:none}
.radio .icon-svg{font-size:19px;color:#fff}
.radio.unchecked .icon-svg{display:none}

.group-schedule-message{max-width:760px;margin:10px auto 0;padding:12px 14px;border-radius:16px;background:rgba(128,0,32,.04);border:1px solid rgba(128,0,32,.08);color:#6a4741;text-align:left;line-height:1.6}
#page-1-error{max-width:520px;margin:10px auto 0;padding:12px 14px;border-radius:14px;background:#8a0000;color:#fff;font-weight:800}
#page-1-error.hidden{display:none}

#datepicker{max-width:760px;width:100%;margin:0 auto}
#dateInput{height:0;width:0;position:absolute;z-index:-1;opacity:0}
.ui-datepicker{width:100%!important;max-width:760px;padding:0;border:none!important;background:transparent!important}
.ui-widget.ui-widget-content{margin:0 auto;border:none!important;background:transparent!important}
.ui-datepicker-inline.ui-datepicker.ui-widget.ui-widget-content.ui-helper-clearfix.ui-corner-all{max-width:760px;width:100%;padding:18px 18px 16px;background:linear-gradient(180deg,#fffdf9 0%,#fff 100%);border:1px solid rgba(128,0,32,.08)!important;border-radius:24px;box-shadow:0 12px 28px rgba(20,10,8,.06)}
.ui-datepicker-header.ui-widget-header.ui-helper-clearfix.ui-corner-all{padding:0 0 12px;background:transparent;border:0;font-size:1.18rem;color:#341813;font-weight:900}
.ui-widget-header a{cursor:pointer}
.ui-datepicker-title{margin:0 2.2em;font-weight:900}
.ui-datepicker-prev,.ui-datepicker-next{top:.2em;width:34px;height:34px;border-radius:50%;background:#fff;border:1px solid rgba(128,0,32,.10);box-shadow:0 8px 16px rgba(20,10,8,.05)}
.ui-datepicker-prev-hover,.ui-datepicker-next-hover{top:.2em!important;border:1px solid rgba(128,0,32,.16)!important;background:#fff!important}
.ui-datepicker-calendar{width:100%;table-layout:fixed}
.ui-datepicker-calendar th{padding:8px 0 10px}
.ui-datepicker-calendar th span{font-weight:800;color:#7a5a54;font-size:.86rem;text-transform:uppercase;letter-spacing:.06em}
.ui-datepicker td{padding:4px}
.ui-state-default,.ui-widget-content .ui-state-default,.ui-button,.ui-button{display:flex!important;align-items:flex-start;justify-content:flex-start;min-height:58px;padding:10px 10px 8px!important;border:none!important;border-radius:18px;background:#2f6f87!important;color:#fff!important;font-weight:900!important;box-shadow:inset 0 -2px 0 rgba(0,0,0,.10);transition:transform var(--ease,.22s ease),background var(--ease,.22s ease),box-shadow var(--ease,.22s ease);text-decoration:none!important}
.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus,.ui-button:hover,.ui-button:focus{border:none!important;background:#3a819d!important;color:#fff!important}
.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active,a.ui-button:active,.ui-button:active,.ui-button.ui-state-active:hover{background:linear-gradient(180deg,var(--gold,#f4c60b),#ffd84e)!important;color:var(--wine,#800020)!important;font-weight:900!important;box-shadow:0 10px 20px rgba(244,198,11,.18)!important}
.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.42!important}
.highlighted.thanks-giving .ui-state-default{background:#d35a1f!important;color:#fff!important}
.highlighted.christmas .ui-state-default{background:#237032!important;color:#fff!important}

.datepicker-key,#legend{text-align:left;max-width:760px;margin:12px auto 0;padding:12px 14px;border-radius:16px;background:rgba(128,0,32,.04);border:1px solid rgba(128,0,32,.08)}
.key-mark,#legend-icon{height:14px;width:14px;border-radius:50%;display:inline-block;background:linear-gradient(180deg,var(--gold,#f4c60b),#ffd84e);vertical-align:middle}
#thanks-giving .key-mark{background:#d35a1f}
#christmas .key-mark{background:#237032}
.date-key-description,#legend-content{display:inline-block;margin-left:10px;vertical-align:middle;font-size:.98rem;color:#5d3c35}

#page2,#page3,#page4{max-height:none;overflow:visible}
.price-container{display:grid;grid-template-columns:1.25fr .75fr;align-items:center;gap:18px;list-style:none;width:100%;margin:0;padding:18px 18px;border-top:1px solid rgba(128,0,32,.08);background:transparent}
.price-container:first-child{border-top:0}
.price-left,.price-right{display:block;width:auto;padding:0}
.price-right{text-align:right}
.price-description{display:block;width:100%;margin:0;color:#341813;font-family:"Roboto","Arial","Helvetica",sans-serif;font-size:1.12rem;font-weight:800;line-height:1.45}
.price-list{display:inline-flex;align-items:flex-end;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.list-price,.sale-price{display:inline-flex;flex-direction:column;align-items:flex-end;position:relative;width:auto;margin:0;font-size:1rem;line-height:1.1;text-align:right}
.list-price::before,.sale-price::before{display:block;margin:0 0 4px;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;font-weight:900}
.list-price::before{content:"Was";color:#8a7b76}
.sale-price::before{content:"Now";color:#7b524b}
.list-price{color:#8a7b76;text-decoration:none!important}
.sale-price{color:var(--wine,#800020)}
.list-price.strike-price{opacity:1}
.list-price.strike-price::after{content:"";position:absolute;left:0;right:0;top:calc(50% + 7px);border-top:2px solid rgba(52,24,19,.46)}
.list-price strong,.sale-price strong{font-weight:900}
.spinner-container{display:inline-grid;grid-template-columns:44px 52px 44px;align-items:center;justify-content:center;border-radius:999px;background:#fff;border:2px solid #2f6f87;box-shadow:0 10px 20px rgba(20,10,8,.05);overflow:hidden;margin-top:12px}
.spinner{width:52px;height:44px;padding:0;border:0;background:transparent;color:#341813;font-size:1.08rem;font-weight:900;text-align:center}
.minus-button,.plus-button{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:0;background:transparent;color:#2f6f87;cursor:pointer;transition:background var(--ease,.22s ease),color var(--ease,.22s ease)}
.minus-button:hover,.plus-button:hover{background:rgba(47,111,135,.08)}
.minus-button .material-symbols-outlined,.plus-button .material-symbols-outlined{font-size:24px}
.minus-button .icon-svg,.plus-button .icon-svg{font-size:18px}

.collector-container,#schedule-select{position:relative;padding:18px 0 8px;text-align:center}
.collector-container label,#schedule-select label{display:block;margin:0 0 8px;color:#341813;font-size:1.08rem;font-weight:900;line-height:1.35;font-family:"Roboto","Arial","Helvetica",sans-serif}
.collector-container input[type="text"],.collector-container input[type="email"],.collector-container textarea,.collector-container select,#schedule-select select{display:block;width:100%;max-width:560px;margin:0 auto;padding:15px 16px;border-radius:18px;border:1px solid rgba(128,0,32,.14);background:linear-gradient(180deg,#fffdf9 0%,#fff 100%);box-shadow:inset 0 1px 2px rgba(20,10,8,.04);font-family:"Roboto","Arial","Helvetica",sans-serif;font-size:1rem;color:#341813;line-height:1.5}
.collector-container textarea{min-height:140px;resize:vertical}
.collector-container input[type="text"]:focus,.collector-container input[type="email"]:focus,.collector-container textarea:focus,.collector-container select:focus,#schedule-select select:focus{outline:none;border-color:rgba(128,0,32,.32);box-shadow:0 0 0 4px rgba(244,198,11,.18),0 10px 22px rgba(20,10,8,.06)}
.collector-date-input{width:0!important;height:0!important;font-size:0!important;opacity:0!important;position:absolute!important;z-index:-1!important}
.collector-container .hasDatepicker{font-size:.92rem}
.collector-container input[type="text"].spinner{width:52px!important;max-width:none!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;box-shadow:none!important}
.collector-container input[type="checkbox"]{position:absolute;opacity:0;pointer-events:none}
.custom-checkbox{width:24px;height:24px;border:2px solid rgba(128,0,32,.25);cursor:pointer;display:flex;align-items:center;justify-content:center;margin:12px auto 0;border-radius:8px;background:#fff;color:#fff;transition:all var(--ease,.22s ease)}
.custom-checkbox .material-symbols-outlined{font-size:18px;font-weight:800!important}
.custom-checkbox .icon-svg{font-size:14px}
.custom-checkbox:hover{background:#fff7e0}
.custom-checkbox.checked{background:#2f6f87;border-color:#2f6f87;color:#fff}
.multi-select-list{padding:8px 10px 0;text-align:center}
.multi-select-list label{display:inline-block;min-width:12em;margin:0;color:var(--wine,#800020);font-size:.98rem;font-weight:800}
.multi-select-list .ui-spinner{width:2.5em;height:1.5em;font-size:1.25em;margin:.5em}

#reservation-controls{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;padding-top:18px}
.next-btn,.prev-btn,#addToCartSubmit,#window-button,.reservation-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:54px;padding:14px 26px;border-radius:999px;border:0;font-family:"Roboto","Arial","Helvetica",sans-serif;font-size:1rem;font-weight:900;cursor:pointer;transition:transform var(--ease,.22s ease),box-shadow var(--ease,.22s ease),background var(--ease,.22s ease),color var(--ease,.22s ease)}
.next-btn,#addToCartSubmit,#window-button{background:linear-gradient(180deg,var(--gold,#f4c60b),#ffd84e);color:#4c2b09;box-shadow:0 14px 26px rgba(226,184,80,.22)}
.prev-btn,.reservation-button{background:#fff;border:1px solid rgba(128,0,32,.14);color:#341813;box-shadow:0 10px 20px rgba(20,10,8,.06)}
.next-btn:hover,#addToCartSubmit:hover,#window-button:hover,.prev-btn:hover,.reservation-button:hover{transform:translateY(-2px)}
.next-btn .icon-svg,.prev-btn .icon-svg,#addToCartSubmit .icon-svg,#window-button .icon-svg{font-size:18px}
#addToCartSubmit{padding:14px 22px}
#addToCartSubmit p,.next-btn p,.prev-btn p,#window-button p{margin:0}

#cutoff-window{position:fixed;inset:0;padding:0;border-radius:0;box-shadow:none;height:100%;background:rgba(0,0,0,.74);display:none;z-index:2147483648}
#cutoff-window.active{display:block}
#cutoff-message-content{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(520px,calc(100% - 28px));padding:26px 22px 22px;border-radius:24px;background:linear-gradient(180deg,#fffdf9 0%,#fff4e4 100%);box-shadow:0 24px 60px rgba(0,0,0,.26);text-align:center}
#cutoff-window .material-symbols-outlined{font-size:42px;color:var(--wine,#800020)}
#cutoff-window .icon-svg{font-size:30px;color:var(--wine,#800020)}
#cutoff-window p{margin:14px 0 0;color:#341813;font-size:1rem;line-height:1.7;font-weight:700}

#calendar-message,#price-message,#collector-message{display:block;max-width:640px;margin:12px auto 0;padding:12px 16px;border-radius:16px;background:#8a0000;text-align:center}
#calendar-message span,#calendar-message p,#price-message span,#price-message p,#collector-message span,#collector-message p{display:inline-block;vertical-align:middle;color:#fff;font-size:.96rem;line-height:1.4;margin:0}
#calendar-message.hidden,#price-message.hidden,#collector-message.hidden{width:0!important;height:0!important;padding:0!important;margin:0 auto!important;overflow:hidden!important;border:0!important}
#calendar-message.visible,#price-message.visible,#collector-message.visible{width:100%!important}
#calendar-message .material-symbols-outlined,#price-message .material-symbols-outlined,#collector-message .material-symbols-outlined{font-size:18px;border:2px solid #fff;border-radius:50%;padding:4px;margin-right:8px}
#calendar-message .icon-svg,#price-message .icon-svg,#collector-message .icon-svg{font-size:16px;margin-right:8px}

#unavailable-package{text-align:center;padding:26px 14px}
#unavailable-package .material-symbols-outlined{font-size:74px;color:rgba(52,24,19,.18)}
#unavailable-package .icon-svg{font-size:56px;color:rgba(52,24,19,.18)}
#unavailable-package h2{max-width:16em;margin:12px auto 10px;color:#341813;line-height:1.1}
#unavailable-package p{margin:0 0 14px;font-size:1rem;color:#6a4741}

.error{color:darkred;font-size:1.6rem;display:inline-block;vertical-align:top;position:absolute;right:10px;top:0;line-height:1}
.error.hidden{display:none}

#trust-logo-container{background:ivory;text-align:center;padding-bottom:1em;max-width:1200px;margin:0 auto}

@media (max-width:900px){
#reservation-container{width:min(760px,calc(100% - 18px));padding:20px 16px 18px;border-radius:24px}
#cart-heading{padding-right:70px}
#security-header{position:relative;top:auto;left:auto;margin:0 54px 8px 0}
#security-dialogue{left:0;top:54px;width:min(420px,100%)}
#package-title{margin:8px 42px 8px;font-size:clamp(1.75rem,6vw,2.4rem)}
#group-list{grid-template-columns:1fr}
.price-container{grid-template-columns:1fr;gap:12px;padding:16px 12px}
.price-right{text-align:left}
.price-list{justify-content:flex-start}
#reservation-controls{gap:10px}
}

@media (max-width:750px){
#reservation-window{overflow-y:auto;overflow-x:hidden}
#reservation-container{position:relative;left:auto;top:auto;transform:none;width:100%;max-width:none;min-height:100vh;max-height:none;border-radius:0;padding:18px 12px 20px;box-shadow:none;overflow:visible;padding-top:82px}
#reservation-container::before{left:0;right:0}
#reservation-book{max-height:none;height:auto;overflow:visible;margin-top:14px;padding-bottom:20px}
#reservation-controls{position:static;padding-top:18px;margin-top:10px;background:none}
#security-header{margin:0 42px 8px 0;padding:9px 12px;font-size:.92rem;top:14px;left:12px;max-width:calc(100% - 72px)}
#security-dialogue{top:50px;width:calc(100% - 4px)}
#close-reservation{top:12px;right:12px}
#page2,#page3,#page4{max-height:none;overflow:visible}
.ui-datepicker-inline.ui-datepicker.ui-widget.ui-widget-content.ui-helper-clearfix.ui-corner-all{padding:14px 10px 12px;border-radius:18px}
.ui-state-default,.ui-widget-content .ui-state-default,.ui-button,.ui-button{min-height:50px;padding:8px 8px 6px!important;border-radius:14px}
.product-group{padding:16px 14px;border-radius:20px}
.group-left .title{font-size:1.22rem}
.spinner-container{grid-template-columns:42px 48px 42px}
.spinner{width:48px;height:42px}
.minus-button,.plus-button{width:42px;height:42px}
.collector-container input[type="text"],.collector-container input[type="email"],.collector-container textarea,.collector-container select,#schedule-select select{max-width:none}
.next-btn,.prev-btn,#addToCartSubmit,#window-button,.reservation-button{width:100%}
#cutoff-message-content{padding:22px 16px 18px;border-radius:18px}
#package-title{margin:0 40px 8px}
}

@media (max-width:600px){
#datepicker{font-size:.88em}
.ui-datepicker-calendar th span{font-size:.78rem}
.ui-state-default,.ui-widget-content .ui-state-default,.ui-button,.ui-button{min-height:44px}
#calendar-message,#price-message,#collector-message{border-radius:14px}
}

@media (max-width:420px){
#package-title{font-size:1.55rem}
.group-left .title{font-size:1.1rem}
.price span{font-size:1.08rem}
.price-description{font-size:1rem}
#security-header{max-width:calc(100% - 64px)}
#security-header span{font-size:.84rem}
#reservation-container{padding-top:90px}
}