/*
* RESERVATION WIDGET — Base stylesheet
* Contains all structural styles + light theme as default.
* For other themes, load this file FIRST, then a theme override:
*   <link href="rsv-widget.css" rel="stylesheet" />
*   <link href="rsv-theme-dark.css" rel="stylesheet" />  (optional)
*/

@import url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100..900;1,100..900&family=DM+Sans:opsz,wght@9..40,400..700&display=swap');

/* ================================================================== */
/* DEFAULT THEME VARIABLES (light)                                    */
/* ================================================================== */
:root
{
	/* Surfaces */
	--rsv-bg:#fff;
	--rsv-surface:#f8f7f5;
	--rsv-surface-2:#f0ede8;
	--rsv-border:#e8e4dd;
	--rsv-border-focus:#1a1a1a;

	/* Text */
	--rsv-text:#1a1a1a;
	--rsv-text-2:#6b6560;
	--rsv-text-3:#b0a99f;

	/* Accent / semantic */
	--rsv-accent:#c8874a;
	--rsv-accent-bg:#c8874a12;
	--rsv-accent-border:#c8874a55;
	--rsv-success:#2d9e5f;
	--rsv-success-bg:#2d9e5f12;
	--rsv-success-border:#2d9e5f55;
	--rsv-error:#c0392b;
	--rsv-error-bg:#fff0ef;
	--rsv-error-border:#f5c0bc;
	--rsv-warn:#8a6c00;
	--rsv-warn-bg:#fffdf0;
	--rsv-warn-border:#f0d870;

	/* FAB (popup mode trigger) */
	--rsv-fab-bg:#1a1a1a;
	--rsv-fab-color:#fff;
	--rsv-fab-shadow:0 4px 24px #00000047;
	--rsv-fab-hover-bg:#2e2e2e;
	--rsv-fab-hover-shadow:0 10px 36px #00000052;

	/* Modal */
	--rsv-modal-bg:#fff;
	--rsv-modal-shadow:0 2px 8px #0000000f, 0 12px 40px #00000024, 0 40px 80px #0000001a;
	--rsv-modal-radius:20px;
	--rsv-modal-border:1px solid #00000012;

	/* Typography */
	--rsv-title-font:'Roboto',Georgia,serif;
	--rsv-title-color:#1a1a1a;
	--rsv-title-accent:#c8874a;
	--rsv-title-size:1.35rem;
	--rsv-title-weight:600;
	--rsv-title-style:italic;
	--rsv-title-transform:none;
	--rsv-title-tracking:-.01em;
	--rsv-body-font:'DM Sans',system-ui,sans-serif;
	--rsv-heading-size:1rem;
	--rsv-heading-weight:400;
	--rsv-heading-style:italic;
	--rsv-heading-transform:none;
	--rsv-heading-tracking:-.01em;
	--rsv-confirm-title-size:1.28rem;
	--rsv-confirm-title-weight:400;
	--rsv-confirm-title-style:italic;
	--rsv-confirm-title-transform:none;

	/* Header / body */
	--rsv-header-bg:#fff;
	--rsv-header-border:#f0ede8;
	--rsv-body-bg:#fff;

	/* Step dots */
	--rsv-dot-idle:#e8e4dd;
	--rsv-dot-active:#1a1a1a;
	--rsv-dot-done:#2d9e5f;

	/* Calendar */
	--rsv-cal-day-hover-bg:#f0ede8;
	--rsv-cal-selected-bg:#1a1a1a;
	--rsv-cal-selected-color:#fff;
	--rsv-cal-selected-shadow:0 2px 10px #0000002e;
	--rsv-cal-disabled-color:#d8d2cc;
	--rsv-cal-today-color:#c8874a;

	/* Time slots */
	--rsv-slot-bg:#fff;
	--rsv-slot-hover-bg:#f0ede8;
	--rsv-slot-hover-border:#1a1a1a;
	--rsv-slot-selected-bg:#1a1a1a;
	--rsv-slot-selected-color:#fff;
	--rsv-slot-selected-shadow:0 2px 10px #0000002e;
	--rsv-slot-unavailable-color:#d8d2cc;

	/* Buttons */
	--rsv-btn-primary-bg:#1a1a1a;
	--rsv-btn-primary-color:#fff;
	--rsv-btn-primary-hover-bg:#2e2e2e;
	--rsv-btn-primary-shadow:0 2px 12px #0000002e;
	--rsv-btn-primary-hover-shadow:0 6px 20px #00000042;
	--rsv-btn-ghost-border:#e8e4dd;
	--rsv-btn-ghost-color:#6b6560;
	--rsv-btn-ghost-hover-border:#1a1a1a;
	--rsv-btn-ghost-hover-color:#1a1a1a;
	--rsv-btn-ghost-hover-bg:#f8f7f5;

	/* Spinner */
	--rsv-spinner-track:#f0ede8;
	--rsv-spinner-color:#1a1a1a;

	/* Calendar export buttons */
	--rsv-cal-btn-hover-shadow:0 4px 14px #0000001f;

	/* Confirm icon */
	--rsv-confirm-success-shadow:0 4px 20px #2d9e5f59;
	--rsv-confirm-pending-bg:#1a1a1a;
	--rsv-confirm-pending-shadow:0 4px 20px #00000038;

	/* Radii */
	--rsv-r-xl:20px;
	--rsv-r-lg:14px;
	--rsv-r-md:10px;
	--rsv-r-sm:8px;
	--rsv-r-xs:6px;
}

