/* Match the cafe's existing cream / forest palette and serif headings. */
.rf-selector,.rf-order { color:#183a2c; font:400 14px/1.5 Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; }
.rf-selector *,.rf-order * { box-sizing:border-box; }
.rf-selector { width:100%; margin:18px 0; padding:18px 20px; background:#fffdf9; border:1px solid #e4dbcc; border-radius:14px; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px 20px; }
.rf-selector strong { font-size:17px; }
.rf-selector p { margin:4px 0 0!important; font-size:12px; color:#59645d; }
.rf-mode-buttons { display:flex; align-items:center; gap:6px; }
.rf-mode-buttons button { min-height:48px; border:1px solid #bdcbbf; border-radius:10px; padding:10px 15px; background:transparent; color:#194532; font-size:14px; font-weight:600; text-transform:none; box-shadow:none; }
.rf-mode-buttons button span { margin-left:6px; }
.rf-mode-buttons button[aria-pressed=true] { background:#194532; color:#fff; border-color:#194532; }
.rf-mode-status { grid-column:1/-1; }
.rf-order { padding:22px; background:#fffdf9; border:1px solid #e4dbcc; border-radius:16px; }
.rf-order h2 { margin:0 0 4px!important; font:500 30px/1.2 'EB Garamond',Georgia,serif; color:#183a2c; }
.rf-current-mode { margin:0 0 18px!important; color:#426749; font-weight:600; font-size:13px; }
.rf-eta { font-size:12px; color:#59645d; margin:-8px 0 14px!important; }
.rf-items { padding:0!important; margin:0!important; list-style:none; }
.rf-items li { list-style:none; padding:12px 0; border-bottom:1px solid #e4dbcc; }
.rf-items li { display:grid; grid-template-columns:48px minmax(0,1fr); gap:0 12px; }
.rf-item-image { grid-row:1/3; align-self:start; }
.rf-item-image img { display:block; width:48px; height:48px; object-fit:cover; border-radius:8px; background:#f0ede5; }
.rf-item-name,.rf-item-controls { grid-column:2; }
.rf-item-name { color:#183a2c; font-weight:600; font-size:14px; }
.rf-item-controls { display:flex; align-items:center; gap:4px; margin-top:8px; }
.rf-item-controls button { width:44px; min-width:44px; height:44px; padding:0; background:#f0f3ed; border:1px solid #ccd5c9; border-radius:8px; color:#194532; font-size:20px; box-shadow:none; }
.rf-item-controls span { min-width:20px; text-align:center; }
.rf-item-controls strong { margin-left:auto; font-size:13px; white-space:nowrap; }
.rf-item-controls .rf-remove { margin-left:4px; background:transparent; border-color:transparent; color:#805044; }
.rf-totals { margin:18px 0 12px!important; }
.rf-totals>div { display:flex; justify-content:space-between; align-items:baseline; gap:10px; padding:5px 0; }
.rf-totals dt { font-weight:400; font-size:13px; }
.rf-totals dd { margin:0; font-weight:600; white-space:nowrap; }
.rf-saving { color:#426749; }
.rf-totals .rf-total { border-top:1px solid #e4dbcc; margin-top:8px; padding-top:12px; font-size:22px; }
.rf-total dt { font-size:13px; line-height:1.45; font-weight:600; min-width:0; flex:1; }
.rf-totals .rf-total { align-items:center; gap:12px; }
.rf-total dd { font-size:21px; line-height:1.3; flex-shrink:0; font-variant-numeric:tabular-nums; }
.rf-threshold { padding:12px; margin:12px 0 8px!important; border-radius:8px; background:#f0f5ed; color:#385d3e; font-size:12px; }
.rf-progress { height:4px; border-radius:4px; background:#e4dbcc; overflow:hidden; margin:0 0 18px; }
.rf-progress span { display:block; height:100%; background:#426749; }
.rf-checkout { display:flex; align-items:center; justify-content:center; min-height:48px; border-radius:10px; background:#194532; color:#fff!important; font-weight:600; text-decoration:none; }
.rf-cart-link { display:block; text-align:center; padding:12px 0; text-decoration:underline; color:#194532; }
.rf-action-total { display:none; }
.rf-confirmation-note { font-size:12px; line-height:1.5; color:#59645d; margin:0 0 10px!important; }
.rf-order-actions { margin-top:18px; }
.rf-cart-dialog { padding:0; margin:0 0 0 auto; width:min(480px,100%); max-width:100%; height:100dvh; max-height:100dvh; border:0; background:#fffdf9; color:#183a2c; box-shadow:-12px 0 40px #0002; }
.rf-cart-dialog[open] { display:flex; flex-direction:column; }
.rf-cart-dialog::backdrop { background:#102d24a6; }
.rf-dialog-header { display:flex; justify-content:space-between; align-items:center; flex-shrink:0; gap:16px; padding:18px 24px; border-bottom:1px solid #e4dbcc; }
.rf-dialog-header h2 { margin:0; color:#183a2c; font:500 30px/1.2 'EB Garamond',Georgia,serif; }
.rf-dialog-header button { width:44px; height:44px; padding:0; border:1px solid #ccd5c9; border-radius:50%; background:#f0f3ed; color:#194532; font-size:28px; box-shadow:none; }
.rf-dialog-content { display:flex; flex:1; flex-direction:column; min-height:0; padding:0 24px; }
.rf-dialog-content>[data-rf-selector] { flex-shrink:0; }
.rf-dialog-content>.rf-toast { flex-shrink:0; }
.rf-dialog-content>[data-rf-panel] { flex:1; min-height:0; }
.rf-dialog-content .rf-selector { border:0; border-bottom:1px solid #e4dbcc; border-radius:0; margin:0; padding:14px 0; grid-template-columns:1fr; gap:8px; }
.rf-dialog-content .rf-selector>div:first-child { display:none; }
.rf-dialog-content .rf-mode-buttons { display:grid; grid-template-columns:1fr 1fr; }
.rf-dialog-content .rf-order { height:100%; display:flex; flex-direction:column; border:0; border-radius:0; padding:16px 0 0; }
.rf-dialog-content .rf-order>h2 { display:none; }
.rf-dialog-content .rf-order-body { flex:1; min-height:0; overflow:auto; overscroll-behavior:contain; padding-right:6px; scrollbar-width:thin; }
.rf-dialog-content .rf-order-actions { flex-shrink:0; margin:0; padding:12px 0 max(8px,env(safe-area-inset-bottom)); border-top:1px solid #e4dbcc; background:#fffdf9; }
.rf-dialog-content .rf-action-total { display:flex; justify-content:space-between; align-items:center; gap:14px; margin-bottom:10px; }
.rf-dialog-content .rf-totals .rf-total { display:none; }
.rf-action-total span { font-size:13px; }
.rf-action-total strong { font-size:21px; white-space:nowrap; }
.rf-dialog-content .rf-cart-link { padding:8px 0; font-size:12px; }
.rf-toast { position:fixed; z-index:1000; left:50%; bottom:100px; transform:translateX(-50%); width:max-content; max-width:calc(100% - 24px); padding:14px 18px; border:1px solid #7b9e82; border-radius:12px; background:#edf4ed; color:#194532; box-shadow:0 4px 20px #0002; font:400 14px/1.5 Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; }
.rf-toast[hidden],.rf-toast button[hidden] { display:none!important; }
.rf-toast button { display:block; padding:8px 0 0; background:none; border:0; color:#194532; text-decoration:underline; font-size:14px; font-weight:600; text-transform:none; box-shadow:none; }
.rf-dialog-content>.rf-toast { position:static; transform:none; width:100%; max-width:none; margin:8px 0; box-shadow:none; padding:10px 12px; }
.rf-dialog-open { overflow:hidden!important; }
.rf-unified-cart .wd-dropdown-cart { display:none!important; }
.rf-header-note { display:block; font-size:10px; font-weight:400; line-height:1.3; color:#59645d; }
.rf-mobile-cart strong { text-align:right; white-space:nowrap; }
.rf-mobile-note { display:block; font-size:11px; line-height:1.4; font-weight:400; }
.rf-dialog-header button:focus-visible,.rf-toast button:focus-visible { outline:3px solid #987039; outline-offset:3px; }
@media(max-width:767px) {
  .rf-cart-dialog { width:100%; }
  .rf-dialog-header { padding:12px 18px; }
  .rf-dialog-content { padding:0 18px; }
  .rf-dialog-content .rf-mode-buttons button { min-height:44px; }
  .rf-dialog-content .rf-mode-status { font-size:11px; }
  .rf-dialog-open .rf-mobile-cart { visibility:hidden; }
  .rf-unified-cart .ritsa-shop-v6 .rs6-aside [data-rf-panel] { display:none; }
}
.rf-receiving { margin-top:14px; padding-top:14px; border-top:1px solid #e4dbcc; }
.rf-receiving summary { min-height:44px; cursor:pointer; font-weight:600; }
.rf-receiving p { font-size:13px; margin:8px 0!important; }
.rf-receiving a { color:#194532; text-decoration:underline; }
.rf-price-caption { display:block; color:#426749; font-size:12px; font-weight:400; margin-top:4px; }
.rf-price-comparison { display:grid; gap:8px; width:100%; min-width:0; font-weight:400; }
.rf-price-comparison .rf-cafe-price { display:block; font-size:13px; color:#59645d; }
.rf-price-comparison .rf-cafe-price del { font-size:inherit!important; color:inherit!important; opacity:1!important; }
.rf-price-comparison .rf-price-option { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:3px 10px; border:1px solid #ddd8cc; border-radius:10px; padding:10px 12px; background:#fffdf9; color:#314c40; }
.rf-price-comparison .rf-price-option.is-selected { background:#edf4ed; border-color:#7b9e82; color:#194532; }
.rf-price-comparison .rf-price-heading { display:flex; align-items:baseline; justify-content:space-between; gap:10px; grid-column:1/-1; }
.rf-price-comparison .rf-price-label { font-size:14px; font-weight:600; }
.rf-price-comparison .rf-price-amount { font-size:21px; line-height:1.3; font-weight:700; white-space:nowrap; }
.rf-price-comparison .rf-price-benefit { font-size:12px; line-height:1.5; }
.rf-price-comparison .rf-price-selected { font-size:11px; font-weight:600; align-self:center; }
.rf-price-comparison .rf-price-footnote { font-size:12px; line-height:1.5; color:#59645d; }
@media(max-width:400px) { .rf-price-comparison .rf-price-option { padding:9px 10px; } .rf-price-comparison .rf-price-amount { font-size:19px; } }
.wd-sticky-btn .rf-price-comparison { display:block; }
.wd-sticky-btn .rf-price-comparison :is(.rf-cafe-price,.rf-price-benefit,.rf-price-selected,.rf-price-footnote),.wd-sticky-btn .rf-price-option:not(.is-selected) { display:none; }
.wd-sticky-btn .rf-price-comparison .rf-price-option.is-selected { display:block; padding:0; background:transparent; border:0; }
.wd-sticky-btn .rf-price-comparison .rf-price-heading { display:flex; gap:8px; }
.rf-active .ritsa-shop-v6 .rs6-cart-card,.rf-active .ritsa-shop-v6 .rs6-mobile-cart { display:none!important; }
.rf-mobile-cart { display:none; }
.rf-selector [hidden],.rf-order [hidden],.rf-mobile-cart[hidden],.rf-portal[hidden],.woocommerce-checkout [hidden],.rf-active[data-rf-receiving=pickup] .rf-pickup-address { display:none!important; }
.rf-checkout-top { margin-bottom:24px; }
.rf-checkout-top>.rf-selector { margin-top:0; }
.rf-checkout-top [data-rf-panel] .rf-items,.rf-checkout-top [data-rf-panel] .rf-checkout,.rf-checkout-top [data-rf-panel] .rf-cart-link { display:none; }
.rf-checkout-top .rf-order { max-width:100%; }
.rf-time-note { color:#59645d; font-size:12px; }
.rf-zone-controls { margin:16px 0; padding-top:14px; border-top:1px solid #e4dbcc; }
.rf-zone-controls label { display:block; font-size:13px; font-weight:600; }
.rf-zone-controls :is(input,select) { display:block; width:100%; min-height:46px; margin-top:6px; border:1px solid #ccd5c9; border-radius:8px; background:#fffdf9; color:#183a2c; padding:10px; font-size:13px; }
.rf-zone-controls p { margin:8px 0; font-size:12px; }
.rf-zone-confirmation { color:#805c31; }
.rf-zone-controls summary { min-height:44px; padding:10px 0; cursor:pointer; color:#194532; text-decoration:underline; }
.rf-zone-map { width:100%; height:auto; display:block; margin:8px 0; border:1px solid #e4dbcc; border-radius:8px; }
.rf-zone-legend p { padding-bottom:8px; border-bottom:1px solid #e4dbcc; }
.rf-address-label { margin-top:12px; }
.rf-zone-controls button { min-height:44px; margin-top:8px; width:100%; border:1px solid #bdcbbf; border-radius:8px; background:#f0f3ed; color:#194532; box-shadow:none; text-transform:none; font-size:13px; }
body[data-rf-receiving=pickup] .rf-zone-controls :is(.rf-address-label,[data-rf-check-address],[data-rf-address-status],.rf-zone-confirmation) { display:none; }
.ritsa-shop-v6 .rs6-aside:has(.rf-order details[open]) { position:static!important; }
.single-product .rf-selector { grid-template-columns:1fr; padding:14px; }
.rf-selector :is(button,a):focus-visible,.rf-order :is(button,a,summary):focus-visible,.rf-mobile-cart:focus-visible { outline:3px solid #987039; outline-offset:3px; }
.rf-selector button:disabled,.rf-order button:disabled { opacity:.55; cursor:wait; }
@media(max-width:767px) {
  .rf-selector { grid-template-columns:1fr; padding:16px; gap:12px; }
  .rf-mode-buttons { display:grid; grid-template-columns:1fr 1fr; }
  .rf-mode-buttons button { padding:10px 8px; font-size:13px; }
  .rf-order { padding:18px; }
  .rf-mobile-cart:not([hidden]) { display:flex; position:fixed; z-index:90; left:12px; right:12px; bottom:calc(12px + env(safe-area-inset-bottom) + var(--rf-toolbar,0px)); min-height:54px; align-items:center; justify-content:space-between; gap:12px; padding:12px 16px; background:#194532; color:#fff!important; border:1px solid #507359; border-radius:12px; box-shadow:0 4px 18px #0002; font-size:14px; }
  body.rf-active:has(.rf-mobile-cart:not([hidden])) { padding-bottom:80px; }
  body.rf-active:has(.rf-mobile-cart:not([hidden])) .scrollToTop { bottom:90px!important; }
}
@media(prefers-reduced-motion:reduce) { .rf-selector *,.rf-order * { transition:none!important; } }
