:root{font-family:system-ui,sans-serif;color:#193e34;background:#fafbf8}*{box-sizing:border-box}body{margin:0}header{position:sticky;top:0;z-index:2;background:white;border-bottom:1px solid #e4e9e4;display:flex;align-items:center;gap:20px;padding:18px 6%;flex-wrap:wrap}a{color:inherit;text-decoration:none}.logo{font-size:25px;font-weight:850;margin-right:auto}nav{display:flex;gap:20px}button,.cta{cursor:pointer;border:0;border-radius:10px;background:#176d54;color:white;padding:12px 18px;font-weight:700}button:disabled{opacity:.5;cursor:not-allowed}.hero{padding:80px 8%;background:#e7f1e7;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:20px}.hero h1{font-size:clamp(44px,6vw,78px);line-height:1.05;letter-spacing:-3px}.hero em{font-style:normal;color:#158260}.hero p{font-size:19px;color:#536f62;line-height:1.6}.hero .cta{display:inline-block}.art{background:#d2e4d4;border-radius:40px;padding:70px 20px;text-align:center;font-size:65px}main section:not(.hero){max-width:1200px;margin:auto;padding:65px 5%}h2{font-size:35px}.notice{background:#fff3d8;color:#72531c;padding:18px;margin:20px auto;max-width:1100px;border-radius:12px}.search{display:flex;gap:8px;margin:10px 0 20px}.search input{padding:14px;border:1px solid #cbd9d0;border-radius:10px;min-width:250px;flex:1}#categories{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:25px}#categories button{background:#e6f2ea;color:#176d54}#categories button.active{background:#176d54;color:white}#products{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.product{border:1px solid #e4e9e4;background:white;border-radius:17px;padding:14px}.emoji{display:grid;place-items:center;background:#eff5ed;height:155px;border-radius:12px;font-size:70px}.product h3{margin-bottom:6px}.product p{color:#698073}.bottom{display:flex;justify-content:space-between;align-items:center;gap:8px}.bottom strong{font-size:20px}#cart{position:fixed;z-index:4;right:0;top:0;bottom:0;width:min(420px,100%);background:white;box-shadow:-5px 0 30px #0003;padding:22px;overflow:auto}#cart[hidden]{display:none}.carthead,.line{display:flex;justify-content:space-between;align-items:center;gap:10px}.line{border-bottom:1px solid #ddd;padding:14px 0}.line button{padding:8px}footer{background:#153c32;color:white;padding:40px 6%}.senior{font-size:125%}.senior button,.senior input{min-height:50px}@media(max-width:800px){.hero{grid-template-columns:1fr}.art{font-size:40px;padding:40px}#products{grid-template-columns:repeat(2,1fr)}nav{display:none}}@media(max-width:420px){#products{gap:9px}.emoji{height:110px;font-size:55px}.bottom{flex-wrap:wrap}.product h3{font-size:16px}}

/* Tellivo responsive layout patch — append to public/styles.css */
html, body { width:100%; max-width:100%; overflow-x:clip; }
header, main, footer { min-width:0; }
.hero { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
.hero > * { min-width:0; }
.hero h1 { overflow-wrap:normal; font-size:clamp(2.4rem,5.4vw,4.875rem); letter-spacing:-.035em; }
.art { min-width:0; overflow:hidden; font-size:clamp(2rem,4.2vw,4.1rem); }
.search input { min-width:0; width:100%; }
#products { grid-template-columns:repeat(4,minmax(0,1fr)); }
.product { min-width:0; }
@media(max-width:900px){
  header { padding:16px 4%; }
  .hero { grid-template-columns:minmax(0,1fr); padding:60px 5%; }
  .hero h1 { font-size:clamp(2.5rem,8vw,4.5rem); }
  #products { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:520px){
  header { gap:10px; }
  .logo { width:100%; }
  header button { flex:1; padding:10px; font-size:.85rem; }
  .hero { padding:42px 5%; }
  .hero h1 { font-size:clamp(2.3rem,10vw,3.5rem); }
  .art { padding:30px 8px; font-size:clamp(1.8rem,7vw,3rem); border-radius:22px; }
  #products { gap:10px; }
  .product { padding:10px; }
  .notice { margin:16px 5%; }
}

/* Regular and senior shopping walkthrough */
#how-it-works{margin:36px auto 54px;padding:30px 3%;border-radius:24px;background:linear-gradient(140deg,#eaf4ff,#fff 60%,#eff8ff)}
.how-intro{text-align:center;margin-bottom:25px}.how-intro h2{font-size:clamp(1.7rem,3vw,2.8rem);color:#10285b;margin:10px 0}.how-intro p{color:#50647c}.how-intro .eyebrow{font-weight:700;letter-spacing:.15em;color:#0875cf;font-size:.75rem}
.how-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.how-grid[hidden]{display:none}
.how-grid article{background:#fff;border:1px solid #dce9f7;border-radius:18px;padding:17px;box-shadow:0 4px 16px #0b3d7512;min-width:0;display:flex;flex-direction:column}
.how-grid h3{color:#10285b;font-size:1.1rem;margin:12px 0 5px}.how-grid p{color:#4c6078;line-height:1.5;flex:1}.how-grid a,.how-grid button{color:#075db1;font-weight:700;align-self:flex-start}.how-grid button{border:1px solid #b3d7ff;background:#f1f8ff;border-radius:10px;padding:10px}.step{display:grid;place-items:center;background:#0674e7;color:white;border-radius:50%;width:44px;height:44px;font-weight:800;font-size:1.3rem}.step-art{font-size:3.3rem;text-align:center;padding:20px 0;background:#f2f8ff;border-radius:14px;margin-top:14px}
.how-footnote{font-size:.85rem;color:#576e85;margin-top:20px}#senior-lists{background:#f1f8ff;border:2px solid #a6cfff;border-radius:16px;padding:18px;margin:18px 0}#senior-list-buttons{display:flex;flex-wrap:wrap;gap:8px}#senior-list-buttons button,#show-all-senior{border-radius:12px;padding:12px;background:#fff;border:1px solid #87bff5;color:#0d4381;font-weight:700}
.senior .how-grid h3{font-size:1.3rem}.senior .how-grid p{font-size:1.05rem}
@media(max-width:1050px){.how-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){#how-it-works{padding:20px 4%}.how-grid{grid-template-columns:1fr}.step-art{font-size:2.8rem;padding:12px}.how-grid article{padding:15px}}

/* Accessible shopping feature tools */
#shopping-tools{background:#f5f9ff;border-radius:20px;margin:24px auto!important;padding:28px!important}
.tool-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.tool-grid>div{background:white;border:1px solid #d7e5f3;border-radius:16px;padding:20px;min-width:0}
.tool-grid h3{color:#133968}.tool-grid textarea,.tool-grid select{display:block;width:100%;padding:12px;border:1px solid #9bb5ce;border-radius:9px;margin:10px 0;font:inherit}
.tool-grid button{margin:5px 6px 5px 0}.tool-grid p{line-height:1.5}
.senior #shopping-tools button,.senior #shopping-tools textarea,.senior #shopping-tools select{font-size:1.05rem;min-height:54px}
@media(max-width:700px){.tool-grid{grid-template-columns:1fr}#shopping-tools{padding:16px!important}}

#recommendations{padding:24px!important;margin:20px auto!important;border:1px solid #d7e6f7;border-radius:18px;background:#f5faff}
#recommendations h2{font-size:1.5rem;margin-top:0}#recommendation-items{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.recommendation-card{display:flex;flex-direction:column;justify-content:space-between;gap:12px;background:white;border:1px solid #dce7f2;border-radius:12px;padding:15px}
.recommendation-card button{align-self:flex-start}
@media(max-width:700px){#recommendation-items{grid-template-columns:1fr}}

#senior-quick{background:#edf7ff;border:3px solid #2878c8;border-radius:22px;padding:28px!important;margin:20px auto!important;text-align:center}
#senior-quick h2{font-size:2rem;color:#103b75}#senior-quick p{font-size:1.2rem;line-height:1.6}
#senior-talk,#senior-review{display:block;width:min(100%,560px);margin:15px auto;font-size:1.45rem;padding:22px;border-radius:18px}
#senior-talk{background:#095ca8}#senior-review{background:#146b45}
#senior-heard{font-weight:700;min-height:2em}
#senior-confirmation{background:#f0f8ff;border:2px solid #4789ca;border-radius:14px;padding:16px;margin:12px 0}
#senior-confirmation[hidden],#senior-quick[hidden]{display:none}
body:has(#senior-confirmation:not([hidden])) #place{font-size:1.4rem;padding:20px;background:#146b45}

#senior-voice-preview{background:white;border:2px solid #3679bb;border-radius:18px;padding:18px;margin:18px auto;max-width:700px;text-align:left}
#senior-voice-preview[hidden]{display:none}
.voice-match{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;border-bottom:1px solid #d7e6f5;padding:14px 4px;font-size:1.2rem}
.voice-match select{padding:14px;min-width:220px;max-width:100%;font:inherit;border-radius:10px}
#senior-add-voice,#senior-cancel-voice{font-size:1.2rem;padding:17px;margin:12px 8px 0 0}
#senior-cancel-voice{background:#e7edf5;color:#244261}

/* Keep the senior journey focused: voice, grocery review and approval. */
.senior .hero,.senior #how-it-works,.senior #about,.senior #shopping-tools,.senior #recommendations,.senior #categories{display:none}
.senior #shop{padding-top:18px!important}
.senior #senior-quick{margin-top:0!important}
.senior #senior-talk{min-height:100px;font-size:1.75rem}
.senior #senior-review{min-height:90px;font-size:1.5rem}
.senior #products{grid-template-columns:repeat(2,minmax(0,1fr))}
.senior #products button{font-size:1.2rem;min-height:60px}
@media(max-width:600px){.senior #products{grid-template-columns:1fr}.senior header{position:static}}

.product-photo{display:block;width:100%;height:100%;object-fit:contain;background:#fff;border-radius:12px}
.photo-pending{display:grid;place-items:center;width:100%;height:100%;font-size:1rem;font-weight:700;color:#45605a;text-align:center;padding:12px}

.photo-research-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:18px}
.research-photo{height:180px;object-fit:contain;padding:8px}
#photo-research{padding-top:12px}
#photo-research .product p{font-size:.85rem;line-height:1.5}

/* Keep missing or blocked image assets from overflowing product cards. */
.product{min-width:0;overflow:hidden}
.product .emoji{position:relative;overflow:hidden;width:100%;height:155px;font-size:inherit}
.product .product-photo{width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain}
.product .product-photo[hidden]{display:none}
.product .photo-fallback{display:grid;place-items:center;width:100%;height:100%;font-size:2rem;background:#eff5ed}
.product .photo-fallback[hidden]{display:none}
.product h3,.product p{overflow-wrap:anywhere}
