/* ---------- tokens ---------- */
:root{
  --blue:#2563EB; --blue-d:#1D4ED8; --blue-t:#EEF4FF;
  --ink:#1C1C1C; --ink-2:#3D3D3D; --gray:#7E818C; --gray-2:#9DA0AB;
  --line:#EDEDED; --line-2:#E2E4E9;
  --bg:#FFFFFF; --bg-2:#F7F7F8;
  --green:#0C831F; --green-t:#E9F5EC;
  --r:8px; --r-lg:12px;
}
[data-theme="dark"]{
  --blue:#4D82F3; --blue-d:#3B6FE0; --blue-t:#14203A;
  --ink:#EDEFF3; --ink-2:#C6CAD3; --gray:#8B8F9A; --gray-2:#6E727C;
  --line:#232529; --line-2:#2C2F35;
  --bg:#141518; --bg-2:#1A1B1F;
  --green:#3FBF54; --green-t:#132A18;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  font-size:13px; line-height:1.45; letter-spacing:-.01em; -webkit-font-smoothing:antialiased;
}
a{color:inherit; text-decoration:none}
button,input,select,textarea{font:inherit; color:inherit}
button{background:none; border:none; cursor:pointer; padding:0}
:focus-visible{outline:2px solid var(--blue); outline-offset:2px; border-radius:4px}
.efm-ic{width:1em; height:1em; stroke:currentColor; fill:none; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; flex:none}
.efm-wrap{max-width:1340px; margin:0 auto; padding-inline:16px}
.efm-row{display:flex; align-items:center}
.efm-hide{display:none !important}

