/**
 * LetsEatOut.ai — Shared Styles
 * Used by all city directory pages
 */

:root {
  --red:#C41E3A;--red-dark:#9E1830;--red-light:#F9E8EC;
  --gold:#C8973E;--gold-light:#F7F0E3;
  --dark:#1A1A1A;--text:#1A1A1A;--text-mid:#333;--text-light:#555;
  --cream:#FFFBF5;--white:#FFFFFF;
  --border:#E8E0D8;--border-light:#F0EBE5;
  --shadow-s:0 1px 3px rgba(0,0,0,.06);
  --shadow-m:0 4px 16px rgba(0,0,0,.08);
  --shadow-l:0 8px 32px rgba(0,0,0,.12);
  --r:8px;--r-lg:12px;--hdr-h:61px;
}
*{margin:0;padding:0;box-sizing:border-box;}
body{font-family:'Plus Jakarta Sans',sans-serif;color:var(--text);background:var(--cream);-webkit-font-smoothing:antialiased;overflow-x:hidden;}
.container{width:100%;padding:0 16px;}
.skip-nav{position:absolute;left:-9999px;}
.skip-nav:focus{position:fixed;top:0;left:0;padding:10px 18px;background:var(--red);color:white;font-size:14px;font-weight:700;z-index:9999;}

/* TOP BAR */
.top-bar{background:var(--dark);color:white;padding:6px 0;font-size:11px;}
.top-bar .container{display:flex;justify-content:center;align-items:center;gap:8px;}
.top-bar-text{display:none;}
.market-pills{display:flex;gap:3px;background:rgba(255,255,255,.08);padding:3px;border-radius:20px;overflow-x:auto;scrollbar-width:none;}
.market-pills::-webkit-scrollbar{display:none;}
.market-pill{padding:4px 12px;border:none;background:transparent;font-family:'Plus Jakarta Sans',sans-serif;font-size:11px;font-weight:600;color:rgba(255,255,255,.5);border-radius:16px;cursor:pointer;transition:all .2s;white-space:nowrap;}
.market-pill.active{background:var(--red);color:white;}
.market-pill:not(.active):hover{color:white;}

/* HEADER */
header{background:var(--white);border-bottom:3px solid var(--red);position:sticky;top:0;z-index:100;box-shadow:var(--shadow-m);}
.header-inner{display:flex;align-items:center;justify-content:space-between;padding:10px 0;gap:10px;}
.logo{display:flex;align-items:center;gap:9px;text-decoration:none;}
.logo-mark{width:38px;height:38px;background:var(--red);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0;box-shadow:0 2px 8px rgba(196,30,58,.3);}
.logo-text-wrap{display:flex;flex-direction:column;}
.logo-text{font-family:'DM Serif Display',serif;font-size:21px;color:var(--dark);line-height:1;}
.logo-text span{color:var(--red);}
.logo-tag{font-size:9px;color:var(--text-light);text-transform:uppercase;letter-spacing:2px;font-weight:700;margin-top:1px;}
.header-right{display:flex;align-items:center;gap:8px;}
.search-icon-btn{width:38px;height:38px;border-radius:50%;border:1.5px solid var(--border);background:var(--cream);display:flex;align-items:center;justify-content:center;font-size:16px;cursor:pointer;-webkit-tap-highlight-color:transparent;}
.mobile-search-bar{display:none;position:absolute;top:100%;left:0;right:0;background:var(--white);border-bottom:2px solid var(--red);padding:10px 16px;box-shadow:var(--shadow-m);z-index:99;}
.mobile-search-bar.open{display:flex;gap:8px;}
.mobile-search-bar input{flex:1;padding:10px 14px;border:1.5px solid var(--border);border-radius:24px;font-family:'Plus Jakarta Sans',sans-serif;font-size:14px;outline:none;}
.mobile-search-bar input:focus{border-color:var(--red);}
.mobile-search-bar button{padding:10px 18px;background:var(--red);color:white;border:none;border-radius:24px;font-family:'Plus Jakarta Sans',sans-serif;font-size:13px;font-weight:700;cursor:pointer;}
.header-search{display:none;}
.submit-btn{padding:8px 14px;background:var(--dark);color:white;border:none;border-radius:20px;font-family:'Plus Jakarta Sans',sans-serif;font-size:11px;font-weight:700;cursor:pointer;white-space:nowrap;}
.submit-btn:hover{background:var(--red);}

