html{scrollbar-gutter:stable}html.has-modal{overflow:hidden}.hero .hero-benefits{grid-template-columns:repeat(2,minmax(0,1fr))}.topic-grid .topic-copy small{display:block;line-height:1.7;white-space:normal}.hero-benefits .benefit-badge{min-width:0}#reservation .date-control input[type=hidden]{display:none}
#reservation .full-width-field{grid-column:1/-1}#reservation .date-picker-trigger{position:relative;display:flex;align-items:center;justify-content:center;width:100%;margin:0;padding:0 27px;border:1px solid #ddcfca;border-radius:8px;background:white;color:#433a36;font:inherit;font-size:14px;cursor:pointer;box-sizing:border-box}.date-picker-trigger span:last-child{position:absolute;right:9px;color:#a76968}.date-calendar{grid-column:1/-1;width:min(100%,360px);justify-self:center;padding:14px;background:#fffaf7;border:1px solid #e5c7bf;border-radius:12px;box-sizing:border-box}.date-calendar[hidden]{display:none}.calendar-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.calendar-head button,.calendar-grid button{border:0;border-radius:7px;background:white;color:#443830;font:inherit;cursor:pointer}.calendar-head button{width:36px;height:34px;font-size:25px}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;text-align:center}.calendar-grid button{height:36px;font-size:14px;border:1px solid #ecd9d0}.calendar-grid button:enabled:hover,.calendar-grid button[aria-pressed=true]{background:#b6404a;color:white}.calendar-grid button:disabled,.calendar-head button:disabled{background:#eeeae7;color:#aaa39e;cursor:not-allowed;border-color:transparent}.calendar-weekday{font-size:11px;padding-bottom:5px;color:#85716b}.calendar-help{font-size:11px;line-height:1.7;color:#80665d;margin:12px 0 0}.calendar-clear{display:block;margin:10px auto 0;border:0;background:none;text-decoration:underline;color:#a23440;font:inherit;font-size:12px;cursor:pointer}.date-picker-trigger:focus-visible,.date-calendar button:focus-visible{outline:3px solid #20805b;outline-offset:2px}
@media(max-width:700px){#reservation .date-picker-trigger{padding:0 22px}.date-picker-trigger span:last-child{right:6px}}
#reservation{position:absolute;inset:0;margin:auto;width:min(780px,calc(100vw - 32px));height:min(880px,calc(100dvh - 32px));max-height:calc(100dvh - 32px);max-width:none;overflow:hidden;box-sizing:border-box}#reservation[open]{display:flex;flex-direction:column}#reservation>.modal-head{position:relative;top:auto;flex-shrink:0;min-width:0}#reservation>.modal-body{flex:1;min-height:0;min-width:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-gutter:stable;padding:28px 32px}#reservation .form-step,#reservation .form-grid,#reserve-form{min-width:0;max-width:100%}#reservation input:not([type=checkbox]),#reservation select,#reservation textarea{box-sizing:border-box;min-width:0;max-width:100%;font-size:16px}#reservation .date-row{display:grid;grid-template-columns:65px minmax(0,1fr) minmax(0,1fr);align-items:start;gap:10px;margin:14px 0}.date-priority{display:flex;align-items:center;height:var(--form-control-height);font-size:12px}.date-control{min-width:0;max-width:100%}#reservation .date-control input,#reservation .date-control select{display:block;width:100%;margin:0;box-sizing:border-box}#reservation input[type=date]{min-inline-size:0;appearance:none;-webkit-appearance:none}#reservation input[type=date]::-webkit-datetime-edit{padding:0}#reservation input[type=date]::-webkit-date-and-time-value{text-align:left}#reservation input[type=date]::-webkit-calendar-picker-indicator{width:17px;padding:0;margin:0 0 0 3px}.field-error{display:block;color:#ae2434;font-size:11px;line-height:1.6;font-weight:400;white-space:normal;overflow-wrap:anywhere;margin:6px 0 0;max-width:100%}[aria-invalid=true]{border-color:#c42b3c!important;background-color:#fff6f6!important}.form-error-summary{background:#fff0f0;border:1px solid #edc4c8;color:#ae2434;border-radius:7px;padding:10px 12px;font-size:12px;margin:10px 0 18px}.privacy-trigger{display:inline;border:0;background:none;padding:0;color:#b53843;text-decoration:underline;font:inherit;cursor:pointer}.privacy-panel{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;scrollbar-gutter:stable;overscroll-behavior:contain}.privacy-panel-toolbar{position:sticky;top:0;background:#fff6f2;padding:14px 28px;border-bottom:1px solid var(--line);z-index:1}.privacy-return{border:1px solid #eeb5ad;background:white;border-radius:99px;padding:10px 20px;font-size:13px;font-weight:700;color:#b53b43;cursor:pointer}.privacy-panel-document{padding:26px 32px 34px;overflow-wrap:anywhere}.privacy-panel-document h2{font-size:23px}.privacy-panel-document #privacy-document{white-space:pre-line;font-size:13px;line-height:2}.privacy-panel-document>p>a{font-size:12px;color:#ad343e}.privacy-panel-document .btn{margin-top:18px;color:white;border:0}#reservation .actions{flex-wrap:wrap}#reservation .actions .btn{max-width:100%}.privacy-box .consent{align-items:flex-start}.privacy-box .consent input{margin-top:4px}
@media(max-width:700px){#reservation{width:calc(100vw - 24px);height:calc(100dvh - 24px);max-height:calc(100dvh - 24px);border-radius:16px}#reservation>.modal-body{padding:22px 16px}#reservation>.modal-head{padding:12px 16px}.modal-head .form-brand{font-size:14px;line-height:1.6}.modal-head .form-brand small{font-size:9px}#reservation .date-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:15px 0}.date-priority{grid-column:1/-1;height:auto;font-size:11px}#reservation input[type=date]::-webkit-calendar-picker-indicator{width:14px;margin-left:0}.field-error{font-size:10px}.privacy-panel-toolbar{padding:12px 16px}.privacy-panel-document{padding:22px 16px}.privacy-panel-document h2{font-size:20px}.privacy-panel-document #privacy-document{font-size:12px}.privacy-return{font-size:12px;padding:10px 16px}.form-grid .field{margin:14px 0}.hero .hero-benefits{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-benefits .online-badge strong{font-size:22px}.topic-option-text small{font-size:9px}}

/* Calendar navigation keeps its month centered when an arrow is unavailable. */
.calendar-head{display:grid;grid-template-columns:36px 1fr 36px;text-align:center}
.calendar-head button{display:flex;align-items:center;justify-content:center;padding:0;line-height:1}
.calendar-head button[hidden]{display:none}
.calendar-head strong{grid-column:2;grid-row:1}
.calendar-head button:first-child{grid-column:1;grid-row:1}
.calendar-head button:last-child{grid-column:3;grid-row:1}
.calendar-head svg{display:block;width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
#reservation{top:var(--form-visible-top,16px);bottom:auto;margin:0 auto;height:var(--form-visible-height,calc(100dvh - 32px));max-height:var(--form-visible-height,calc(100dvh - 32px))}
/* Single height source for text inputs, selects, and date buttons at every width. */
#reservation{--form-control-height:54px}
#reservation input:not([type=checkbox]):not([type=hidden]),#reservation select,#reservation .date-picker-trigger{height:var(--form-control-height);min-height:var(--form-control-height);font-size:16px;font-weight:400;line-height:24px;padding:0 12px}
#reservation .date-priority{height:var(--form-control-height)}
/* A defined line box and symmetric padding keep text and caret centered on iOS. */
#reservation input:not([type=checkbox]):not([type=hidden]){padding:14px 12px;line-height:24px;appearance:none;-webkit-appearance:none}
#reservation textarea{min-height:112px;font-size:16px;font-weight:400;line-height:24px;padding:12px;appearance:none;-webkit-appearance:none;scroll-margin:20px}
html.has-modal,html.has-modal body{overscroll-behavior:none;overflow:clip}
html.has-modal{scroll-behavior:auto}
/* Keep Google's body-level reCAPTCHA challenge above the form and clickable. */
.form-backdrop{position:fixed;inset:0;z-index:1000;background:#35252188;backdrop-filter:blur(4px)}
#reservation{z-index:1001}
#reservation input,#reservation select{scroll-margin:20px}
@media(max-width:700px){#reservation{top:var(--form-visible-top,12px);height:var(--form-visible-height,calc(100dvh - 24px));max-height:var(--form-visible-height,calc(100dvh - 24px))}#reservation .date-priority{height:auto}#reservation .date-picker-trigger{padding:0 24px}#reservation .date-control select{padding:0 6px}}

/* Keep the selected date and weekday on one line without changing the control height. */
#reservation .date-picker-trigger.has-date{padding:0 6px;white-space:nowrap}
#reservation .date-picker-trigger.has-date span:last-child{display:none}
@media(max-width:700px){#reservation .date-picker-trigger.has-date span:first-child{font-size:14px}}
@media(max-width:360px){#reservation .date-picker-trigger.has-date span:first-child{font-size:12px}}

/* Match the applicant age input's grid-column width while keeping this row left aligned. */
#reservation #partner-age-field>input{width:calc((100% - 20px)/2);margin-left:0;margin-right:auto}
@media(max-width:700px){#reservation #partner-age-field>input{width:calc((100% - 12px)/2)}}
