.home-hero { background:linear-gradient(90deg,#ffffff38 0%,#fffffff0 24%,#fffffff0 76%,#ffffff38 100%),url("assets/home-lunch-background-v1.jpg") center / cover no-repeat; border-bottom:1px solid #e3e3e6; padding:24px 24px 22px; }
.home-hero-inner { max-width:850px; margin:0 auto; }
.home-hero h1 { font-size:46px; line-height:1.15; font-weight:700; letter-spacing:-1.2px; text-align:center; }
.home-intro { margin:16px auto 32px; max-width:600px; text-align:center; font-size:18px; line-height:1.55; color:#52636e; }
.home-search-form { position:relative; z-index:600; }
.home-search-form > label { display:block; margin:0 0 9px 2px; font-size:14px; color:#3b515d; }
.home-search-box { display:flex; align-items:center; gap:16px; padding:8px 8px 8px 22px; background:white; border:1px solid #d7d7dc; border-radius:10px; box-shadow:0 4px 18px #183a5010; }
.home-search-box:focus-within { border-color:var(--accent); box-shadow:0 0 0 3px #007fa318; }
.home-search-icon { width:24px; height:24px; color:var(--accent); }
#home-search { flex:1; width:0; min-width:0; height:50px; padding:0; border:0; outline:0; background:transparent; font-size:20px; }
#home-search::placeholder { color:#7b8790; }
.home-search-submit { display:flex; align-items:center; justify-content:center; flex-shrink:0; gap:20px; height:50px; padding:0 24px; border-radius:6px; background:var(--accent); color:#fff; font-size:17px; font-weight:700; }
.home-search-submit:hover { background:#006782; }
.home-search-results { position:absolute; top:calc(100% + 6px); left:0; right:0; padding:8px; background:white; border:1px solid #d9e3e8; border-radius:10px; box-shadow:0 12px 30px #20354426; }
#home-search-hint { padding:9px 12px; color:var(--muted); font-size:13px; }
#home-suggestions { list-style:none; margin:0; padding:0; max-height:340px; overflow-y:auto; }
.home-search-option { display:flex; align-items:center; justify-content:space-between; padding:13px 12px; border-radius:5px; cursor:pointer; gap:16px; }
.home-search-option[aria-selected=true],.home-search-option:hover { background:var(--accent-light); color:#006e8a; }
.home-search-option small { display:block; margin-top:3px; color:var(--muted); font-size:12px; }
.home-search-option .icon { width:18px; height:18px; }
.home-search-extras { min-height:24px; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:18px; margin:12px 0 0; font-size:14px; }
.home-search-actions { display:flex; flex-shrink:0; gap:8px; }
#home-locate { display:flex; align-items:center; justify-content:center; gap:8px; height:50px; padding:0 16px; border:1px solid var(--accent); border-radius:6px; color:var(--accent); background:white; font-size:16px; font-weight:600; white-space:nowrap; }
#home-locate:hover { background:var(--accent-light); }
#home-locate:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
#home-locate .icon { width:18px; height:18px; }
#home-locate:disabled { opacity:.65; }
.home-quick-links { display:flex; flex-wrap:wrap; gap:16px; }
.home-quick-links a { color:#42606e; text-decoration:underline; text-underline-offset:3px; }
.home-status { font-size:14px; line-height:1.5; color:#52636e; margin-top:12px; }
.home-status:empty { display:none; }
.home-retry { color:var(--accent); margin-top:8px; text-decoration:underline; }
.home-map-section,.home-cities { max-width:1300px; margin:0 auto; padding:32px 24px 0; }
.home-map-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:17px; }
.home-map-heading h2,.home-cities h2 { font-size:24px; font-weight:700; line-height:1.3; letter-spacing:-.35px; }
.home-map-heading p { margin-top:6px; color:var(--muted); font-size:15px; }
.home-map-heading > a { color:#006e8a; font-size:14px; white-space:nowrap; }
.home-map-wrap { position:relative; border:1px solid var(--line); border-radius:10px; overflow:hidden; box-shadow:var(--card-shadow); background:#edf1f0; }
#home-map { height:460px; z-index:0; }
#home-map-reset { position:absolute; top:12px; right:12px; z-index:500; padding:11px 14px; border-radius:6px; background:white; color:var(--ink); box-shadow:0 2px 10px #0002; font-size:13px; }
#home-map-status { position:absolute; bottom:34px; left:50%; transform:translateX(-50%); padding:10px 16px; border-radius:6px; background:white; box-shadow:0 2px 10px #0001; font-size:14px; text-align:center; max-width:90%; }
.home-city-marker { display:flex; align-items:center; justify-content:center; }
.home-city-dot { display:block; width:13px; height:13px; background:var(--accent-green); border:2px solid white; border-radius:50%; box-shadow:0 1px 5px #183d4055; }
.home-city-marker:hover .home-city-dot,.home-city-marker:focus .home-city-dot { width:17px; height:17px; background:var(--accent); }
.home-map-popup { min-width:180px; font-family:Lato,Arial,sans-serif; }
.home-map-popup h3 { font-size:19px; font-weight:700; margin:0 0 6px; }
.home-map-popup p { margin:0 0 14px; color:var(--muted); font-size:14px; }
.home-map-popup a { display:block; border-radius:5px; background:var(--accent); color:#fff; padding:10px 14px; text-align:center; font-size:14px; }
.home-cities { padding-top:38px; padding-bottom:48px; }
#home-city-links { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:0 25px; margin-top:18px; }
#home-city-links a { padding:10px 0; font-size:15px; color:#52616c; }
#home-city-links a:hover { color:var(--accent); text-decoration:underline; }
@media(max-width:780px) {
 .home-hero { padding:20px 16px; }
 .home-hero h1 { font-size:32px; letter-spacing:-.6px; }
 .home-intro { margin:13px auto 25px; font-size:16px; max-width:370px; }
 .home-search-box { display:grid; grid-template-columns:20px minmax(0,1fr); padding:6px 6px 6px 12px; gap:6px 9px; }
 .home-search-actions { grid-column:1 / -1; display:grid; grid-template-columns:1fr 1fr; gap:8px; }
 #home-locate { height:46px; padding:0 10px; font-size:14px; }
 .home-search-icon { width:20px; height:20px; }
 #home-search { width:100%; font-size:16px; height:46px; }
 .home-search-submit { height:46px; padding:0 14px; font-size:14px; gap:8px; }
 .home-search-submit .icon { display:none; }
 .home-search-extras { gap:10px; font-size:13px; }
 .home-quick-links { gap:14px; }
 .home-map-section,.home-cities { padding-left:16px; padding-right:16px; }
 .home-map-heading { align-items:flex-start; gap:12px; }
 .home-map-heading h2,.home-cities h2 { font-size:21px; }
 .home-map-heading p { font-size:14px; }
 .home-map-heading > a { font-size:12px; padding-top:5px; }
 #home-map { height:380px; }
 #home-city-links { grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 16px; }
}


.home-map-popup a + a { margin-top:7px; }

/* Original illustration with a live week number over the blank sign. */
.home-hero-heading { display:grid; grid-template-columns:minmax(0,1fr) 180px; align-items:center; gap:10px 28px; margin-bottom:18px; }
.home-hero-heading h1 { grid-column:1; grid-row:1; align-self:end; margin:0; text-align:left; }
.home-hero-heading .home-intro { grid-column:1; grid-row:2; align-self:start; margin:0; text-align:left; font-size:16px; font-weight:700; line-height:1.5; }
.home-mascot { grid-column:2; grid-row:1 / span 3; position:relative; width:180px; aspect-ratio:3 / 2; container-type:inline-size; pointer-events:none; }
.home-mascot img { display:block; width:100%; height:auto; }
.home-mascot-week { position:absolute; left:58.5%; top:28.5%; width:30%; height:14%; display:grid; place-content:center; color:#111; font-family:Arial,Helvetica,sans-serif; font-size:3.7cqw; font-weight:700; line-height:1.1; text-align:center; }
@media(max-width:780px) {
  .home-hero-heading { display:flow-root; margin-bottom:16px; }
  .home-hero-heading h1 { margin-bottom:12px; font-size:30px; line-height:1.15; }
  .home-hero-heading .home-intro { max-width:none; }
  .home-mascot { float:right; width:112px; margin:0 0 8px 14px; }
}
@media(max-width:359px) {
  .home-hero-heading h1 { font-size:27px; }
  .home-mascot { width:96px; }
}

.home-hero-heading .home-facts { grid-column:1; grid-row:3; margin:0; padding-left:20px; font-size:15px; line-height:1.6; color:#52636e; }
@media(max-width:780px) { .home-hero-heading .home-facts { margin-top:10px; } }
.home-facts li::marker { color:#007f9f; }

@media(min-width:781px) {
  .home-discovery { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,2fr); align-items:start; gap:32px; max-width:1300px; margin:0 auto; padding:32px 24px 48px; }
  .home-discovery > section { min-width:0; width:100%; max-width:none; margin:0; padding:0; }
  .home-discovery #home-map { height:560px; }
  .home-discovery #home-city-links { grid-template-columns:repeat(4,minmax(0,1fr)); gap:0 20px; }
  .home-discovery #home-city-links a { overflow-wrap:anywhere; }
}
@media(min-width:781px) and (max-width:1050px) {
  .home-discovery { gap:24px; }
  .home-discovery #home-city-links { grid-template-columns:repeat(3,minmax(0,1fr)); gap:0 16px; }
}

/* A quiet directory card with compact group choices. */
.home-city-card { background:#fff; border:1px solid var(--line); border-radius:10px; box-shadow:var(--card-shadow); padding:24px; }
.home-city-choices { display:flex; flex-wrap:wrap; gap:4px; margin-top:18px; }
.home-city-choices button { min-height:38px; padding:8px 12px; border-radius:5px; font-size:14px; line-height:1.4; color:#52616c; white-space:nowrap; }
.home-city-choices button:hover { background:#f3f5f7; color:var(--ink); }
.home-city-choices button[aria-pressed=true] { background:var(--accent-light); color:var(--accent); font-weight:600; }
.home-city-card #home-city-links { margin-top:14px; min-height:172px; align-content:start; }
.home-city-empty { grid-column:1 / -1; color:var(--muted); font-size:14px; padding:10px 0; }
@media(max-width:780px) {
 .home-city-card { padding:18px 16px; }
 .home-city-choices { margin-top:14px; gap:2px; }
 .home-city-choices button { padding:8px 10px; }
}

/* Keep the two desktop panels aligned beneath their headings. */
.home-cities > .home-map-heading { align-items:flex-start; }
.home-city-card .home-city-choices { margin-top:0; }
.home-mascot img { mix-blend-mode:multiply; }
@media(min-width:781px) {
 .home-discovery { grid-template-rows:auto 562px; row-gap:0; }
 .home-discovery > section { display:grid; grid-row:span 2; grid-template-rows:subgrid; }
 .home-city-card { min-height:0; display:flex; flex-direction:column; }
 .home-city-card #home-city-links { min-height:0; overflow-y:auto; flex:1; }
}
@media(max-width:780px) {
 .home-hero { background:linear-gradient(90deg,#fffffff5,#ffffffd9),url("assets/home-lunch-background-v1.jpg") right center / auto 100% no-repeat; }
}