/* ---------- header ---------- */
header{position:sticky; top:0; z-index:40; background:var(--bg); border-bottom:1px solid var(--line)}
.efm-h-top{height:68px; gap:20px}
.efm-logo{display:flex; align-items:center; gap:7px; font-weight:700; font-size:17px; letter-spacing:-.04em}
.efm-logo i{width:26px; height:26px; border-radius:7px; background:var(--blue); display:grid; place-items:center; color:#fff; overflow:hidden}
.efm-logo i img{width:100%; height:100%; object-fit:cover}
.efm-eta-box{cursor:pointer; line-height:1.25; padding-right:8px; text-align:left}
.efm-eta-box b{display:block; font-size:15px; font-weight:700; letter-spacing:-.03em}
.efm-eta-box span{display:flex; align-items:center; gap:3px; font-size:12px; color:var(--ink-2)}
.efm-eta-box .efm-ic{width:13px; height:13px}
.efm-search{flex:1; position:relative; max-width:640px}
.efm-search .efm-ic{position:absolute; left:13px; top:50%; transform:translateY(-50%); width:16px; height:16px; color:var(--gray)}
.efm-search input{width:100%; height:40px; border:1px solid var(--line-2); background:var(--bg-2); border-radius:var(--r); padding:0 12px 0 38px; outline:none; font-size:13px}
.efm-search input:focus{border-color:var(--blue); background:var(--bg)}
.efm-h-right{margin-left:auto; gap:14px}
.efm-txt-btn{font-size:13.5px; font-weight:600; color:var(--ink-2)}
.efm-txt-btn:hover{color:var(--blue)}
.efm-txt-btn.efm-logged-in{display:inline-flex; align-items:center; gap:8px}
.efm-avatar{width:30px; height:30px; border-radius:50%; object-fit:cover; flex:none}
.efm-avatar-fallback{display:inline-flex; align-items:center; justify-content:center; background:var(--blue); color:#fff; font-size:12px; font-weight:700}
.efm-user-info{display:flex; flex-direction:column; align-items:flex-start; line-height:1.25; text-align:left}
.efm-user-info b{font-size:13px; font-weight:600; color:var(--ink)}
.efm-user-info small{font-size:10.5px; font-weight:500; color:var(--gray)}
.efm-user-menu{position:relative}
.efm-user-drop{position:absolute; top:calc(100% + 10px); right:0; min-width:240px; background:var(--bg); border:1px solid var(--line-2); border-radius:var(--r-lg); box-shadow:0 10px 30px rgba(0,0,0,.14); padding:6px; z-index:50}
.efm-user-drop-head{display:flex; align-items:center; gap:10px; padding:8px 9px 12px; margin-bottom:6px; border-bottom:1px solid var(--line)}
.efm-user-drop-item{display:block; width:100%; text-align:left; padding:9px 11px; border-radius:8px; font-size:13px; font-weight:500; color:var(--ink-2)}
.efm-user-drop-item:hover{background:var(--bg-2); color:var(--ink)}
.efm-app-banner{margin-top:6px; padding:12px 9px 10px; border-top:1px solid var(--line); display:flex; align-items:center; gap:11px}
.efm-app-qr{flex:none; background:#fff; padding:5px; border-radius:8px; border:1px solid var(--line-2)}
.efm-app-qr img{display:block; width:72px; height:72px}
.efm-app-banner-title{margin:0; font-size:12.5px; font-weight:700; color:var(--ink)}
.efm-app-banner-sub{margin:2px 0 0; font-size:11px; color:var(--gray)}
.efm-cart-btn{position:relative; width:38px; height:38px; display:grid; place-items:center; color:var(--ink-2); border:1px solid var(--line-2); border-radius:var(--r)}
.efm-cart-btn .efm-ic{width:18px; height:18px}
.efm-cart-btn:hover{color:var(--blue)}
.efm-cart-count{position:absolute; top:-6px; right:-6px; min-width:18px; height:18px; padding:0 4px; border-radius:999px;
  background:var(--bg); color:var(--blue); font-size:10.5px; font-weight:800; display:grid; place-items:center; line-height:1; border:1.5px solid var(--blue)}
.efm-icon-sq{width:34px; height:34px; border:1px solid var(--line-2); border-radius:var(--r); display:grid; place-items:center; color:var(--ink-2)}
.efm-icon-sq .efm-ic{width:16px; height:16px}
[data-theme="dark"] .efm-sun{display:none}
[data-theme="light"] .efm-moon{display:none}
.efm-h-nav{border-top:1px solid var(--line); height:44px; gap:22px; overflow-x:auto; scrollbar-width:none}
.efm-h-nav::-webkit-scrollbar{display:none}
.efm-h-nav button{font-size:12.5px; font-weight:600; color:var(--gray); white-space:nowrap; height:100%; border-bottom:2px solid transparent}
.efm-h-nav button.efm-on{color:var(--ink); border-bottom-color:var(--blue)}

/* ---------- hero carousel ---------- */
.efm-hero{position:relative; margin-top:16px; border-radius:var(--r-lg); overflow:hidden}
.efm-hero-track{display:flex; transition:transform .5s cubic-bezier(.3,.8,.3,1)}
.efm-hero-slide{flex:0 0 100%; min-height:220px; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:28px 32px}
.efm-hero-text{max-width:440px}
.efm-hero-tag{display:inline-block; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:var(--blue); background:rgba(37,99,235,.1); padding:4px 10px; border-radius:20px; margin-bottom:10px}
.efm-hero-text h2{margin:0 0 6px; font-size:clamp(19px,3vw,27px); font-weight:800; letter-spacing:-.02em; line-height:1.22; color:var(--ink)}
.efm-hero-text p{margin:0 0 16px; font-size:13.5px; color:var(--ink-2)}
.efm-hero-cta{display:inline-flex; align-items:center; gap:8px; background:var(--blue); color:#fff; border-radius:var(--r); padding:11px 18px; font-weight:700; font-size:13.5px}
.efm-hero-cta:hover{background:var(--blue-d)}
.efm-hero-cta .efm-ic{width:15px; height:15px}
.efm-hero-img{height:170px; width:auto; max-width:38%; object-fit:contain; flex:none}
.efm-hero-arrow{position:absolute; top:50%; transform:translateY(-50%); width:34px; height:34px; border-radius:50%; background:var(--bg); border:1px solid var(--line-2); display:grid; place-items:center; color:var(--ink-2); box-shadow:0 4px 14px rgba(0,0,0,.1)}
.efm-hero-arrow:hover{color:var(--blue); border-color:var(--blue)}
.efm-hero-prev{left:12px}
.efm-hero-next{right:12px}
.efm-hero-arrow .efm-ic{width:16px; height:16px}
.efm-hero-dots{position:absolute; left:0; right:0; bottom:12px; display:flex; justify-content:center; gap:6px}
.efm-hero-dot{width:6px; height:6px; border-radius:50%; background:rgba(0,0,0,.2)}
.efm-hero-dot.efm-on{width:18px; background:var(--blue)}
@media (max-width:640px){
  .efm-hero-slide{padding:20px; min-height:180px}
  .efm-hero-img{height:110px}
  .efm-hero-arrow{display:none}
  .efm-hero-text h2{font-size:18px}
}

/* ---------- tiles / banners ---------- */
.efm-strip{padding:34px 0 34px}
.efm-tiles{display:grid; grid-auto-flow:column; grid-template-rows:1fr 1fr; gap:10px; overflow-x:auto; scroll-snap-type:x proximity; padding-bottom:12px; scrollbar-width:none}
.efm-tiles::-webkit-scrollbar{display:none}
.efm-tile{width:96px; scroll-snap-align:start; text-align:center}
.efm-tile div{height:78px; border-radius:var(--r-lg); display:grid; place-items:center; margin-bottom:5px; border:1px solid transparent; overflow:hidden}
.efm-tile div .efm-ic{width:30px; height:30px; stroke-width:1.6}
.efm-tile div img{width:100%; height:100%; object-fit:cover}
.efm-tile:hover div{border-color:var(--line-2)}
.efm-tile b{display:block; font-size:11.5px; font-weight:500; color:var(--ink-2); line-height:1.25}
.efm-banners{display:grid; grid-auto-flow:column; grid-auto-columns:minmax(280px,1fr); gap:10px; overflow-x:auto; scrollbar-width:none; padding-bottom:4px}
.efm-banners::-webkit-scrollbar{display:none}
.efm-ban{border-radius:var(--r-lg); padding:16px 18px; color:#fff; min-height:96px; display:flex; flex-direction:column; justify-content:center}
.efm-ban b{font-size:17px; font-weight:700; letter-spacing:-.03em}
.efm-ban span{font-size:12px; opacity:.9}
.efm-ban em{font-style:normal; font-size:11px; font-weight:600; background:rgba(255,255,255,.2); padding:3px 8px; border-radius:4px; align-self:flex-start; margin-top:8px}

/* ---------- rails ---------- */
.efm-sec{padding:22px 0 4px}
.efm-sec-head{display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin-bottom:12px}
.efm-sec-head h2{margin:0; font-size:17px; font-weight:700; letter-spacing:-.03em}
.efm-sec-head p{margin:2px 0 0; font-size:12px; color:var(--gray)}
.efm-see{font-size:12.5px; font-weight:600; color:var(--blue); white-space:nowrap}
.efm-rail{display:grid; grid-auto-flow:column; grid-auto-columns:180px; gap:10px; overflow-x:auto; scroll-snap-type:x proximity; padding-bottom:6px; scrollbar-width:none}
.efm-rail::-webkit-scrollbar{display:none}
.efm-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(168px,1fr)); gap:10px}

/* ---------- card ---------- */
.efm-card{border:1px solid var(--line); border-radius:var(--r-lg); padding:8px; background:var(--bg); scroll-snap-align:start; display:flex; flex-direction:column}
.efm-card:hover{border-color:var(--line-2)}
.efm-thumb{position:relative; border-radius:var(--r); height:118px; display:grid; place-items:center; margin-bottom:8px; overflow:hidden}
.efm-thumb .efm-ic{width:44px; height:44px; stroke-width:1.4}
.efm-thumb-img{width:100%; height:100%; object-fit:cover}
.efm-badge-eta{position:absolute; left:6px; top:6px; background:rgba(255,255,255,.92); color:#1C1C1C; font-size:9.5px; font-weight:700; padding:3px 6px; border-radius:4px}
.efm-badge-off{position:absolute; right:6px; top:6px; background:var(--blue); color:#fff; font-size:9.5px; font-weight:700; padding:3px 6px; border-radius:4px}
.efm-card h3{margin:0; font-size:12.5px; font-weight:600; line-height:1.35; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden}
.efm-card .efm-meta{font-size:11.5px; color:var(--gray); margin:3px 0 6px}
.efm-card .efm-rate{display:inline-flex; align-items:center; gap:3px; font-size:11px; font-weight:600; color:var(--ink-2); margin-bottom:6px}
.efm-card .efm-rate .efm-ic{width:11px; height:11px; fill:var(--green); stroke:var(--green)}
.efm-card .efm-bot{margin-top:auto; display:flex; align-items:center; justify-content:space-between; gap:6px}
.efm-pr b{font-size:13px; font-weight:700}
.efm-pr s{font-size:11px; color:var(--gray-2); margin-left:4px}
.efm-pr .efm-from{display:block; font-size:9.5px; font-weight:600; color:var(--gray-2); letter-spacing:.04em; text-transform:uppercase; line-height:1}
.efm-add{border:1px solid var(--blue); color:var(--blue); background:var(--blue-t); border-radius:var(--r); height:30px; min-width:62px; padding:0 8px; font-size:12px; font-weight:700; letter-spacing:.02em}
.efm-add:hover{background:var(--blue); color:#fff}
.efm-step{display:flex; align-items:center; justify-content:space-between; background:var(--blue); color:#fff; border-radius:var(--r); height:30px; min-width:70px; padding:0 4px; font-weight:700; font-size:12px}
.efm-step button{width:20px; height:28px; color:#fff; display:grid; place-items:center}
.efm-step .efm-ic{width:13px; height:13px; stroke-width:2.6}
.efm-picked{
  display:flex; align-items:center; gap:5px; width:100%; margin-top:6px; padding:5px 7px;
  background:var(--bg-2); border:1px solid var(--line); border-radius:6px;
  font-size:10.5px; font-weight:600; color:var(--ink-2); line-height:1.3; text-align:left;
}
.efm-picked span{flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.efm-picked .efm-ic{width:11px; height:11px; color:var(--blue)}
.efm-card .efm-step-wrap{display:none} .efm-card.efm-in .efm-step-wrap{display:block}
.efm-card.efm-in .efm-add{display:none}
.efm-card .efm-step-wrap{width:100%}
.efm-card .efm-bot .efm-step-wrap{width:auto}

/* ---------- variant sheet ---------- */
.efm-scrim{position:fixed; inset:0; background:rgba(0,0,0,.42); opacity:0; pointer-events:none; transition:opacity .22s; z-index:60}
.efm-scrim.efm-on{opacity:1; pointer-events:auto}
.efm-sheet{
  position:fixed; z-index:80; background:var(--bg); border:1px solid var(--line-2);
  width:min(420px,calc(100% - 24px)); left:50%; top:50%; transform:translate(-50%,-46%) scale(.97);
  border-radius:14px; opacity:0; pointer-events:none; transition:opacity .2s, transform .2s;
  display:flex; flex-direction:column; max-height:min(86dvh,720px);
}
.efm-sheet.efm-on{opacity:1; pointer-events:auto; transform:translate(-50%,-50%) scale(1)}
.efm-sh-head{display:flex; gap:10px; padding:14px;}
.efm-sh-head .efm-th{width:46px; height:46px; border-radius:var(--r); display:grid; place-items:center; flex:none; overflow:hidden}
.efm-sh-head .efm-th .efm-ic{width:22px; height:22px}
.efm-sh-head b{display:block; font-size:14px; font-weight:700; line-height:1.3}
.efm-sh-head span{font-size:11.5px; color:var(--gray)}
.efm-sh-body{overflow-y:auto; padding:14px}
.efm-fld{margin-bottom:16px}
.efm-fld > label{display:flex; align-items:center; gap:6px; font-size:11px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; color:var(--gray-2); margin-bottom:8px}
.efm-req{color:var(--blue); font-size:10px; letter-spacing:0; text-transform:none; font-weight:600}
.efm-opts{display:flex; flex-wrap:wrap; gap:6px}
.efm-opt{
  border:1px solid var(--line-2); background:var(--bg); border-radius:8px; padding:8px 11px;
  font-size:12px; font-weight:600; text-align:left; line-height:1.3; color:var(--ink-2);
}
.efm-opt small{display:block; font-size:10.5px; font-weight:500; color:var(--gray-2)}
.efm-opt:hover{border-color:var(--blue)}
.efm-opt.efm-on{background:var(--blue-t); border-color:var(--blue); color:var(--blue)}
.efm-opt.efm-on small{color:var(--blue)}
.efm-qty-row{display:flex; align-items:center; justify-content:space-between; gap:12px; border:1px solid var(--line-2); border-radius:var(--r); padding:10px 12px; background:var(--bg-2)}
.efm-qty-row.efm-off{opacity:.45; pointer-events:none}
.efm-qty-row b{font-size:12.5px}
.efm-qty-row small{display:block; font-size:11px; color:var(--gray); font-weight:500}
.efm-qbox{display:flex; align-items:center; gap:2px; background:var(--bg); border:1px solid var(--line-2); border-radius:7px; padding:2px}
.efm-qbox button{width:28px; height:28px; display:grid; place-items:center; border-radius:5px; color:var(--blue)}
.efm-qbox button:hover{background:var(--blue-t)}
.efm-qbox span{min-width:46px; text-align:center; font-weight:700; font-size:12.5px}
.efm-sh-foot{border-top:1px solid var(--line); padding:12px 14px calc(12px + env(safe-area-inset-bottom)); background:var(--bg)}
.efm-sh-hint{font-size:11.5px; color:var(--gray); margin-bottom:9px; display:flex; align-items:center; gap:6px}
.efm-sh-hint .efm-ic{width:13px; height:13px}
.efm-cta{display:flex; align-items:center; justify-content:space-between; width:100%; background:var(--blue); color:#fff; border-radius:var(--r); padding:12px 14px; font-weight:700; font-size:13.5px}
.efm-cta:hover{background:var(--blue-d)}
.efm-cta.efm-cta-ghost{background:var(--bg-2); color:var(--ink); border:1px solid var(--line-2); justify-content:center}
.efm-cta.efm-cta-ghost:hover{background:var(--line)}
.efm-cta.efm-cta-danger{background:#E11D48; justify-content:center}
.efm-cta.efm-cta-danger:hover{background:#BE123C}
.efm-cta:disabled{background:var(--line-2); color:var(--gray-2); cursor:not-allowed}
.efm-cta s{font-weight:500; opacity:.7; font-size:11.5px; margin-left:5px}
.efm-cta .efm-ic{width:15px; height:15px}

/* ---------- search page ---------- */
#searchPage{position:fixed; inset:0; z-index:55; background:var(--bg); display:none; flex-direction:column}
#searchPage.efm-on{display:flex}
.efm-sp-head{background:var(--bg); border-bottom:1px solid var(--line); flex:none}
.efm-sp-bar{display:flex; align-items:center; gap:10px; height:58px}
.efm-sp-input{flex:1; position:relative; display:flex; align-items:center}
.efm-sp-input > .efm-ic{position:absolute; left:12px; width:16px; height:16px; color:var(--gray)}
.efm-sp-input input{width:100%; height:40px; border:1px solid var(--line-2); background:var(--bg-2);
  border-radius:var(--r); padding:0 34px 0 36px; outline:none; font-size:13.5px}
.efm-sp-input input:focus{border-color:var(--blue); background:var(--bg)}
.efm-sp-clear{position:absolute; right:8px; width:22px; height:22px; border-radius:50%; display:grid; place-items:center;
  color:var(--gray); background:var(--line)}
.efm-sp-clear .efm-ic{width:11px; height:11px; stroke-width:2.6}
.efm-sp-body{flex:1; overflow-y:auto; overscroll-behavior:contain; padding-bottom:40px}
.efm-sp-sec{padding:18px 0 2px}
.efm-sp-sec > h4{margin:0 0 10px; font-size:11px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; color:var(--gray-2);
  display:flex; align-items:center; justify-content:space-between; gap:12px}
.efm-sp-sec > h4 button{font-size:11px; font-weight:600; letter-spacing:0; text-transform:none; color:var(--blue)}
.efm-tags{display:flex; flex-wrap:wrap; gap:7px}
.efm-tag{display:inline-flex; align-items:center; gap:6px; border:1px solid var(--line-2); background:var(--bg);
  border-radius:20px; padding:7px 13px; font-size:12.5px; font-weight:500; color:var(--ink-2)}
.efm-tag:hover{border-color:var(--blue); color:var(--blue)}
.efm-tag .efm-ic{width:12px; height:12px; color:var(--gray-2)}
.efm-tag .efm-rm{margin:-4px -6px -4px 0; padding:4px 6px; color:var(--gray-2); border-radius:50%}
.efm-tag .efm-rm:hover{color:var(--ink)}
.efm-tag.efm-hot{background:var(--blue-t); border-color:transparent; color:var(--blue); font-weight:600}

/* suggestions */
.efm-sugs{padding:6px 0}
.efm-sug{display:flex; align-items:center; gap:11px; width:100%; text-align:left; padding:9px 4px; border-radius:var(--r)}
.efm-sug:hover,.efm-sug.efm-cur{background:var(--bg-2)}
.efm-sug .efm-th{width:38px; height:38px; border-radius:7px; display:grid; place-items:center; flex:none}
.efm-sug .efm-th .efm-ic{width:18px; height:18px}
.efm-sug .efm-tx{flex:1; min-width:0}
.efm-sug .efm-tx b{display:block; font-size:13px; font-weight:500; line-height:1.3; color:var(--ink-2)}
.efm-sug .efm-tx b em{font-style:normal; font-weight:700; color:var(--ink)}
.efm-sug .efm-tx small{font-size:11px; color:var(--gray-2)}
.efm-sug .efm-pv{font-size:11.5px; font-weight:600; color:var(--gray); white-space:nowrap}
.efm-sug .efm-go{width:14px; height:14px; color:var(--gray-2)}

/* filters + results */
.efm-f-row{display:flex; gap:7px; padding:0 0 11px; overflow-x:auto; scrollbar-width:none}
.efm-f-row::-webkit-scrollbar{display:none}
.efm-fchip{display:inline-flex; align-items:center; gap:5px; border:1px solid var(--line-2); background:var(--bg);
  border-radius:20px; padding:6px 12px; font-size:12px; font-weight:600; color:var(--ink-2); white-space:nowrap}
.efm-fchip:hover{border-color:var(--blue)}
.efm-fchip.efm-on{background:var(--blue-t); border-color:var(--blue); color:var(--blue)}
.efm-fchip .efm-ic{width:12px; height:12px}
.efm-fsel{position:relative; display:inline-flex; align-items:center}
.efm-fsel select{appearance:none; border:1px solid var(--line-2); background:var(--bg); border-radius:20px;
  padding:6px 26px 6px 12px; font-size:12px; font-weight:600; color:var(--ink-2); outline:none; cursor:pointer}
.efm-fsel select:focus{border-color:var(--blue)}
.efm-fsel .efm-ic{position:absolute; right:9px; width:12px; height:12px; pointer-events:none; color:var(--gray)}
.efm-res-meta{font-size:12px; color:var(--gray); padding:4px 0 12px}
.efm-res-meta b{color:var(--ink); font-weight:600}
.efm-empty{padding:56px 16px; text-align:center; color:var(--gray)}
.efm-empty .efm-ic{width:34px; height:34px; margin-bottom:10px; color:var(--line-2)}
.efm-empty b{display:block; font-size:14px; color:var(--ink); margin-bottom:4px}

/* ---------- footer ---------- */
footer.efm-ftr{
  margin-top:36px; background:#060e1f; color:#94a3b8;
  background-image:radial-gradient(ellipse 80% 40% at 50% 0%, rgba(29,78,216,.08) 0%, transparent 70%);
}

.efm-ftr-badges{border-bottom:1px solid rgba(255,255,255,.06); background:rgba(10,22,40,.6)}
.efm-ftr-badges ul{display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:8px 22px; list-style:none; margin:0; padding:12px 0}
.efm-ftr-badges li{display:flex; align-items:center; gap:6px; font-size:11.5px; font-weight:500; color:#64748b; white-space:nowrap}
.efm-ftr-badges li .efm-ic{width:13px; height:13px; color:#60a5fa; flex:none}

.efm-ftr-cta{border-bottom:1px solid rgba(255,255,255,.07)}
.efm-ftr-cta-grid{display:grid; gap:1px; background:rgba(255,255,255,.07)}
.efm-ftr-cta-col{display:flex; flex-direction:column; align-items:flex-start; gap:16px; padding:28px 0}
.efm-ftr-cta-col .efm-tag{margin:0; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.1em; color:#60a5fa}
.efm-ftr-cta-col .efm-tag.efm-pro{color:#818cf8}
.efm-ftr-cta-col .efm-head{margin:4px 0 0; font-size:16.5px; font-weight:700; color:#fff; letter-spacing:-.02em; line-height:1.3}
.efm-ftr-cta-col .efm-sub{margin:2px 0 0; font-size:12.5px; color:#475569}
.efm-ftr-btn{display:inline-flex; align-items:center; gap:8px; border-radius:4px; padding:10px 20px; font-size:13px; font-weight:600; white-space:nowrap}
.efm-ftr-btn.efm-primary{background:#1d4ed8; color:#fff}
.efm-ftr-btn.efm-primary:hover{background:#1e40af}
.efm-ftr-btn.efm-ghost{border:1px solid rgba(255,255,255,.18); background:rgba(255,255,255,.04); color:#cbd5e1}
.efm-ftr-btn.efm-ghost:hover{border-color:rgba(255,255,255,.3); color:#fff}
.efm-ftr-btn .efm-ic{width:15px; height:15px}

.efm-ftr-main{padding:44px 0}
.efm-ftr-grid{display:grid; gap:34px}

.efm-ftr-brand .efm-logo{display:flex; align-items:center; gap:9px; margin-bottom:14px}
.efm-ftr-brand .efm-logo span{font-size:17px; font-weight:800; letter-spacing:-.03em; color:#fff}
.efm-ftr-brand .efm-desc{max-width:34ch; font-size:12.5px; line-height:1.75; color:#94a3b8; margin:0}
.efm-ftr-apps{margin-top:18px}
.efm-ftr-apps .efm-lbl{margin:0 0 8px; font-size:10.5px; font-weight:700; text-transform:uppercase; letter-spacing:.1em; color:#475569}
.efm-app-btn{display:inline-flex; align-items:center; gap:8px; border:1px solid rgba(255,255,255,.12); background:rgba(255,255,255,.04); border-radius:4px; padding:8px 13px; font-size:11.5px; font-weight:600; color:#cbd5e1}
.efm-app-btn:hover{border-color:rgba(255,255,255,.25); color:#fff}
.efm-ftr-social{display:flex; gap:8px; margin-top:18px}
.efm-ftr-social a{width:30px; height:30px; border:1px solid rgba(255,255,255,.1); border-radius:4px; display:grid; place-items:center; color:#94a3b8}
.efm-ftr-social a:hover{background:#1d4ed8; border-color:#1d4ed8; color:#fff}
.efm-ftr-social .efm-ic{width:14px; height:14px}
.efm-ftr-brand .efm-tagline{margin:18px 0 0; font-size:11.5px; color:#334155}

.efm-ftr-h{margin:0 0 14px; font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:#60a5fa}
.efm-ftr-h.efm-pro{color:#818cf8}
.efm-ftr-col a{display:block; font-size:12.5px; color:#94a3b8; padding:5px 0}
.efm-ftr-col a:hover{color:#fff}

.efm-ftr-contact ul{list-style:none; margin:0; padding:0; display:grid; gap:14px}
.efm-ftr-contact li{display:flex; align-items:flex-start; gap:11px; font-size:12.5px; line-height:1.6; color:#94a3b8}
.efm-ftr-contact li .efm-ic{width:14px; height:14px; color:#60a5fa; margin-top:2px; flex:none}
.efm-ftr-contact a{color:#94a3b8}
.efm-ftr-contact a:hover{color:#fff}
.efm-ftr-contact .efm-strong{color:#fff}

.efm-ftr-main .efm-seo{margin-top:32px; padding-top:20px; border-top:1px solid rgba(255,255,255,.07)}
.efm-ftr-main .efm-seo b{font-size:11px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; color:#475569; display:block; margin-bottom:8px}
.efm-ftr-main .efm-seo p{margin:0; font-size:11.5px; color:#334155; line-height:2}
.efm-ftr-main .efm-seo p a{color:#334155}
.efm-ftr-main .efm-seo p a:hover{color:#60a5fa}

.efm-ftr-bottom{border-top:1px solid rgba(255,255,255,.07)}
.efm-ftr-bottom-row{display:flex; flex-direction:column; align-items:center; gap:10px; padding:20px 0; font-size:12px; color:#334155}
.efm-ftr-bottom-row p{margin:0}
.efm-ftr-bottom-row a{color:#475569}
.efm-ftr-bottom-row a:hover{color:#94a3b8}
.efm-ftr-bottom-row .efm-dot{color:#334155}

@media (min-width:641px){
  .efm-ftr-cta-grid{grid-template-columns:1fr 1fr}
  .efm-ftr-cta-col{flex-direction:row; align-items:center; justify-content:space-between; padding:36px 0}
  .efm-ftr-grid{grid-template-columns:1fr 1fr}
  .efm-ftr-brand{grid-column:1 / -1}
  .efm-ftr-bottom-row{flex-direction:row; justify-content:space-between}
}
@media (min-width:1000px){
  .efm-ftr-grid{grid-template-columns:2fr 1fr 1fr 1fr 1.1fr 1.3fr}
  .efm-ftr-brand{grid-column:auto}
}

/* ---------- cart ---------- */
.efm-cart{position:fixed; top:0; right:0; height:100dvh; width:min(392px,100%); z-index:70; background:var(--bg-2);
  border-left:1px solid var(--line-2); transform:translateX(100%); transition:transform .26s cubic-bezier(.3,.8,.3,1); display:flex; flex-direction:column}
.efm-cart.efm-on{transform:none}
.efm-c-head{background:var(--bg); height:52px; display:flex; align-items:center; gap:10px; padding:0 14px; border-bottom:1px solid var(--line)}
.efm-c-head b{font-size:14px; font-weight:700}
.efm-c-body{flex:1; overflow-y:auto; padding:10px 12px}
.efm-c-box{background:var(--bg); border:1px solid var(--line); border-radius:var(--r-lg); padding:12px; margin-bottom:10px}
.efm-c-box > b{display:block; font-size:12.5px; margin-bottom:10px}
.efm-c-item{display:flex; gap:10px; align-items:flex-start; padding:9px 0; border-bottom:1px solid var(--line)}
.efm-c-item:last-child{border-bottom:none; padding-bottom:0}
.efm-c-item .efm-th{width:42px; height:42px; border-radius:6px; display:grid; place-items:center; flex:none}
.efm-c-item .efm-th .efm-ic{width:19px; height:19px}
.efm-c-item .efm-nm{flex:1; min-width:0}
.efm-c-item .efm-nm b{display:block; font-size:12px; font-weight:600; line-height:1.3}
.efm-c-item .efm-vr{display:inline-flex; align-items:center; gap:4px; font-size:10.5px; font-weight:600; color:var(--blue); background:var(--blue-t); border-radius:5px; padding:2px 6px; margin-top:3px}
.efm-c-item .efm-vr .efm-ic{width:10px; height:10px}
.efm-c-item .efm-rt{display:flex; flex-direction:column; align-items:flex-end; gap:6px}
.efm-c-item .efm-step{height:26px; min-width:68px; font-size:11.5px}
.efm-c-item .efm-pp{font-size:12px; font-weight:700}
.efm-chips{display:flex; gap:6px; overflow-x:auto; scrollbar-width:none; padding-bottom:2px}
.efm-chips::-webkit-scrollbar{display:none}
.efm-chip{border:1px solid var(--line-2); background:var(--bg); border-radius:7px; padding:7px 10px; font-size:11.5px; font-weight:600; white-space:nowrap; text-align:center; line-height:1.25}
.efm-chip small{display:block; font-size:9.5px; font-weight:500; color:var(--gray)}
.efm-chip.efm-on{background:var(--blue); border-color:var(--blue); color:#fff}
.efm-chip.efm-on small{color:rgba(255,255,255,.8)}
.efm-chip:disabled{opacity:.4; text-decoration:line-through; cursor:not-allowed}
.efm-slot-grid{display:grid; grid-template-columns:1fr 1fr; gap:6px; margin-top:8px}
.efm-addr{display:flex; gap:9px; align-items:flex-start; font-size:12px; color:var(--ink-2)}
.efm-addr .efm-ic{width:15px; height:15px; color:var(--blue); margin-top:2px}
.efm-bill{display:grid; gap:7px; font-size:12px; color:var(--gray)}
.efm-bill div{display:flex; justify-content:space-between}
.efm-bill b{color:var(--ink); font-weight:600}
.efm-bill .efm-tot{border-top:1px dashed var(--line-2); padding-top:8px; font-size:13.5px}
.efm-bill .efm-tot b{font-size:15px; font-weight:700}
.efm-c-foot{background:var(--bg); border-top:1px solid var(--line); padding:10px 12px calc(10px + env(safe-area-inset-bottom))}
.efm-pay{display:flex; align-items:center; justify-content:space-between; background:var(--blue); color:#fff; border-radius:var(--r); width:100%; padding:12px 14px; font-weight:700; font-size:13.5px}
.efm-pay:hover{background:var(--blue-d)}
.efm-pay .efm-ic{width:16px; height:16px}
.efm-c-empty{text-align:center; padding:70px 16px; color:var(--gray)}
.efm-c-empty .efm-ic{width:38px; height:38px; color:var(--line-2); margin-bottom:12px}
.efm-done{text-align:center; padding:34px 14px}
.efm-done .efm-tick{width:62px; height:62px; margin:0 auto 16px; border-radius:50%; background:var(--green-t); display:grid; place-items:center}
.efm-done .efm-tick .efm-ic{width:28px; height:28px; color:var(--green); stroke-width:2.6}
.efm-done b{display:block; font-size:16px; margin-bottom:4px}
.efm-done p{margin:0 0 18px; font-size:12.5px; color:var(--gray)}

.efm-bar{position:fixed; left:12px; right:12px; bottom:calc(12px + env(safe-area-inset-bottom)); z-index:50;
  background:var(--blue); color:#fff; border-radius:var(--r-lg); padding:11px 14px; display:none;
  align-items:center; justify-content:space-between; font-weight:700; font-size:13px; box-shadow:0 6px 20px rgba(37,99,235,.35)}
.efm-bar small{display:block; font-size:10.5px; font-weight:500; opacity:.85}
.efm-bar.efm-on{display:flex}
.efm-toast{position:fixed; left:50%; bottom:80px; transform:translate(-50%,20px); opacity:0; pointer-events:none;
  background:#1C1C1C; color:#fff; font-size:12px; font-weight:500; padding:9px 16px; border-radius:20px; z-index:95; transition:.22s}
.efm-toast.efm-on{opacity:1; transform:translate(-50%,0)}

.efm-loc-banner{position:fixed; top:0; left:0; right:0; z-index:96; background:var(--blue); color:#fff;
  padding:10px 16px; display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:8px 14px;
  font-size:13px; font-weight:600; text-align:center; transform:translateY(-100%); transition:.25s; box-shadow:0 6px 20px rgba(37,99,235,.35)}
.efm-loc-banner.efm-on{transform:translateY(0)}
.efm-loc-btn{border:none; border-radius:999px; padding:6px 14px; font-size:12.5px; font-weight:700; cursor:pointer}
.efm-loc-allow{background:#fff; color:var(--blue)}
.efm-loc-skip{background:rgba(255,255,255,.18); color:#fff}

/* ---------- legal / policy pages ---------- */
.efm-legal-hero{padding:56px 0; border-bottom:1px solid var(--line)}
.efm-legal-tag{margin:0 0 10px; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.1em; color:var(--gray)}
.efm-legal-hero h1{margin:0; font-size:clamp(1.7rem,3.5vw,2.5rem); font-weight:800; letter-spacing:-.03em; color:var(--ink)}
.efm-legal-updated{margin-top:16px; display:flex; align-items:center; gap:6px; font-size:13px; color:var(--gray)}
.efm-legal-updated .efm-ic{width:14px; height:14px}
.efm-legal-grid{display:grid; gap:32px; padding:40px 0 56px}
.efm-legal-toc{display:none}
.efm-legal-toc-card{position:sticky; top:88px; border:1px solid var(--line-2); background:var(--bg); border-radius:var(--r-lg); padding:16px; box-shadow:0 1px 3px rgba(0,0,0,.04)}
.efm-legal-toc-h{margin:0 0 10px; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.1em; color:var(--gray-2)}
.efm-legal-toc-card nav{display:flex; flex-direction:column}
.efm-legal-toc-card nav a{display:block; padding:8px 10px; border-radius:8px; font-size:13px; font-weight:500; color:var(--ink-2); line-height:1.35}
.efm-legal-toc-card nav a:hover{background:var(--bg-2); color:var(--ink)}
.efm-legal-toc-help{margin-top:18px; padding-top:16px; border-top:1px solid var(--line)}
.efm-legal-toc-help a{display:block; font-size:13px; font-weight:600; color:var(--blue)}
.efm-legal-toc-help a:hover{text-decoration:underline}
.efm-legal-article{min-width:0}
.efm-legal-intro{padding-bottom:26px; border-bottom:1px solid var(--line)}
.efm-legal-intro p{margin:0; font-size:15px; line-height:1.7; color:var(--ink-2)}
.efm-legal-sections{padding:26px 0; display:flex; flex-direction:column; gap:28px}
.efm-legal-sec{scroll-margin-top:88px}
.efm-legal-sec h2{margin:0; font-size:1.05rem; font-weight:700; letter-spacing:-.01em; color:var(--ink)}
.efm-legal-sec p{margin:10px 0 0; font-size:15px; line-height:1.7; color:var(--ink-2)}
.efm-legal-sec ul{margin:10px 0 0; padding-left:20px; font-size:15px; line-height:1.7; color:var(--ink-2)}
.efm-legal-sec li{margin-bottom:5px}
.efm-legal-footer{padding-top:26px; border-top:1px solid var(--line); font-size:15px; line-height:1.7; color:var(--ink-2)}
.efm-legal-footer a{color:var(--blue); font-weight:600}
.efm-legal-footer a:hover{text-decoration:underline}
.efm-legal-see{margin-top:12px; font-size:13.5px; color:var(--gray)}
@media (min-width:1024px){
  .efm-legal-grid{grid-template-columns:240px minmax(0,1fr)}
  .efm-legal-toc{display:block}
}

/* ---------- FAQ page ---------- */
.efm-faq-hero{padding:64px 0 48px; text-align:center; border-bottom:1px solid var(--line)}
.efm-faq-hero h1{margin:0; font-size:clamp(1.6rem,4vw,2.2rem); font-weight:900; letter-spacing:-.02em; color:var(--ink)}
.efm-faq-hero .efm-legal-tag{text-align:center; color:var(--blue)}
.efm-faq-sub{max-width:560px; margin:14px auto 0; font-size:15px; line-height:1.6; color:var(--gray)}
.efm-faq-body{max-width:760px; padding:44px 16px 64px}
.efm-faq-cat{margin-bottom:38px}
.efm-faq-cat h2{margin:0 0 12px; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.1em; color:var(--blue)}
.efm-faq-list{border:1px solid var(--line-2); background:var(--bg); border-radius:16px; padding:0 20px}
.efm-faq-item{border-bottom:1px solid var(--line)}
.efm-faq-item:last-child{border-bottom:none}
.efm-faq-q{display:flex; align-items:flex-start; justify-content:space-between; gap:16px; width:100%; text-align:left; padding:18px 0}
.efm-faq-q span{font-size:14.5px; font-weight:600; line-height:1.4; color:var(--ink)}
.efm-faq-q .efm-ic{width:16px; height:16px; margin-top:2px; color:var(--blue); flex:none; transition:transform .2s}
.efm-faq-item.efm-on .efm-faq-q .efm-ic{transform:rotate(180deg)}
.efm-faq-a{display:none; padding:0 0 18px}
.efm-faq-item.efm-on .efm-faq-a{display:block}
.efm-faq-a p{margin:0; font-size:13.5px; line-height:1.7; color:var(--ink-2)}
.efm-faq-cta{margin-top:20px; text-align:center; border:1px solid var(--line-2); background:var(--bg); border-radius:16px; padding:32px 24px}
.efm-faq-cta .efm-ic{width:26px; height:26px; color:var(--blue); margin-bottom:6px}
.efm-faq-cta-title{margin:0; font-size:15px; font-weight:700; color:var(--ink)}
.efm-faq-cta-sub{margin:4px 0 0; font-size:12.5px; color:var(--gray)}
.efm-faq-cta-btns{margin-top:16px; display:flex; flex-wrap:wrap; justify-content:center; gap:10px}
.efm-faq-cta-primary{display:inline-flex; align-items:center; gap:8px; background:var(--blue); color:#fff; border-radius:8px; padding:10px 18px; font-size:13px; font-weight:600}
.efm-faq-cta-primary:hover{background:var(--blue-d)}
.efm-faq-cta-ghost{display:inline-flex; align-items:center; gap:8px; border:1px solid var(--line-2); color:var(--ink-2); border-radius:8px; padding:10px 18px; font-size:13px; font-weight:600}
.efm-faq-cta-ghost:hover{border-color:var(--blue); color:var(--blue)}

@media (max-width:900px){
  .efm-h-top{height:56px; gap:12px}
  .efm-search{display:none}
  .efm-h-search .efm-search{display:block; max-width:none}
  .efm-h-search{padding:0 0 10px}
  .efm-txt-btn,.efm-cart-btn,.efm-h-nav{display:none}
  .efm-eta-box b{font-size:14px}
  .efm-rail{grid-auto-columns:150px}
  .efm-grid{grid-template-columns:repeat(auto-fill,minmax(148px,1fr))}
  .efm-tile{width:82px} .efm-tile div{height:68px}
  .efm-cart{width:100%; top:auto; bottom:0; height:94dvh; border-radius:14px 14px 0 0; border-left:none; transform:translateY(100%)}
  .efm-cart.efm-on{transform:none}
  .efm-sheet{left:0; right:0; top:auto; bottom:0; width:100%; max-width:none; transform:translateY(100%);
    border-radius:14px 14px 0 0; border-left:none; border-right:none; border-bottom:none; max-height:88dvh}
  .efm-sheet.efm-on{transform:translateY(0)}
  footer.efm-ftr{padding-bottom:120px}
}
@media (min-width:901px){ .efm-h-search{display:none} .efm-bar{display:none !important} }
@media (prefers-reduced-motion:reduce){ *{transition-duration:.01ms !important} }