/* HERO */
.hero{background:linear-gradient(135deg,#1a1a1a 0%,#1a0a00 50%,#2e1200 100%);color:white;padding:28px 0 22px;position:relative;overflow:hidden;}
.hero::before{content:'';position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23C8973E' fill-opacity='0.04'%3E%3Ccircle cx='30' cy='30' r='1.5'/%3E%3C/g%3E%3C/svg%3E");}
.hero-content{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:16px;}
.hero h1{font-family:'DM Serif Display',serif;font-size:32px;line-height:1.15;}
.hero h1 em{font-style:normal;color:var(--gold);}
.hero-sub{font-size:15px;color:white;font-weight:700;line-height:1.6;}
.hero-promise{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);padding:8px 16px;border-radius:20px;font-size:12px;font-weight:600;color:white;letter-spacing:.3px;}
.hero-stats{display:flex;gap:20px;justify-content:center;}
.hero-stat{text-align:center;}
.hero-stat .num{font-family:'DM Serif Display',serif;font-size:34px;color:var(--gold);line-height:1.1;}
.hero-stat .lbl{font-size:11px;text-transform:uppercase;letter-spacing:1.5px;color:rgba(255,255,255,.5);font-weight:600;}
.coming-soon-row{display:flex;flex-wrap:wrap;gap:5px;align-items:center;justify-content:center;margin-top:4px;}
.coming-soon-label{font-size:10px;font-weight:700;color:rgba(255,255,255,.4);text-transform:uppercase;letter-spacing:1px;width:100%;margin-bottom:2px;}
.coming-soon-badge{background:rgba(200,151,62,.15);border:1.5px solid rgba(200,151,62,.4);color:var(--gold);font-size:10px;font-weight:700;padding:3px 10px;border-radius:20px;}
.hero-banner-wrap{margin-top:16px;width:100%;}

/* AD ZONES */
.ad-zone{background:none;border:none;border-radius:var(--r);display:block;position:relative;overflow:hidden;}
.ad-zone::before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(45deg,transparent,transparent 10px,rgba(200,151,62,.04) 10px,rgba(200,151,62,.04) 20px);}
.ad-label{position:relative;text-align:center;padding:8px 14px;}
.ad-label .ad-size{font-size:10px;font-weight:700;color:var(--gold);text-transform:uppercase;letter-spacing:2px;}
.ad-label .ad-desc{font-size:12px;color:var(--text-light);font-weight:500;}
.ad-label .ad-price{font-family:'DM Serif Display',serif;font-size:18px;color:var(--red);margin-top:3px;}
.ad-leaderboard{width:100%;height:auto;}
.ad-inline{width:100%;height:auto;}
.ad-sidebar{display:none;}

/* CUISINE NAV */
.cuisine-nav{background:var(--white);padding:8px 0;border-bottom:1px solid var(--border);position:sticky;top:var(--hdr-h);z-index:90;transition:transform .25s ease,opacity .25s ease;}
.cuisine-nav.collapsed{transform:translateY(-100%);opacity:0;pointer-events:none;}
.cuisine-slider-wrap{display:flex;align-items:center;gap:6px;}
.cuisine-scroll{display:flex;gap:6px;overflow-x:auto;padding:2px;scrollbar-width:none;scroll-behavior:smooth;flex:1;-webkit-overflow-scrolling:touch;}
.cuisine-scroll::-webkit-scrollbar{display:none;}
.cuisine-chip{padding:10px 16px;border-radius:22px;border:1.5px solid var(--border);background:var(--white);font-size:13px;font-weight:600;color:var(--text-mid);cursor:pointer;transition:all .2s;white-space:nowrap;flex-shrink:0;-webkit-tap-highlight-color:transparent;min-height:44px;}
.cuisine-chip:active,.cuisine-chip.active{background:var(--red);color:white;border-color:var(--red);}
.slider-arrow{display:none;}

/* NEAR ME */
.near-me-chip{padding:10px 16px;border-radius:22px;border:1.5px solid #1D6CE0;background:#1D6CE0;font-size:13px;font-weight:700;color:white;cursor:pointer;white-space:nowrap;flex-shrink:0;display:flex;align-items:center;gap:5px;min-height:44px;}
.near-me-chip.active{background:#0D3D80;border-color:#0D3D80;}
.near-me-chip.loading{opacity:.75;pointer-events:none;}
.near-me-chip .nm-spinner{width:12px;height:12px;border:2px solid rgba(255,255,255,.4);border-top-color:white;border-radius:50%;animation:spin .6s linear infinite;display:none;}
.near-me-chip.loading .nm-spinner{display:block;}
.near-me-chip.loading .nm-icon{display:none;}
@keyframes spin{to{transform:rotate(360deg);}}
.dist-badge{font-size:10px;font-weight:700;color:var(--red);background:var(--red-light);padding:2px 7px;border-radius:10px;margin-left:4px;}
.near-me-error{background:#fff3cd;border:1.5px solid #ffc107;border-radius:var(--r);padding:10px 14px;font-size:12px;color:#856404;margin-bottom:10px;}

/* MAIN LAYOUT */
.main-layout{display:flex;flex-direction:column;gap:20px;padding:16px 0 32px;}
.results-bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;gap:8px;flex-wrap:wrap;}
.results-count{font-size:12px;color:var(--text-light);font-weight:500;}
.results-count strong{color:var(--text);font-weight:700;}
.sort-sel{padding:10px 14px;border:1.5px solid var(--border);border-radius:var(--r);font-family:'Plus Jakarta Sans',sans-serif;font-size:13px;font-weight:600;color:var(--text-mid);background:var(--white);cursor:pointer;min-height:44px;}
.filter-bar{display:none;flex-wrap:wrap;gap:6px;align-items:center;padding:8px 0 4px;}
.filter-bar.visible{display:flex;}
.filter-pill{display:inline-flex;align-items:center;gap:5px;background:var(--red-light);border:1.5px solid var(--red);color:var(--red);border-radius:22px;font-size:12px;font-weight:700;padding:10px 14px;min-height:44px;}
.filter-pill .fp-x{cursor:pointer;font-size:13px;line-height:1;margin-left:2px;}
.filter-bar-clear{font-size:11px;font-weight:700;color:var(--text-light);cursor:pointer;text-decoration:underline;padding:4px 2px;}

/* LISTING CARDS */
.listing-grid{display:flex;flex-direction:column;gap:8px;}
.listing-card{
  background:var(--white);border:1.5px solid var(--border);border-radius:var(--r-lg);
  padding:16px;display:grid;grid-template-columns:48px 1fr;gap:14px;align-items:start;
  transition:border-color .2s;-webkit-tap-highlight-color:transparent;
  text-decoration:none;color:inherit;
}
.listing-card:hover,.listing-card:active{border-color:var(--red);background:var(--red-light);}
.card-tag{display:none;}
.card-ico{width:48px;height:48px;border-radius:var(--r);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:15px;font-weight:800;color:white;letter-spacing:.5px;box-shadow:0 2px 6px rgba(0,0,0,.18);}
.card-body h3{font-size:17px;font-weight:800;margin-bottom:3px;color:var(--text);line-height:1.25;}
.card-chain{font-size:13px;color:var(--text-mid);font-weight:600;margin-bottom:4px;}
.card-desc{font-size:14px;color:#444;line-height:1.5;margin:6px 0 8px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}
.card-body .meta{font-size:13px;color:var(--text-mid);font-weight:500;display:flex;flex-wrap:wrap;gap:6px;margin-top:6px;}
.card-body .meta span{display:flex;align-items:center;gap:3px;}
.card-body .meta a.tel-link{color:var(--text-mid);text-decoration:none;}
.card-body .meta a.tel-link:hover{color:var(--red);}
.inline-ad-wrap{padding:8px 0;display:flex;justify-content:center;}

/* NO RESULTS */
.no-results{text-align:center;padding:44px 20px;background:var(--white);border:1.5px solid var(--border);border-radius:var(--r-lg);}
.no-results .nr-icon{font-size:38px;margin-bottom:10px;}
.no-results h3{font-family:'DM Serif Display',serif;font-size:20px;margin-bottom:6px;}
.no-results p{font-size:13px;color:var(--text-light);margin-bottom:16px;}
.no-results button{padding:10px 22px;background:var(--red);color:white;border:none;border-radius:20px;font-family:'Plus Jakarta Sans',sans-serif;font-size:13px;font-weight:700;cursor:pointer;}

/* LOAD MORE */
.load-more-wrap{text-align:center;padding:16px 0 8px;}
.load-more-btn{padding:16px 40px;background:var(--red);border:none;border-radius:28px;font-family:'Plus Jakarta Sans',sans-serif;font-size:15px;font-weight:700;color:white;cursor:pointer;transition:all .2s;min-height:52px;box-shadow:0 4px 12px rgba(196,30,58,.3);}
.load-more-btn:hover{background:var(--red-dark);transform:translateY(-1px);box-shadow:0 6px 16px rgba(196,30,58,.4);}
.load-more-btn:active{transform:translateY(0);}

/* SIDEBAR */
.sidebar{display:flex;flex-direction:column;gap:12px;}
.sidebar-box{background:var(--white);border:1.5px solid var(--border);border-radius:var(--r-lg);padding:16px;}
.sidebar-box h4{font-family:'DM Serif Display',serif;font-size:15px;margin-bottom:10px;padding-bottom:8px;border-bottom:2px solid var(--red);}
.zone-list{list-style:none;display:flex;flex-direction:column;gap:4px;}
.zone-list li{font-size:13px;color:var(--text-mid);padding:12px 12px;border-radius:var(--r);cursor:pointer;display:flex;justify-content:space-between;align-items:center;-webkit-tap-highlight-color:transparent;outline:none;min-height:44px;}
.zone-list li:focus-visible{outline:2px solid var(--red);outline-offset:2px;}
.zone-list li:hover,.zone-list li:active{background:var(--red-light);color:var(--red);}
.zone-list li.z-active{background:var(--red-light);color:var(--red);font-weight:700;}
.zone-list li .ct{background:var(--cream);padding:2px 8px;border-radius:10px;font-size:10px;font-weight:700;color:var(--text-light);min-width:26px;text-align:center;}
.zone-list li.z-active .ct{background:var(--red);color:white;}
.zone-list li.z-counts-stale .ct{opacity:.4;}
.quick-links{list-style:none;display:flex;flex-direction:column;gap:4px;}
.quick-links li a{font-size:13px;color:var(--red);text-decoration:none;font-weight:600;display:flex;align-items:center;gap:6px;padding:10px 0;min-height:44px;}
.quick-links li a:hover{color:var(--red-dark);}

/* SUBMIT */
.submit-section{background:var(--white);border:1.5px solid var(--border);border-radius:var(--r-lg);padding:24px 16px;margin:0 0 32px;text-align:center;}
.submit-section h2{font-family:'DM Serif Display',serif;font-size:22px;margin-bottom:6px;}
.submit-section .sub{color:var(--text-light);font-size:13px;margin-bottom:18px;line-height:1.5;}
.submit-grid{display:grid;grid-template-columns:1fr;gap:10px;margin-bottom:14px;}
.submit-card{background:var(--cream);border:2px dashed var(--border);border-radius:var(--r-lg);padding:18px 14px;text-align:center;}
.submit-card .ico{font-size:28px;margin-bottom:6px;}
.submit-card h3{font-size:13px;font-weight:700;margin-bottom:3px;}
.submit-card p{font-size:11px;color:var(--text-light);}

/* FOOTER */
footer{background:var(--dark);color:rgba(255,255,255,.5);padding:24px 0;font-size:12px;}
footer .container{display:flex;flex-direction:column;gap:14px;}
footer .brand{color:white;font-family:'DM Serif Display',serif;font-size:18px;}
footer .brand span{color:var(--red);}
footer a{color:var(--gold);text-decoration:none;}
footer .legal{line-height:1.6;}

/* BACK TO TOP */
.back-to-top{position:fixed;bottom:20px;right:16px;z-index:200;width:44px;height:44px;border-radius:50%;background:var(--red);color:white;border:none;font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 14px rgba(196,30,58,.4);opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;transform:translateY(8px);}
.back-to-top.visible{opacity:1;pointer-events:auto;transform:translateY(0);}
.back-to-top:hover{background:var(--red-dark);}

/* TABLET */
@media(min-width:600px){
  :root{--hdr-h:69px;}
  .container{padding:0 20px;}
  .top-bar .container{justify-content:space-between;}
  .top-bar-text{display:block;}
  .header-inner{padding:12px 0;}
  .logo-mark{width:42px;height:42px;font-size:20px;}
  .logo-text{font-size:24px;}
  .search-icon-btn{display:none;}
  .header-search{display:flex;align-items:center;background:var(--cream);border:1.5px solid var(--border);border-radius:24px;overflow:hidden;transition:border-color .2s;}
  .header-search:focus-within{border-color:var(--red);}
  .header-search input{padding:8px 4px 8px 14px;border:none;background:transparent;font-family:'Plus Jakarta Sans',sans-serif;font-size:13px;width:160px;outline:none;}
  .header-search input::placeholder{color:var(--text-light);}
  .header-search button{padding:7px 12px;border:none;background:var(--red);color:white;font-size:12px;cursor:pointer;border-radius:0 22px 22px 0;}
  .hero{padding:36px 0 28px;}
  .hero h1{font-size:36px;}
  .hero-sub{font-size:15px;}
  .hero-stat .num{font-size:34px;}
  .ad-leaderboard{height:auto;}
  .ad-inline{height:auto;}
  .ad-sidebar{display:flex;width:100%;height:180px;}
  .slider-arrow{width:30px;height:30px;border-radius:50%;border:1.5px solid var(--border);background:var(--white);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:12px;color:var(--text-mid);flex-shrink:0;transition:all .2s;}
  .slider-arrow:hover{border-color:var(--red);color:var(--red);}
  .cuisine-nav{padding:12px 0;}
  .main-layout{padding:20px 0 40px;gap:24px;}
  .listing-card{grid-template-columns:48px 1fr auto;padding:16px 18px;gap:16px;}
  .card-tag{display:block;padding:4px 11px;border-radius:16px;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;color:white;}
  .tag-chain{background:#1E293B;}
  .tag-local{background:#C2410C;}
  .sidebar{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
  .submit-section{padding:28px 24px;margin:0 0 40px;}
  .submit-grid{grid-template-columns:repeat(3,1fr);}
  footer .container{flex-direction:row;justify-content:space-between;align-items:flex-start;}
  footer .legal{text-align:right;max-width:400px;}
}
@media(min-width:960px){
  :root{--hdr-h:75px;}
  .container{max-width:1160px;margin:0 auto;padding:0 24px;}
  .header-inner{padding:14px 0;}
  .logo-mark{width:44px;height:44px;font-size:22px;}
  .logo-text{font-size:26px;}
  .header-search input{width:200px;}
  .header-search button{padding:8px 14px;font-size:13px;}
  .hero{padding:44px 0 36px;}
  .hero h1{font-size:42px;}
  .hero-sub{font-size:16px;max-width:580px;margin:0 auto;}
  .hero-stats{gap:28px;}
  .hero-stat .num{font-size:36px;}
  .ad-leaderboard{height:auto;max-width:728px;margin:0 auto;}
  .ad-inline{height:auto;max-width:728px;margin:0 auto;}
  .ad-sidebar{height:250px;}
  .cuisine-nav{padding:14px 0;}
  .slider-arrow{width:32px;height:32px;font-size:14px;}
  .main-layout{display:grid;grid-template-columns:1fr 300px;gap:28px;padding:28px 0 48px;}
  .sidebar{display:flex;flex-direction:column;position:sticky;top:calc(var(--hdr-h) + 58px);}
  .listing-card:hover{border-color:var(--red);box-shadow:var(--shadow-m);transform:translateY(-1px);}
  .listing-card:active{transform:none;}
  .zone-list li:hover{background:var(--red-light);color:var(--red);}
  .submit-section{max-width:800px;margin:0 auto 48px;padding:36px;}
  footer{padding:32px 0;}
  .back-to-top{right:32px;bottom:32px;}
}

/* GUIDE LINK */
.guide-link{display:inline-flex;align-items:center;gap:6px;margin-top:12px;padding:8px 16px;background:rgba(200,151,62,.15);border:1.5px solid rgba(200,151,62,.4);border-radius:20px;font-size:12px;font-weight:700;color:var(--gold);text-decoration:none;transition:all .2s;}
.guide-link:hover{background:rgba(200,151,62,.25);border-color:var(--gold);}

/* Ad image fills */
.ad-zone img{display:block;width:100%;height:auto;border-radius:var(--r);}