/* ================================================================== */
/* POPUP-MODE FAB + MODAL                                             */
/* ================================================================== */

#reservation-widget { display:block!important }

#reservation-button
{
	position:fixed;
	bottom:32px;
	right:32px;
	display:flex;
	align-items:center;
	gap:10px;
	background:var(--rsv-fab-bg);
	color:var(--rsv-fab-color);
	border:none;
	border-radius:100px;
	padding:13px 22px;
	font-family:var(--rsv-body-font);
	font-weight:500;
	letter-spacing:.02em;
	cursor:pointer;
	z-index:1000;
	outline:none;
	box-shadow:var(--rsv-fab-shadow);
	transition:transform .22s ease, box-shadow .22s ease, background .18s;
}
#reservation-button:hover
{
	background:var(--rsv-fab-hover-bg);
	transform:translateY(-3px);
	box-shadow:var(--rsv-fab-hover-shadow);
}
#reservation-button:active { transform:translateY(-1px) }
#reservation-button svg { width:17px; height:17px; flex-shrink:0 }

#rsv-modal
{
	position:fixed;
	bottom:32px;
	right:32px;
	width:372px;
	background:var(--rsv-modal-bg);
	border-radius:var(--rsv-modal-radius);
	border:var(--rsv-modal-border);
	box-shadow:var(--rsv-modal-shadow);
	z-index:1200;
	overflow:hidden;
	opacity:0;
	pointer-events:none;
	transform:translateY(16px) scale(.97);
	transition:transform .32s cubic-bezier(.4,0,.2,1), opacity .32s cubic-bezier(.4,0,.2,1);
	font-family:var(--rsv-body-font);
}
#rsv-modal.active
{
	opacity:1;
	pointer-events:all;
	transform:translateY(0) scale(1);
}

/* ================================================================== */
/* HEADER                                                             */
/* ================================================================== */

.rsv-header
{
	padding:20px 22px 15px;
	background:var(--rsv-header-bg);
	border-bottom:1px solid var(--rsv-header-border);
}
.rsv-header-top
{
	display:flex;
	align-items:center;
	justify-content:space-between;
}
.rsv-title
{
	font-family:var(--rsv-title-font);
	font-weight:var(--rsv-title-weight);
	font-style:var(--rsv-title-style);
	text-transform:var(--rsv-title-transform);
	letter-spacing:var(--rsv-title-tracking);
	color:var(--rsv-title-color);
}
.rsv-title span
{
	color:var(--rsv-title-accent);
	font-style:var(--rsv-title-style);
}
.rsv-btn-close
{
	width:30px; height:30px;
	border-radius:50%;
	background:var(--rsv-surface);
	border:none;
	display:flex; align-items:center; justify-content:center;
	cursor:pointer;
	color:var(--rsv-text-2);
	flex-shrink:0;
	transition:background .15s, color .15s;
}
.rsv-btn-close:hover { background:var(--rsv-surface-2); color:var(--rsv-text) }

.rsv-steps { display:flex; gap:5px; margin-top:13px }
.rsv-dot
{
	height:3px;
	border-radius:3px;
	flex:1;
	background:var(--rsv-dot-idle);
	transition:background .32s ease, transform .24s ease;
}
.rsv-dot.active { background:var(--rsv-dot-active) }
.rsv-dot.done { background:var(--rsv-dot-done) }

/* ================================================================== */
/* BODY / STEPS                                                       */
/* ================================================================== */

