.menu-subsection+.menu-subsection{margin-top:22px}.subsection-heading{font:600 18px/1.1 Fraunces,serif;letter-spacing:-.02em;margin:0 0 10px;color:var(--green)}
.item-art,.basket-art,.item-dialog-art{overflow:hidden}.item-art img,.basket-art img,.item-dialog-art img{width:100%;height:100%;object-fit:cover;display:block}.option-choice strong{margin-left:auto;margin-right:10px;font-size:13px;color:var(--muted)}.basket-name small{font:500 12px/1.2 Inter,sans-serif;color:var(--muted)}
.item-card.sold-out{opacity:.48;filter:grayscale(1);cursor:not-allowed}.item-card.sold-out .item-art{filter:grayscale(1)}.stock-label{font-size:12px;font-weight:700;color:#9b422c}.option-sold-out{opacity:.5;text-decoration:line-through}.option-sold-out input{cursor:not-allowed}
.featured-section{padding:16px;border-radius:18px;background:#f0f4eb;margin:-4px -4px 30px}.featured-section .category-heading{color:var(--green)}
.menu-nav-wrap{position:sticky;top:0;z-index:4;display:grid;grid-template-columns:minmax(0,1fr) 56px;align-items:center;margin:0 -20px 22px;padding:12px 20px 11px;background:var(--cream);border-bottom:1px solid var(--line);box-shadow:0 8px 14px -16px rgba(32,39,31,.7)}.category-nav{margin:0!important;padding:0 10px 0 0!important}.menu-picker-button{border:0;background:transparent;color:var(--ink);width:48px;height:38px;font:700 25px/1 "DM Sans";cursor:pointer}.category-picker{max-height:75dvh;padding-bottom:max(20px,env(safe-area-inset-bottom));overflow:auto}.category-picker-list{display:grid;gap:4px;margin-top:16px}.category-picker-list button{border:0;border-radius:10px;background:transparent;padding:13px 0;text-align:left;color:var(--muted);font:400 18px "DM Sans";display:flex;justify-content:space-between;align-items:center}.category-picker-list button span{display:none}.category-picker-list button.active{color:var(--ink);font-weight:700}.category-picker-list button.active::after{content:'✓';color:var(--green);font-weight:700}
@media(min-width:600px){.menu-nav-wrap{margin-left:-28px;margin-right:-28px;padding-left:28px;padding-right:28px}}
#menu>section{scroll-margin-top:76px}
.item-dialog-art{height:auto;aspect-ratio:1/1;background:#f4eee8}.item-dialog-art img{object-fit:cover;background:#f4eee8}.checkout:disabled{opacity:.46;cursor:not-allowed}.option-price{font:600 12px/1 "DM Sans";color:var(--ink);white-space:nowrap}
.option-heading>span{display:grid;gap:3px}.option-heading small{font:400 12px/1.2 "DM Sans";color:var(--muted)}.required-badge{align-self:start;border-radius:999px;background:#f0f0ee;color:#525652;padding:4px 8px;font:700 12px/1 "DM Sans"}.required-badge.is-complete{background:#e7f5e9;color:#25733a}

/* Item choices scroll independently; the order action stays in the same easy-to-reach place. */
#itemDialog{display:flex;flex-direction:column;overflow:hidden}
#itemDialog .close{position:absolute;z-index:2;top:17px;left:21px;margin:0;display:grid;place-items:center;padding:0;background:#f0eee6;font-size:26px;line-height:1;outline:0!important;-webkit-tap-highlight-color:transparent}
#itemDialog .close:focus,#itemDialog .close:focus-visible{outline:0!important;box-shadow:none!important}
#itemDialog #itemContent{flex:1;min-height:0;overflow:auto;margin:0 20px;padding:28px 0 14px;overscroll-behavior:contain}
#itemDialog .sheet-add{flex:0 0 auto;width:calc(100% - 40px);margin:12px 20px calc(16px + env(safe-area-inset-bottom))!important;box-shadow:0 -10px 20px rgba(255,253,248,.88)}

/* A compact food-first hero leaves room for choices above the fixed order action. */
#itemDialog .item-dialog-art{aspect-ratio:16/9}
#itemDialog .item-dialog-art img{object-fit:contain!important;object-position:center;background:#f3ded6}

.menu-search{display:flex;align-items:center;gap:9px;height:48px;margin:0 0 16px;padding:0 14px;border:1px solid var(--line);border-radius:14px;background:var(--paper);color:var(--muted);font-size:24px}.menu-search input{min-width:0;width:100%;border:0;outline:0;background:transparent;color:var(--ink);font:500 14px "DM Sans"}.menu-search input::placeholder{color:#8a9187}.menu-empty{padding:42px 16px;text-align:center;color:var(--muted);font-size:15px}

.menu-tools{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px}.menu-tools .menu-search{margin-bottom:16px}.dietary-filter-button{height:48px;border:1px solid var(--line);border-radius:14px;margin:0;background:var(--paper);color:var(--ink);padding:0 14px;font:700 13px "DM Sans";cursor:pointer}.dietary-tags{display:flex;flex-wrap:wrap;gap:4px;margin:-2px 0 9px}.dietary-tag{border-radius:999px;background:#edf3e8;color:var(--green);padding:3px 6px;font:700 10px/1 "DM Sans"}.dietary-filter{padding-bottom:max(20px,env(safe-area-inset-bottom));max-height:78dvh;overflow:auto}.dietary-filter-copy{margin:13px 20px 10px;color:var(--muted);font-size:13px;line-height:1.4}.dietary-filter-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:18px;margin:0 20px 16px;border-top:1px solid var(--line)}.dietary-filter-list label{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:14px 2px;border-bottom:1px solid var(--line);font:600 15px "DM Sans"}.dietary-filter-list input{width:19px;height:19px;accent-color:var(--green)}.dietary-clear{margin:0 20px;border:0;background:transparent;color:var(--green);font:700 14px "DM Sans";cursor:pointer}

/* Dietary details inform filtering; keep browse cards calm and reserve tags for item safety details. */
.item-card .dietary-tags{display:none}
.card-allergens{display:flex;flex-wrap:wrap;gap:4px;margin:-2px 0 9px}.card-allergens span{border-radius:999px;background:#f8eee9;color:#8a3c2d;padding:3px 6px;font:700 10px/1 "DM Sans"}
.item-allergens{display:grid;gap:7px;margin:0 0 16px;padding:12px;border-radius:12px;background:#f8eee9;color:var(--ink);font:600 13px "DM Sans"}.item-allergens>span{color:var(--muted);font:400 12px "DM Sans"}.allergen-tags{display:flex;flex-wrap:wrap;gap:5px}.allergen-tags b{border-radius:999px;background:#fff;color:#8a3c2d;padding:5px 8px;font:700 11px/1 "DM Sans"}
.filter-subheading{margin:22px 20px 0;font:700 19px Fraunces,serif;letter-spacing:-.02em}.allergy-welcome{max-width:520px;border-radius:24px;margin:auto;padding:30px 20px max(24px,env(safe-area-inset-bottom));text-align:center}.allergy-welcome-inner h2{font-size:31px;margin:9px 0}.allergy-welcome-inner>p:not(.eyebrow){max-width:330px;margin:0 auto 22px;color:var(--muted);font-size:14px;line-height:1.45}.allergy-welcome-actions{display:grid;gap:10px}.allergy-welcome .checkout{justify-content:center}.allergy-no{border:0;background:transparent;color:var(--green);padding:10px;font:700 14px "DM Sans";cursor:pointer}
.filter-columns{display:grid}.filter-group .filter-subheading{margin-top:18px}.filter-group .dietary-filter-copy{margin-top:8px}.filter-group .dietary-filter-list{grid-template-columns:1fr}@media(min-width:600px){.filter-columns{grid-template-columns:1fr 1fr;gap:22px;margin:0 20px}.filter-group .filter-subheading,.filter-group .dietary-filter-copy,.filter-group .dietary-filter-list{margin-left:0;margin-right:0}.filter-group .filter-subheading{margin-top:18px}}
.dietary-filter{max-height:none;overflow:visible}.filter-header-actions{display:flex;align-items:center;gap:8px}.filter-clear{border:0;background:transparent;color:var(--green);padding:8px;font:700 13px "DM Sans";cursor:pointer}.filter-group .filter-subheading{font-size:18px}.filter-group .dietary-filter-copy{font-size:12px;min-height:34px}.filter-group .dietary-filter-list label{padding:8px 2px;font-size:14px}.filter-group .dietary-filter-list input{width:17px;height:17px}.filter-done{width:calc(100% - 40px);margin:14px 20px 20px}
#dietaryFilterDialog{height:fit-content!important;max-height:calc(100dvh - 32px)!important;margin:auto auto 0!important}

/* Filter hub follows the simple drill-in pattern: choose a filter type, then choose its values. */
#dietaryFilterDialog{width:min(520px,100%);padding:0;overflow:hidden}.filter-hub-header{position:relative;display:grid;grid-template-columns:92px 1fr 92px;align-items:center;min-height:78px;padding:0 20px;border-bottom:1px solid var(--line)}.filter-hub-header h2{grid-column:2;text-align:center;font-size:28px}.filter-hub-header .filter-clear{justify-self:end;grid-column:3;grid-row:1;border-radius:999px;background:var(--green);color:#fff;padding:10px 16px}.filter-back,.filter-close{grid-column:1;grid-row:1;justify-self:start;border:0;background:transparent;color:var(--green);padding:9px 0;font:700 14px "DM Sans";cursor:pointer}.filter-hub-list{padding:0 20px}.filter-hub-row{width:100%;display:flex;align-items:center;justify-content:space-between;padding:18px 0;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--ink);text-align:left;cursor:pointer}.filter-hub-row span{display:grid;gap:4px}.filter-hub-row b{font:600 18px Fraunces,serif}.filter-hub-row small{font:600 12px "DM Sans";color:var(--muted)}.filter-hub-row i{font:400 34px/1 "DM Sans";font-style:normal;color:var(--green)}.filter-detail-copy{margin:16px 20px 8px;color:var(--muted);font-size:13px;line-height:1.4}.filter-option-list{margin:0 20px}.filter-option-list label{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 2px;border-bottom:1px solid var(--line);font:600 15px "DM Sans"}.filter-option-list input{width:19px;height:19px;accent-color:var(--green)}
#dietaryFilterDialog .filter-done{position:sticky;bottom:0;width:calc(100% - 40px);margin:22px 20px 20px;padding:16px 18px;border-radius:999px;justify-content:center;box-shadow:0 -8px 20px rgba(255,253,248,.9)}

/* Keep every way to find an item reachable while a customer reads the menu. */
.menu-controls{position:sticky;top:0;z-index:5;margin:0 -20px 22px;padding:10px 20px 11px;background:var(--cream);border-bottom:1px solid var(--line);box-shadow:0 8px 14px -16px rgba(32,39,31,.7)}.menu-controls .menu-search{margin-bottom:8px}.menu-controls .menu-nav-wrap{position:static;margin:0;padding:0;background:transparent;border:0;box-shadow:none}#menu>section{scroll-margin-top:142px}@media(min-width:600px){.menu-controls{margin-left:-28px;margin-right:-28px;padding-left:28px;padding-right:28px}}

/* SPEDALIS Club keeps a customer's account and rewards one tap away. */
.topbar-actions{display:flex;align-items:center;gap:9px}.club-button{border:1px solid var(--line);border-radius:999px;background:#f1f5ee;color:var(--green);padding:8px 10px;font:700 11px "DM Sans";cursor:pointer}.club-sheet{width:min(520px,100%);padding:28px 20px max(24px,env(safe-area-inset-bottom));border-radius:25px 25px 0 0}.club-close{position:absolute;top:17px;right:20px}.club-heading{padding-right:42px}.club-heading h2{font-size:33px}.club-heading>p:not(.eyebrow){margin:8px 0 20px;color:var(--muted);font-size:14px;line-height:1.45}.club-form{display:grid;gap:10px}.club-form label{display:grid;gap:6px;font:700 13px "DM Sans"}.club-form input{width:100%;border:1px solid var(--line);border-radius:11px;padding:13px;background:#fff;font:14px "DM Sans"}.club-form .checkout{margin-top:6px}.club-switch{border:0;background:transparent;color:var(--green);padding:8px 0 0;font:700 13px "DM Sans";cursor:pointer}.club-error{margin:0 0 12px;padding:10px 11px;border-radius:10px;background:#f8e4dc;color:#8f351d;font-size:13px}.club-card{margin:20px 0 14px;padding:17px;border-radius:17px;background:var(--green);color:#fff}.club-card p{margin:0;color:#dfe8db;font-size:13px}.club-points{display:flex;align-items:end;justify-content:space-between;margin:10px 0 3px}.club-points strong{font:700 42px/1 Fraunces,serif}.club-points span{font-size:13px}.club-progress{height:7px;border-radius:999px;background:#ffffff33;overflow:hidden}.club-progress span{display:block;height:100%;background:#f4d0a7;border-radius:inherit}.wallet-card{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:15px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.wallet-card h3{font-size:19px}.wallet-card p{margin:4px 0 0;color:var(--muted);font-size:12px;line-height:1.35}.wallet-card strong{font-size:20px}.wallet-note{margin:14px 0 0;color:var(--muted);font-size:12px;line-height:1.45}.club-logout{display:block;margin:17px auto 0;border:0;background:transparent;color:var(--green);font:700 13px "DM Sans";cursor:pointer}
