/*
Theme Name: Crave Local
Theme URI: https://cravelocal.live/
Author: AI Leverage / Crave Local
Description: Lightweight, mobile-first app-style WordPress theme for local discovery, events, dining and personalised itineraries.
Version: 0.2.5
Requires at least: 6.4
Requires PHP: 8.0
Text Domain: crave-local
*/

:root{
  --crave-bg:#f5f8f5;--crave-surface:#fff;--crave-ink:#17211d;--crave-muted:#66766f;--crave-gold:#ffb52e;--crave-gold-soft:#fff2c9;--crave-coral:#ff5a4f;--crave-green:#1f7a5a;--crave-green-soft:#e8f6ef;--crave-berry:#c8446d;--crave-line:#dfe8e2;--crave-danger:#a64232;--crave-radius:22px;--crave-shadow:0 12px 38px rgba(20,58,45,.09);--crave-max:1180px;--crave-bottom-h:88px;--crave-vh:100dvh;--crave-safe-bottom:0px
}
*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--crave-bg);min-height:100%;min-height:-webkit-fill-available}body{margin:0;min-height:100vh;min-height:100dvh;min-height:-webkit-fill-available;background:var(--crave-bg);color:var(--crave-ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.5;overscroll-behavior-y:none}body.crave-app-shell{padding-bottom:0}.crave-page-frame{min-height:var(--crave-vh,100dvh);min-height:100dvh;background:var(--crave-bg);padding-bottom:calc(var(--crave-bottom-h) + var(--crave-safe-bottom))}a{color:inherit}img{max-width:100%;height:auto;display:block}button,input{font:inherit}button{cursor:pointer}.screen-reader-text,.crave-skip{position:absolute;left:-9999px}.crave-skip:focus{left:12px;top:12px;z-index:9999;background:#fff;padding:10px 14px;border-radius:10px;box-shadow:var(--crave-shadow)}
.crave-shell{width:min(100%,var(--crave-max));margin:0 auto;padding:0 16px 34px}.crave-topbar{position:sticky;top:0;z-index:50;background:rgba(245,248,245,.94);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-bottom:1px solid rgba(223,232,226,.9)}.admin-bar .crave-topbar{top:46px}.crave-topbar-inner{width:min(100%,var(--crave-max));margin:0 auto;display:flex;align-items:center;gap:16px;padding:11px 16px}.crave-brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:950;letter-spacing:-.04em;font-size:1.18rem;white-space:nowrap}.crave-brand-logo{display:block;max-height:42px;width:auto}.crave-wordmark>span{color:var(--crave-coral);margin-left:2px}.crave-mark{width:42px;height:42px;border-radius:14px;background:linear-gradient(145deg,var(--crave-coral),#ff8659);color:#fff;display:grid;place-items:center;position:relative;font-size:1.08rem;font-weight:950;box-shadow:0 7px 18px rgba(255,90,79,.22)}.crave-mark i{position:absolute;width:9px;height:9px;border-radius:50%;background:var(--crave-green);right:5px;top:5px;border:2px solid #fff}.crave-desktop-nav{display:none;align-items:center;gap:5px;margin-left:12px}.crave-desktop-nav a{padding:9px 10px;border-radius:999px;text-decoration:none;font-size:.84rem;font-weight:850;color:#354940}.crave-desktop-nav a:hover,.crave-desktop-nav a:focus-visible{background:var(--crave-green-soft);color:var(--crave-green)}.crave-location-btn{margin-left:auto;border:1px solid var(--crave-line);background:#fff;border-radius:999px;padding:10px 13px;font-weight:850;max-width:42vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;box-shadow:0 3px 12px rgba(20,58,45,.05)}
.crave-hero{padding:28px 0 8px}.crave-eyebrow{font-size:.78rem;text-transform:uppercase;letter-spacing:.13em;color:var(--crave-muted);font-weight:850;margin:0 0 7px}.crave-hero h1{font-size:clamp(2rem,8vw,4.2rem);line-height:.98;letter-spacing:-.055em;margin:0;max-width:900px}.crave-hero p{font-size:clamp(1rem,3vw,1.25rem);color:var(--crave-muted);margin:12px 0 0;max-width:700px}.crave-search{display:flex;align-items:center;gap:8px;margin-top:22px;background:#fff;border:1px solid var(--crave-line);border-radius:22px;padding:8px 8px 8px 16px;box-shadow:var(--crave-shadow)}.crave-search:focus-within{outline:3px solid rgba(233,169,0,.18);border-color:#e7be53}.crave-search input{border:0;outline:0;background:transparent;width:100%;min-width:0;font-size:1rem}.crave-search button{border:0;background:var(--crave-ink);color:#fff;border-radius:16px;min-width:50px;height:50px;font-size:1.15rem}.crave-search-status{margin-top:10px;font-size:.85rem;color:var(--crave-muted)}
.crave-quick{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:18px 0 8px}.crave-tile{min-height:100px;border:0;border-radius:22px;padding:15px;text-decoration:none;background:var(--crave-surface);box-shadow:0 5px 18px rgba(40,29,16,.06);display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;text-align:left;transition:transform .18s ease,box-shadow .18s ease,outline-color .18s ease;overflow:hidden;position:relative}.crave-tile:nth-child(n+9){display:none}.crave-quick.show-all .crave-tile{display:flex}.crave-tile:hover,.crave-tile:focus-visible{transform:translateY(-2px);box-shadow:var(--crave-shadow)}.crave-tile.is-active{outline:3px solid rgba(233,169,0,.28);background:#fffdf7}.crave-tile-icon{font-size:1.35rem}.crave-tile strong{font-size:.99rem;line-height:1.15}.crave-tile span:last-child{font-size:.78rem;color:var(--crave-muted)}.crave-more-tiles{border:0;background:transparent;color:var(--crave-muted);font-weight:800;padding:8px 2px}
.crave-section{margin-top:32px}.crave-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:12px}.crave-section h2{font-size:1.4rem;letter-spacing:-.035em;margin:0}.crave-section-sub{font-size:.88rem;color:var(--crave-muted);margin:3px 0 0}.crave-link-btn,.crave-soft-btn{border:0;background:transparent;color:var(--crave-ink);font-weight:850;text-decoration:none;font-size:.88rem;white-space:nowrap}.crave-soft-btn{background:var(--crave-gold-soft);padding:10px 13px;border-radius:999px}.crave-scroller{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(82vw,345px);gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;padding:2px 1px 14px;scrollbar-width:none}.crave-scroller::-webkit-scrollbar{display:none}
.crave-card{scroll-snap-align:start;background:#fff;border:1px solid var(--crave-line);border-radius:var(--crave-radius);overflow:hidden;box-shadow:0 6px 22px rgba(40,29,16,.06);position:relative}.crave-card-media{display:block;aspect-ratio:16/9;background:linear-gradient(145deg,#dff3e8,#ffd8cf);overflow:hidden}.crave-card-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-decoration:none;color:#214b3c;background:linear-gradient(145deg,#eaf8f1,#fff0eb)}.crave-card-placeholder--cafe{background:linear-gradient(145deg,#e8f5ef,#f7eadc)}.crave-card-placeholder--bakery{background:linear-gradient(145deg,#fff0d8,#ffe4d7)}.crave-card-placeholder--takeaway{background:linear-gradient(145deg,#ffe8e1,#eef8ee)}.crave-card-placeholder--catering{background:linear-gradient(145deg,#e8f3ff,#f2eaff)}.crave-card-placeholder--deli{background:linear-gradient(145deg,#f1f6df,#fff0d8)}.crave-placeholder-icon{font-size:2.3rem;line-height:1}.crave-placeholder-label{font-size:.78rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase;opacity:.78}.crave-card-media img{width:100%;height:100%;object-fit:cover}.crave-card-body{padding:14px}.crave-card-kicker{display:flex;flex-wrap:wrap;gap:6px;font-size:.72rem;font-weight:850;color:var(--crave-muted);text-transform:uppercase;letter-spacing:.055em}.crave-card-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}.crave-badge{display:inline-flex;align-items:center;border-radius:999px;padding:5px 8px;background:var(--crave-gold-soft);color:#775300;font-size:.69rem;font-weight:900}.crave-badge.free{background:#e6f7ea;color:#246331}.crave-card h3{font-size:1.12rem;line-height:1.15;letter-spacing:-.025em;margin:8px 0 6px}.crave-card h3 a{text-decoration:none}.crave-card p{margin:0;color:var(--crave-muted);font-size:.89rem}.crave-card-actions{display:flex;gap:8px;margin-top:12px;align-items:center;flex-wrap:wrap}.crave-primary,.crave-secondary{border:0;border-radius:13px;padding:10px 12px;font-weight:850;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:6px}.crave-primary{background:var(--crave-ink);color:#fff}.crave-secondary{background:#f7f1e9;color:var(--crave-ink)}.crave-favourite{margin-left:auto;width:42px;height:42px;border-radius:50%;border:1px solid var(--crave-line);background:#fff;font-size:1.05rem}.crave-favourite.is-saved{color:#c82749;background:#fff4f6}.crave-placeholder{border:1px dashed #d7c8b5;border-radius:18px;padding:18px;color:var(--crave-muted);background:rgba(255,255,255,.52);min-height:72px}.crave-placeholder.is-error{border-color:#e4b9b1;background:#fff8f6}.crave-placeholder button{margin-top:10px}.crave-partner-ribbon{position:absolute;top:12px;left:12px;z-index:3;background:#17130e;color:#fff;border-radius:999px;padding:6px 9px;font-size:.7rem;font-weight:900;box-shadow:0 4px 12px rgba(0,0,0,.14)}
.crave-bottom-nav{position:fixed;left:0;right:0;bottom:0;width:100%;z-index:80;background:rgba(255,255,255,.97);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-top:1px solid var(--crave-line);padding:7px 8px max(8px,var(--crave-safe-bottom));display:grid;grid-template-columns:repeat(5,1fr);align-items:end;box-shadow:0 -12px 30px rgba(40,29,16,.08);transform:translateZ(0)}.crave-bottom-nav button,.crave-bottom-nav a{border:0;background:transparent;color:#244b48;text-decoration:none;text-align:center;padding:7px 2px;border-radius:15px;font-size:.69rem;font-weight:800;position:relative;min-width:0}.crave-bottom-nav .icon{display:block;font-size:1.2rem;line-height:1.2;margin-bottom:2px}.crave-bottom-nav .crave-nav-concierge{background:var(--crave-coral);color:#fff;border-radius:20px;margin-top:-24px;padding:13px 4px 10px;box-shadow:0 11px 24px rgba(255,92,77,.28);min-height:72px}.crave-bottom-nav .crave-nav-concierge .icon{font-size:1.45rem}.crave-plan-count{position:absolute;top:1px;right:20%;min-width:18px;height:18px;padding:0 4px;border-radius:999px;background:var(--crave-gold);color:#111;font-size:.65rem;display:grid;place-items:center;font-weight:900}
.dialog-lock{overflow:hidden}dialog.crave-dialog{border:0;border-radius:24px;width:min(92vw,520px);max-height:min(82dvh,680px);padding:0;box-shadow:0 30px 80px rgba(0,0,0,.35);background:#fff;color:var(--crave-ink)}dialog.crave-dialog::backdrop{background:rgba(16,12,8,.62);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.crave-dialog-inner{padding:20px}.crave-dialog h2{margin:0 0 6px;letter-spacing:-.035em}.crave-dialog p{color:var(--crave-muted);margin:0 0 14px}.crave-dialog input{width:100%;padding:13px 14px;border:1px solid var(--crave-line);border-radius:14px;outline:none}.crave-dialog-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:14px;flex-wrap:wrap}.crave-interest-grid{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.crave-chip{border:1px solid var(--crave-line);background:#fff;border-radius:999px;padding:9px 12px;font-weight:750}.crave-chip[aria-pressed="true"]{background:var(--crave-ink);color:#fff;border-color:var(--crave-ink)}.crave-plan-list{display:grid;gap:10px;max-height:50dvh;overflow:auto}.crave-plan-item{display:grid;grid-template-columns:1fr auto;gap:8px;border:1px solid var(--crave-line);border-radius:16px;padding:12px}.crave-plan-item strong{display:block}.crave-plan-item small{color:var(--crave-muted)}
.crave-article{width:min(100%,820px);margin:0 auto;padding:30px 16px 34px}.crave-article h1{font-size:clamp(2rem,8vw,3.8rem);letter-spacing:-.05em;line-height:1;margin:.2em 0}.crave-article .entry-content{font-size:1.05rem}.crave-article .entry-content p{margin:1em 0}.crave-meta{color:var(--crave-muted);font-size:.9rem}.crave-feature{margin:18px 0;border-radius:24px;overflow:hidden}.crave-feature img{width:100%;max-height:520px;object-fit:cover}.crave-grid{display:grid;grid-template-columns:1fr;gap:14px}.crave-loading{opacity:.65;pointer-events:none}.crave-toast{position:fixed;left:50%;bottom:calc(var(--crave-bottom-h) + var(--crave-safe-bottom) + 12px);transform:translateX(-50%) translateY(16px);background:#17130e;color:#fff;padding:10px 14px;border-radius:999px;z-index:100;opacity:0;transition:.2s ease;pointer-events:none;font-weight:750;font-size:.86rem;max-width:calc(100vw - 24px);text-align:center}.crave-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

.crave-location-field{position:relative}.crave-location-field input{padding-right:42px}.crave-location-spinner{position:absolute;right:14px;top:15px;width:18px;height:18px;border:2px solid #e6ded2;border-top-color:var(--crave-gold);border-radius:50%;animation:crave-spin .7s linear infinite}.crave-location-suggestions{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:120;background:#fff;border:1px solid var(--crave-line);border-radius:16px;box-shadow:0 18px 42px rgba(40,29,16,.16);overflow:auto;max-height:260px;padding:6px}.crave-location-suggestions[hidden]{display:none}.crave-location-option{width:100%;border:0;background:#fff;text-align:left;border-radius:12px;padding:11px 12px;display:grid;gap:2px}.crave-location-option:hover,.crave-location-option:focus-visible,.crave-location-option.is-active{background:#fff7df;outline:none}.crave-location-option strong{font-size:.95rem}.crave-location-option small{color:var(--crave-muted);font-size:.78rem}.crave-location-help{display:block;margin-top:8px;color:var(--crave-muted);font-size:.78rem}.crave-location-help.is-error{color:var(--crave-danger)}@keyframes crave-spin{to{transform:rotate(360deg)}}
@media(min-width:700px){.admin-bar .crave-topbar{top:32px}.crave-shell{padding-left:24px;padding-right:24px}.crave-quick{grid-template-columns:repeat(4,1fr)}.crave-tile:nth-child(n){display:flex}.crave-more-tiles{display:none!important}.crave-scroller{grid-auto-columns:minmax(320px,33vw)}.crave-grid{grid-template-columns:repeat(2,1fr)}.crave-bottom-nav{left:50%;right:auto;bottom:12px;transform:translateX(-50%);width:min(calc(100% - 24px),560px);border:1px solid var(--crave-line);border-radius:24px;padding:7px;box-shadow:0 18px 45px rgba(0,0,0,.16)}.crave-page-frame{padding-bottom:112px}.crave-toast{bottom:108px}}
@media(min-width:900px){.crave-desktop-nav{display:flex}.crave-location-btn{max-width:220px}}@media(min-width:1000px){.crave-quick{grid-template-columns:repeat(6,1fr)}.crave-scroller{grid-auto-columns:minmax(320px,31vw)}.crave-grid{grid-template-columns:repeat(3,1fr)}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}


/* v0.2.3 Android/DuckDuckGo bottom-bar hardening. Keep the app bar compact even if a browser reports an exaggerated safe area. */
@media(max-width:699px){
  html,body{min-height:100%;}
  .crave-page-frame{min-height:100%;padding-bottom:96px!important;}
  .crave-bottom-nav{
    bottom:0!important;
    height:88px!important;
    min-height:88px!important;
    max-height:88px!important;
    padding:7px 8px 8px!important;
    margin:0!important;
    align-items:end!important;
    overflow:visible!important;
  }
  .crave-bottom-nav button,.crave-bottom-nav a{margin:0!important;min-height:52px!important;max-height:72px!important;}
  .crave-bottom-nav .crave-nav-concierge{min-height:72px!important;max-height:72px!important;}
  .crave-toast{bottom:100px!important;}
}


.crave-profile-section,.crave-catering-panel,.crave-opportunity-card{margin:28px 0;padding:22px;border:1px solid var(--crave-line);border-radius:24px;background:#fff;box-shadow:0 8px 26px rgba(40,29,16,.06)}
.crave-profile-section h2,.crave-catering-panel h2{margin:.1em 0 .45em;letter-spacing:-.035em}
.crave-schedule-list{display:grid;gap:9px;margin-top:14px}.crave-schedule-item{display:grid;grid-template-columns:minmax(130px,auto) 1fr;gap:14px;align-items:center;padding:12px 0;border-bottom:1px solid var(--crave-line)}.crave-schedule-item:last-child{border-bottom:0}.crave-schedule-item strong,.crave-schedule-item span{display:block}.crave-schedule-item span{font-size:.84rem;color:var(--crave-muted)}
.crave-source-note,.crave-form-note{font-size:.82rem;color:var(--crave-muted)}
.crave-catering-panel{background:linear-gradient(145deg,#fff0eb,#eaf8f1);border-color:#f5cfc4}.crave-catering-panel .crave-primary{margin-top:6px;background:var(--crave-coral);box-shadow:0 8px 22px rgba(255,90,79,.22)}
.crave-catering-dialog{width:min(94vw,760px)!important;border-top:7px solid var(--crave-coral)!important}.crave-catering-dialog .crave-primary{background:var(--crave-coral)}.crave-dialog-x{float:right;border:0;background:#f4eee6;border-radius:50%;width:38px;height:38px;font-size:1.35rem}.crave-form-grid{display:grid;grid-template-columns:1fr;gap:12px;margin:18px 0}.crave-form-grid label{display:grid;gap:5px;font-weight:800}.crave-form-grid label span{font-size:.83rem}.crave-form-grid input,.crave-form-grid select,.crave-form-grid textarea{width:100%;padding:12px 13px;border:1px solid var(--crave-line);border-radius:13px;background:#fff;color:var(--crave-ink);font:inherit}.crave-honeypot{position:absolute!important;left:-9999px!important}.crave-catering-status{font-weight:800;margin-top:10px}
.crave-lead-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:18px 0}.crave-lead-facts>div{padding:12px;border-radius:15px;background:#faf5ed}.crave-lead-facts small,.crave-lead-facts strong{display:block}.crave-lead-facts small{color:var(--crave-muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.05em}.crave-lead-lock{padding:14px;border-radius:15px;background:#fff4d5;font-weight:800}.crave-lead-buy{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.crave-lead-checkout-status{width:100%;color:var(--crave-muted);font-size:.86rem}.crave-unlocked{padding:18px;border-radius:18px;background:#eaf8ed;border:1px solid #c7e8ce}.crave-owner-upgrades{margin:32px 0;padding:24px;border-radius:24px;background:linear-gradient(145deg,#eaf8f1,#fff0eb);border:1px solid #d7e8df}.crave-upgrade-grid{display:grid;grid-template-columns:1fr;gap:12px}.crave-upgrade-grid article{background:#fff;border:1px solid var(--crave-line);border-radius:18px;padding:16px}.crave-upgrade-grid h3{margin:0 0 5px}.crave-upgrade-grid p{margin:0 0 12px}.crave-upgrade-grid div{display:flex;gap:7px;flex-wrap:wrap}.crave-upgrade-status{font-weight:800;color:var(--crave-green);margin-top:12px}@media(min-width:800px){.crave-upgrade-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:700px){.crave-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.crave-form-wide{grid-column:1/-1}}