.rsv-body
{
	padding:20px 22px 22px;
	background:var(--rsv-body-bg);
	max-height:70vh;
	overflow-y:auto;
	scrollbar-width:thin;
	scrollbar-color:var(--rsv-border) transparent;
}
.rsv-body::-webkit-scrollbar { width:3px }
.rsv-body::-webkit-scrollbar-thumb { background:var(--rsv-border); border-radius:3px }

.rsv-step { display:none }
.rsv-step.active { display:block; animation:rsv-stepIn .26s ease forwards }

@keyframes rsv-stepIn
{
	from { opacity:0; transform:translateY(10px) }
	to   { opacity:1; transform:translateY(0) }
}

.rsv-heading
{
	font-family:var(--rsv-title-font);
	font-weight:var(--rsv-heading-weight);
	font-style:var(--rsv-heading-style);
	text-transform:var(--rsv-heading-transform);
	letter-spacing:var(--rsv-heading-tracking);
	color:var(--rsv-text);
	margin-bottom:16px;
}

/* ================================================================== */
/* CALENDAR                                                           */
/* ================================================================== */

.rsv-calendar-nav
{
	display:flex;
	align-items:center;
	justify-content:space-between;
	margin-bottom:11px;
}
.rsv-cal-month-label
{
	font-weight:600;
	color:var(--rsv-text);
	letter-spacing:-.01em;
}
.rsv-btn-cal-nav
{
	width:30px; height:30px;
	border-radius:var(--rsv-r-sm);
	background:var(--rsv-surface);
	border:none;
	display:flex; align-items:center; justify-content:center;
	cursor:pointer;
	color:var(--rsv-text-2);
	transition:background .14s, color .14s;
}
.rsv-btn-cal-nav:hover { background:var(--rsv-text); color:var(--rsv-bg) }
.rsv-btn-cal-nav:disabled { opacity:.25; cursor:default }
.rsv-btn-cal-nav:disabled:hover { background:var(--rsv-surface); color:var(--rsv-text-2) }

.rsv-cal-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:2px }
.rsv-cal-weekday
{
	text-align:center;
	font-weight:700;
	letter-spacing:.08em;
	text-transform:uppercase;
	color:var(--rsv-text-3);
	padding-bottom:4px;
}
.rsv-cal-day
{
	aspect-ratio:1;
	border-radius:var(--rsv-r-sm);
	display:flex; align-items:center; justify-content:center;
	font-weight:400;
	color:var(--rsv-text);
	border:1.5px solid transparent;
	cursor:pointer;
	transition:all .13s ease;
	position:relative;
}
.rsv-cal-day:hover:not(.rsv-disabled):not(.rsv-empty)
{
	background:var(--rsv-cal-day-hover-bg);
	border-color:var(--rsv-border);
}
.rsv-cal-day.rsv-today
{
	font-weight:700;
	color:var(--rsv-accent);
	border-color:var(--rsv-accent-border);
	background:var(--rsv-accent-bg);
}
.rsv-cal-day.rsv-today::after,
.rsv-cal-day.rsv-booking-start:not(.rsv-disabled):not(.rsv-selected)::after
{
	content:'';
	position:absolute;
	bottom:3px;
	left:50%;
	transform:translateX(-50%);
	width:4px; height:4px;
	border-radius:50%;
}
.rsv-cal-day.rsv-today::after { background:var(--rsv-accent) }
.rsv-cal-day.rsv-booking-start:not(.rsv-disabled):not(.rsv-selected)
{
	font-weight:700;
	color:var(--rsv-success);
	border-color:var(--rsv-success-border);
	background:var(--rsv-success-bg);
}
.rsv-cal-day.rsv-booking-start:not(.rsv-disabled):not(.rsv-selected)::after
{
	background:var(--rsv-success);
}
.rsv-cal-day.rsv-selected
{
	background:var(--rsv-cal-selected-bg)!important;
	color:var(--rsv-cal-selected-color)!important;
	border-color:var(--rsv-cal-selected-bg);
	font-weight:500;
	box-shadow:var(--rsv-cal-selected-shadow);
}
.rsv-cal-day.rsv-selected::after { display:none }
.rsv-cal-day.rsv-disabled { color:var(--rsv-cal-disabled-color); cursor:default }
.rsv-cal-day.rsv-empty { cursor:default }

/* ================================================================== */
/* HOLD TIMER + ERRORS                                                */
/* ================================================================== */

