/* Remlinger Café Menu — loader chrome. Namespaced rfcm-. Owns no menu styling. */
.rfcm-overlay{
	position:fixed; inset:0; z-index:1460;      /* shell dialogs 1400, shell ticket dialog 1450 */
	box-sizing:border-box;
	opacity:0; visibility:hidden;
	transition:opacity .28s ease, visibility 0s linear .28s;
	/* Safe areas inset the sides and top so the menu's own close control clears
	   the notch in landscape. The bottom stays edge-to-edge: on phones the menu
	   presents as a bottom sheet and should bleed under the home indicator. */
	padding:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) 0 env(safe-area-inset-left,0px);
}
.rfcm-overlay.is-open{opacity:1; visibility:visible; transition-delay:0s}
.rfcm-overlay[hidden]{display:none}

/* An iframe is a replaced element: width/height:auto would resolve to its
   intrinsic 300x150, not the available box. Size it explicitly. */
.rfcm-frame{
	display:block; border:0; width:100%; height:100%;
	background:transparent;
}

/* Loading state — the menu document is image-heavy, so never show a blank. */
.rfcm-busy{
	position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
	gap:12px; background:rgba(4,7,15,.72);
	-webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px);
	color:#EFE9DD; font:500 15px/1.4 "RF Shell Montserrat",Montserrat,system-ui,sans-serif;
	letter-spacing:.01em;
}
.rfcm-overlay.is-ready .rfcm-busy{opacity:0; pointer-events:none; transition:opacity .25s ease}
.rfcm-spin{
	width:18px; height:18px; border-radius:50%; flex:none;
	border:2px solid rgba(239,233,221,.28); border-top-color:#E8A33D;
	animation:rfcm-spin .8s linear infinite;
}
@keyframes rfcm-spin{to{transform:rotate(360deg)}}

@media (prefers-reduced-motion:reduce){
	.rfcm-overlay,.rfcm-busy{transition:none}
	.rfcm-spin{animation:none; border-top-color:rgba(239,233,221,.28)}
}
