/* ===== ESSpa Flying Cart ===== (uses the global ESSpa tokens when present, with safe fallbacks) */
.efc-toggle{position:relative;display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:999px;border:1px solid var(--line,#E6DECE);background:var(--paper,#fff);color:var(--ink,#26261F);transition:.3s;text-decoration:none;flex:none}
.efc-toggle:hover{border-color:var(--sage2,#97A578);color:var(--sage,#6E7E54)}
.efc-toggle svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.efc-count{position:absolute;top:-6px;right:-6px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--sage,#6E7E54);color:#fff;font-family:var(--sans,system-ui,sans-serif);font-size:.66rem;font-weight:600;line-height:1;display:none;align-items:center;justify-content:center}
.efc-count.has{display:inline-flex}
.efc-toggle--m{display:none}
@media(max-width:1024px){.efc-toggle--m{display:inline-flex;margin-left:auto;margin-right:6px}}

/* overlay + drawer */
.efc-overlay{position:fixed;inset:0;background:rgba(38,38,31,.42);opacity:0;visibility:hidden;transition:.35s;z-index:100000}
.efc-overlay.open{opacity:1;visibility:visible}
.efc-drawer{position:fixed;top:0;right:0;height:100vh;height:100dvh;width:400px;max-width:92vw;background:var(--cream,#F6F1E7);box-shadow:-30px 0 80px -40px rgba(46,54,37,.5);transform:translateX(110%);transition:transform .42s cubic-bezier(.2,.7,.2,1);z-index:100001;display:flex;flex-direction:column;font-family:var(--sans,system-ui,sans-serif)}
.efc-drawer.open{transform:translateX(0)}
.efc-top{display:flex;align-items:center;justify-content:space-between;padding:22px 24px;border-bottom:1px solid var(--line,#E6DECE);flex:none}
.efc-title{font-family:var(--serif,Georgia,serif);font-size:1.3rem;color:var(--ink,#26261F)}
.efc-close{width:40px;height:40px;border-radius:50%;border:1px solid var(--line,#E6DECE);background:var(--paper,#fff);color:var(--ink,#26261F);font-size:1.05rem;line-height:1;cursor:pointer;display:grid;place-items:center;transition:.25s}
.efc-close:hover{background:var(--sage,#6E7E54);color:#fff;border-color:var(--sage,#6E7E54)}

.efc-contents{flex:1;display:flex;flex-direction:column;min-height:0;transition:opacity .2s}
.efc-contents.efc-loading{opacity:.5;pointer-events:none}
.efc-items{flex:1;overflow-y:auto;padding:6px 24px}
.efc-item{display:grid;grid-template-columns:64px 1fr auto;gap:14px;align-items:start;padding:18px 0;border-bottom:1px solid var(--line,#E6DECE)}
.efc-thumb img{width:64px;height:64px;object-fit:cover;border-radius:10px;display:block;background:var(--shell,#FCFAF4)}
.efc-name{font-family:var(--serif,Georgia,serif);font-size:.98rem;color:var(--ink,#26261F);line-height:1.25;display:block;margin-bottom:4px;text-decoration:none}
.efc-name:hover{color:var(--sage,#6E7E54)}
.efc-line{font-family:var(--serif,Georgia,serif);color:var(--sage,#6E7E54);font-size:.95rem;margin-bottom:8px}
.efc-qty{display:inline-flex;align-items:center;border:1px solid var(--line,#E6DECE);border-radius:999px;overflow:hidden;background:var(--paper,#fff)}
.efc-qbtn{width:30px;height:30px;border:0;background:transparent;color:var(--forest,#333E27);cursor:pointer;font-size:1rem;line-height:1;transition:.2s}
.efc-qbtn:hover{background:var(--shell,#FCFAF4);color:var(--sage,#6E7E54)}
.efc-qv{min-width:30px;text-align:center;font-size:.9rem;color:var(--ink,#26261F)}
.efc-remove{background:none;border:0;color:var(--stone,#6E6A5C);cursor:pointer;font-size:.85rem;padding:4px;line-height:1;transition:.2s}
.efc-remove:hover{color:#b06a4f}

.efc-foot{padding:20px 24px;border-top:1px solid var(--line,#E6DECE);background:var(--shell,#FCFAF4);flex:none;padding-bottom:calc(20px + env(safe-area-inset-bottom,0px))}
.efc-subtotal{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:16px;font-size:.95rem;color:var(--stone,#6E6A5C)}
.efc-sub-val{font-family:var(--serif,Georgia,serif);font-size:1.3rem;color:var(--forest,#333E27)}
.efc-btn{display:flex;align-items:center;justify-content:center;width:100%;padding:15px;border-radius:999px;font-family:var(--sans,system-ui,sans-serif);font-weight:500;font-size:.86rem;letter-spacing:.03em;cursor:pointer;transition:.3s;text-align:center;box-sizing:border-box;text-decoration:none}
.efc-btn--solid{background:var(--ink,#26261F);color:var(--cream,#F6F1E7);border:1px solid var(--ink,#26261F)}
.efc-btn--solid:hover{background:var(--sage,#6E7E54);border-color:var(--sage,#6E7E54);color:#fff}
.efc-btn--ghost{background:transparent;color:var(--ink,#26261F);border:1px solid var(--line,#E6DECE);margin-top:10px}
.efc-btn--ghost:hover{background:var(--ink,#26261F);color:var(--cream,#F6F1E7);border-color:var(--ink,#26261F)}

.efc-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:14px;padding:40px 24px;color:var(--stone,#6E6A5C)}
.efc-bag{width:46px;height:46px;color:var(--sage2,#97A578)}
.efc-empty p{font-family:var(--serif,Georgia,serif);font-size:1.1rem;color:var(--ink,#26261F);margin:0}
@media(max-width:480px){.efc-drawer{width:100vw;max-width:100vw}}