.rsv-hold-timer
{
	display:flex;
	align-items:center;
	gap:8px;
	background:var(--rsv-warn-bg);
	border:1px solid var(--rsv-warn-border);
	border-radius:var(--rsv-r-md);
	padding:9px 13px;
	margin-bottom:13px;
	color:var(--rsv-warn);
}
.rsv-hold-timer svg { flex-shrink:0; color:var(--rsv-warn) }
.rsv-hold-timer strong { font-weight:600; color:var(--rsv-warn) }
.rsv-hold-timer.rsv-expiring
{
	background:var(--rsv-error-bg);
	border-color:var(--rsv-error-border);
	color:var(--rsv-error);
}
.rsv-hold-timer.rsv-expiring svg,
.rsv-hold-timer.rsv-expiring strong { color:var(--rsv-error) }

.rsv-error-box
{
	display:none;
	background:var(--rsv-error-bg);
	border:1px solid var(--rsv-error-border);
	border-radius:var(--rsv-r-md);
	padding:9px 13px;
	margin-bottom:11px;
	color:var(--rsv-error);
	line-height:1.5;
}
.rsv-error-box.visible { display:block }

/* ================================================================== */
/* BADGES (date / summary)                                            */
/* ================================================================== */

.rsv-date-badge
{
	display:flex;
	align-items:center;
	gap:7px;
	background:var(--rsv-surface);
	border:1px solid var(--rsv-border);
	border-radius:var(--rsv-r-sm);
	padding:8px 12px;
	font-weight:500;
	color:var(--rsv-text);
	margin-bottom:13px;
}
.rsv-date-badge svg { color:var(--rsv-accent); flex-shrink:0 }

.rsv-summary-badge
{
	display:flex;
	gap:14px;
	align-items:center;
	background:var(--rsv-surface);
	border:1px solid var(--rsv-border);
	border-radius:var(--rsv-r-md);
	padding:9px 13px;
	margin-bottom:14px;
	color:var(--rsv-text);
}
.rsv-summary-badge span { display:flex; align-items:center; gap:5px }
.rsv-summary-badge svg { color:var(--rsv-accent); flex-shrink:0 }

/* ================================================================== */
/* TIME SLOTS                                                         */
/* ================================================================== */

.rsv-time-scroll { max-height:220px; overflow-y:auto }
.rsv-time-scroll::-webkit-scrollbar { width:3px }
.rsv-time-scroll::-webkit-scrollbar-thumb { background:var(--rsv-border); border-radius:3px }

.rsv-time-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:7px }
.rsv-time-slot
{
	border:1.5px solid var(--rsv-border);
	border-radius:var(--rsv-r-md);
	padding:10px 4px;
	text-align:center;
	font-weight:500;
	color:var(--rsv-text);
	background:var(--rsv-slot-bg);
	cursor:pointer;
	transition:all .13s ease;
}
.rsv-time-slot:hover:not(.rsv-unavailable)
{
	border-color:var(--rsv-slot-hover-border);
	background:var(--rsv-slot-hover-bg);
}
.rsv-time-slot.rsv-selected
{
	background:var(--rsv-slot-selected-bg);
	border-color:var(--rsv-slot-selected-bg);
	color:var(--rsv-slot-selected-color);
	box-shadow:var(--rsv-slot-selected-shadow);
}
.rsv-time-slot.rsv-unavailable
{
	color:var(--rsv-slot-unavailable-color);
	text-decoration:line-through;
	cursor:default;
	background:var(--rsv-surface);
}

/* ================================================================== */
/* LOADING                                                            */
/* ================================================================== */

.rsv-loading
{
	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:center;
	min-height:170px;
	gap:12px;
}
.rsv-loading-text { color:var(--rsv-text-3) }

.rsv-inline-error
{
	text-align:center;
	color:var(--rsv-text-3);
	padding:1.5rem 0;
}

/* ================================================================== */
/* FORM                                                               */
/* ================================================================== */

.rsv-form-row { margin-bottom:11px }
.rsv-form-row-2
{
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:10px;
	margin-bottom:11px;
}
.rsv-form-label
{
	display:block;
	font-weight:700;
	letter-spacing:.08em;
	text-transform:uppercase;
	color:var(--rsv-text-3);
	margin-bottom:5px;
}
.rsv-form-input
{
	width:100%;
	border:1.5px solid var(--rsv-border);
	border-radius:var(--rsv-r-md);
	padding:9px 12px;
	font-family:var(--rsv-body-font);
	color:var(--rsv-text);
	background:var(--rsv-bg);
	outline:none;
	appearance:none;
	transition:border-color .14s, box-shadow .14s;
}
.rsv-form-input:focus
{
	border-color:var(--rsv-border-focus);
	box-shadow:0 0 0 3px color-mix(in srgb, var(--rsv-border-focus) 12%, transparent);
}
.rsv-form-input::placeholder { color:var(--rsv-text-3) }
select.rsv-form-input
{
	background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='11' viewBox='0 0 24 24' fill='none' stroke='%23b0a99f' stroke-width='2.5'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
	background-repeat:no-repeat;
	background-position:right 11px center;
	padding-right:30px;
	cursor:pointer;
}
select.rsv-form-input option { background:var(--rsv-bg); color:var(--rsv-text) }

/* ================================================================== */
/* CONFIRM STEP                                                       */
/* ================================================================== */

.rsv-confirm-icon
{
	width:52px; height:52px;
	border-radius:50%;
	display:flex; align-items:center; justify-content:center;
	margin:4px auto 12px;
	animation:rsv-popIn .42s cubic-bezier(.34,1.56,.64,1) forwards;
}
.rsv-confirm-icon-pending
{
	background:var(--rsv-confirm-pending-bg);
	box-shadow:var(--rsv-confirm-pending-shadow);
}
.rsv-confirm-icon-success
{
	background:var(--rsv-success);
	box-shadow:var(--rsv-confirm-success-shadow);
}
.rsv-confirm-icon svg { color:#fff; width:22px; height:22px }

@keyframes rsv-popIn
{
	from { transform:scale(.35); opacity:0 }
	to   { transform:scale(1); opacity:1 }
}

.rsv-confirm-title
{
	font-family:var(--rsv-title-font);
	font-weight:var(--rsv-confirm-title-weight);
	font-style:var(--rsv-confirm-title-style);
	text-transform:var(--rsv-confirm-title-transform);
	color:var(--rsv-text);
	text-align:center;
	margin-bottom:4px;
}
.rsv-confirm-sub
{
	color:var(--rsv-text-2);
	text-align:center;
	margin-bottom:14px;
	line-height:1.6;
}
.rsv-confirm-details
{
	background:var(--rsv-surface);
	border:1px solid var(--rsv-border);
	border-radius:var(--rsv-r-md);
	padding:12px;
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:10px;
	margin-bottom:2px;
}
.rsv-confirm-item-label
{
	font-weight:700;
	text-transform:uppercase;
	letter-spacing:.08em;
	color:var(--rsv-text-3);
	margin-bottom:2px;
}
.rsv-confirm-item-value
{
	font-weight:600;
	color:var(--rsv-text);
}
.rsv-confirm-item-full { grid-column:1/-1 }

/* ================================================================== */
/* MODERATION NOTICE                                                  */
/* ================================================================== */

.rsv-moderation-notice
{
	background:var(--rsv-warn-bg);
	border:1px solid var(--rsv-warn-border);
	border-radius:var(--rsv-r-md);
	padding:13px;
	margin-bottom:2px;
}
.rsv-mod-row { display:flex; align-items:flex-start; gap:11px }
.rsv-mod-icon
{
	width:30px; height:30px;
	border-radius:7px;
	flex-shrink:0;
	display:flex; align-items:center; justify-content:center;
}
.rsv-mod-icon svg { width:14px; height:14px }
.rsv-mod-icon-pending { background:var(--rsv-warn-bg); color:var(--rsv-warn) }
.rsv-mod-icon-phone { background:var(--rsv-surface); color:var(--rsv-text-2) }
.rsv-mod-text { color:var(--rsv-text-2); line-height:1.55 }
.rsv-mod-text strong
{
	display:block;
	font-weight:600;
	color:var(--rsv-text);
	margin-bottom:1px;
}
.rsv-mod-text em { font-style:normal; font-weight:600; color:var(--rsv-warn) }
.rsv-mod-divider { height:1px; background:var(--rsv-warn-border); margin:10px 0 }

/* ================================================================== */
/* CALENDAR EXPORT BUTTONS                                            */
/* ================================================================== */

.rsv-cal-export { margin-top:14px }
.rsv-cal-export-label
{
	font-weight:700;
	letter-spacing:.1em;
	text-transform:uppercase;
	color:var(--rsv-text-3);
	text-align:center;
	margin-bottom:9px;
}
.rsv-cal-export-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:6px }
.rsv-cal-btn
{
	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:center;
	gap:5px;
	background:var(--rsv-surface);
	border:1.5px solid var(--rsv-border);
	border-radius:var(--rsv-r-md);
	padding:9px 4px;
	text-decoration:none;
	color:var(--rsv-text);
	font-weight:500;
	transition:all .14s ease;
	cursor:pointer;
}
.rsv-cal-btn svg { width:19px; height:19px; flex-shrink:0 }
.rsv-cal-btn:hover
{
	border-color:var(--rsv-text);
	background:var(--rsv-bg);
	transform:translateY(-2px);
	box-shadow:var(--rsv-cal-btn-hover-shadow);
}
.rsv-cal-btn:active { transform:translateY(0) }
.rsv-cal-btn-apple svg { color:var(--rsv-text) }
.rsv-cal-btn-ics svg { color:var(--rsv-text-2) }

/* ================================================================== */
/* FOOTER + BUTTONS                                                   */
/* ================================================================== */

.rsv-footer
{
	padding:14px 22px 20px;
	background:var(--rsv-bg);
	border-top:1px solid var(--rsv-border);
	flex-shrink:0;
}
.rsv-footer-btns { display:flex; gap:8px }
.rsv-footer-btns .rsv-btn-primary { flex:65 1 0; min-width:0 }
.rsv-footer-btns .rsv-btn-ghost { flex:35 1 0; min-width:0 }
.rsv-footer-btns .rsv-btn-primary:only-child { flex:1 }

.rsv-btn-primary
{
	background:var(--rsv-btn-primary-bg);
	color:var(--rsv-btn-primary-color);
	border:none;
	border-radius:var(--rsv-r-md);
	padding:12px 10px;
	font-family:var(--rsv-body-font);
	font-weight:500;
	letter-spacing:.02em;
	cursor:pointer;
	display:flex; align-items:center; justify-content:center;
	gap:6px;
	box-shadow:var(--rsv-btn-primary-shadow);
	transition:background .16s, transform .16s, box-shadow .16s;
	white-space:nowrap;
	overflow:hidden;
}
.rsv-btn-primary:hover
{
	background:var(--rsv-btn-primary-hover-bg);
	transform:translateY(-1px);
	box-shadow:var(--rsv-btn-primary-hover-shadow);
}
.rsv-btn-primary:active { transform:translateY(0) }
.rsv-btn-primary:disabled
{
	background:var(--rsv-border);
	color:var(--rsv-text-3);
	cursor:default;
	transform:none;
	box-shadow:none;
}

.rsv-btn-ghost
{
	background:none;
	color:var(--rsv-btn-ghost-color);
	border:1.5px solid var(--rsv-btn-ghost-border);
	border-radius:var(--rsv-r-md);
	padding:12px 8px;
	font-family:var(--rsv-body-font);
	cursor:pointer;
	transition:border-color .14s, color .14s, background .14s;
	white-space:nowrap;
}
.rsv-btn-ghost:hover
{
	border-color:var(--rsv-btn-ghost-hover-border);
	color:var(--rsv-btn-ghost-hover-color);
	background:var(--rsv-btn-ghost-hover-bg);
}

/* ================================================================== */
/* RESPONSIVE — POPUP MODE                                            */
/* ================================================================== */

@media (max-width:440px)
{
	#rsv-modal { right:12px; left:12px; width:auto }
	#reservation-button
	{
		right:16px; left:16px;
		bottom:20px;
		width:calc(100% - 32px);
		border-radius:100px;
		justify-content:center;
		padding:15px 24px;
	}
	#reservation-button:hover { transform:none }
}

/* ================================================================== */
/* INLINE MODE                                                        */
/* ================================================================== */

.rsv-inline
{
	display:block;
	width:100%;
	max-width:560px;
	margin:0 auto;
	font-family:var(--rsv-body-font);
}
.rsv-inline #rsv-modal
{
	position:static;
	bottom:auto;
	right:auto;
	width:100%;
	max-width:100%;
	box-shadow:none;
	border:1px solid var(--rsv-border);
	opacity:1;
	pointer-events:auto;
	transform:none;
	transition:none;
	z-index:auto;
}
.rsv-inline #rsv-modal.active { transform:none }
.rsv-inline .rsv-body { max-height:none!important }

@media (max-width:440px)
{
	.rsv-inline { max-width:100% }
	.rsv-inline #rsv-modal
	{
		border-left:none;
		border-right:none;
		border-radius:0;
	}
}
