:root{font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;color:#17252b;background:#f6f3ec;--orange:#ef6b45;--green:#185e53}*{box-sizing:border-box}body{margin:0;min-width:320px}.shell{max-width:1100px;margin:auto;padding:20px 18px 92px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.brand{font-weight:800;font-size:20px}.brand small{display:block;font-size:11px;color:#7a8586;font-weight:500}.lang{border:1px solid #d7ddd6;border-radius:999px;padding:8px;background:white}.tabs{position:fixed;z-index:10;bottom:0;left:0;right:0;background:#fff;border-top:1px solid #ddd;display:flex;justify-content:center;gap:4px;padding:8px}.tabs button{border:0;background:transparent;padding:10px 14px;border-radius:12px;color:#536267}.tabs button.active{background:#e5f0eb;color:#15584e;font-weight:700}.toast{position:fixed;left:50%;bottom:76px;transform:translateX(-50%);background:#173b36;color:white;padding:10px 15px;border-radius:10px}.home{padding:32px 0}.home h1{font-size:clamp(34px,6vw,68px);max-width:760px;margin:10px 0}.home p{font-size:18px;color:#5e6b6d;max-width:650px}.quick{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:26px}.quick button{padding:18px;text-align:left;border:1px solid #dfe4dc;border-radius:16px;background:#fff;font-weight:700}.quick span{display:block;font-size:12px;color:#718083;margin-top:6px;font-weight:400}@media(max-width:720px){body{background:#f8f7f4}.shell{width:100%;max-width:480px;margin:0 auto;padding:calc(10px + env(safe-area-inset-top)) 14px calc(86px + env(safe-area-inset-bottom));min-height:100dvh}.topbar{position:sticky;top:0;z-index:8;margin:0 -14px 12px;padding:10px 14px;background:rgba(248,247,244,.96);backdrop-filter:blur(12px);border-bottom:1px solid #ebe8e1}.brand{font-size:16px}.brand small{font-size:10px}.lang{padding:7px 9px;font-size:12px}.tabs{left:50%;right:auto;transform:translateX(-50%);width:min(100%,480px);padding:8px 6px calc(8px + env(safe-area-inset-bottom));justify-content:space-around;gap:0;box-shadow:0 -4px 18px rgba(40,35,25,.08)}.tabs button{flex:1;min-height:44px;padding:8px 3px;font-size:11px;border-radius:10px}.tabs button.active{background:#e5f0eb}.home{padding:18px 0}.home h1{font-size:36px;line-height:1.1}.home p{font-size:15px;line-height:1.55}.quick{grid-template-columns:repeat(2,1fr);gap:9px;margin-top:20px}.quick button{min-height:92px;padding:13px;font-size:14px;border-radius:14px}.quick span{font-size:11px}.hp-page{padding:4px 0}.hp-page__header h1{font-size:30px}.hp-grid{grid-template-columns:1fr!important;gap:12px}.hp-card{border-radius:14px}.hp-card footer{gap:6px}.hp-detail,.place-detail{border-radius:16px;padding:1rem}.map-page{padding:0}.map-page h1{font-size:28px}.map-layout{display:flex;flex-direction:column;gap:10px}.map-canvas{min-height:58dvh;max-height:620px;border-radius:18px}.map-fallback{min-height:58dvh}.nearby-list{max-height:30dvh;overflow:auto}.community-feed{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.community-card{border-radius:12px}.community-card>img{height:150px}.community-card__body{padding:.7rem}.community-card h2{font-size:.95rem}.community-card p{font-size:.84rem}.community-card footer{display:block}.community-card footer button{font-size:.76rem;padding:.4rem}.community-toolbar{position:sticky;top:57px;z-index:5;background:#f8f7f4;padding:6px 0}.community-toolbar input{min-width:0}.review-list{max-height:none}.service-grid{grid-template-columns:1fr!important}.profile-grid{grid-template-columns:1fr!important}}
.map-page{padding:1.25rem;max-width:1100px;margin:auto}.map-toolbar{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}.map-toolbar button{border:1px solid #d6ded9;background:#fff;border-radius:999px;padding:9px 14px}.map-toolbar button.is-active{background:#e5f0eb;color:#15584e;font-weight:700}.map-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(240px,1fr);gap:16px}.map-canvas{min-height:420px;border-radius:18px;overflow:hidden;background:#dcebdc;border:1px solid #d4ddd4}.nearby-list{display:grid;align-content:start;gap:8px}.place-row{display:grid;gap:4px;text-align:left;border:1px solid #dce4de;border-radius:14px;background:#fff;padding:13px}.place-row__type{font-size:11px;text-transform:uppercase;color:#d96c42}.place-row small{color:#6d7978}.map-fallback{position:relative;min-height:420px;height:100%;overflow:hidden;background:linear-gradient(145deg,#e9f2dc,#d5e8db)}.map-fallback__water{position:absolute;inset:25% -10% 20% 35%;background:#9dd9e7;border-radius:45% 0 0 55%;opacity:.72;transform:rotate(-12deg)}.map-fallback__label{position:absolute;left:18px;top:18px;color:#53756d;font-weight:700}.map-fallback__pin{position:absolute;z-index:2;width:28px;height:28px;border-radius:50%;border:2px solid #fff;background:#ee6e45;color:#fff;transform:translate(-50%,-50%);cursor:pointer}.place-detail{max-width:760px;margin:auto;padding:1.5rem;background:#fff;border-radius:18px}.place-detail__actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}.place-detail__actions button,.primary-action{border:0;border-radius:10px;padding:10px 14px;background:#185e53;color:#fff}.eyebrow{color:#d96c42;font-size:12px;font-weight:700;text-transform:uppercase}@media(max-width:720px){.map-layout{grid-template-columns:1fr}.map-canvas{min-height:320px}.map-fallback{min-height:320px}}
.food-scan-entry{display:grid;grid-template-columns:auto 1fr auto;gap:2px 10px;width:100%;margin:16px 0;padding:14px;text-align:left;border:1px solid #d9e5dd;border-radius:16px;background:#fff;color:#173b36}.food-scan-entry span{grid-row:span 2;font-size:28px}.food-scan-entry strong{font-size:15px}.food-scan-entry small{color:#6d7978}.food-scan-entry b{grid-column:3;grid-row:1 / span 2;align-self:center;font-size:24px}.menu-upload{display:grid;gap:8px;padding:20px;border:1px dashed #b8cfc4;border-radius:18px;background:#fff;margin:18px 0;cursor:pointer}.menu-upload input{width:100%}.menu-upload small{color:#718083}.menu-preview img{width:100%;max-height:320px;object-fit:contain;border-radius:16px;background:#eee;margin-bottom:12px}.menu-result{display:grid;gap:10px}.menu-result article{padding:14px;border:1px solid #e4e8e1;border-radius:14px;background:#fff}.menu-result article h3{margin:4px 0}.menu-result article p{margin:6px 0;color:#566568;line-height:1.5}.menu-result article span{font-size:10px;color:#8b969b}
.food-card-image{display:block;width:100%;height:180px;object-fit:cover;border-radius:14px 14px 0 0}.hp-food-card{padding:0;overflow:hidden}.hp-food-card .hp-card__body{padding:14px}.compact-copy{font-size:14px!important}.place-row{grid-template-columns:76px 1fr;grid-template-rows:auto auto auto;column-gap:10px;align-items:center}.place-row img{grid-row:1 / span 3;width:76px;height:64px;object-fit:cover;border-radius:10px}.place-row .place-row__type,.place-row strong,.place-row small{grid-column:2}@media(max-width:720px){.hp-food-page .hp-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:9px}.hp-food-page .food-card-image{height:132px}.hp-food-page .hp-card__body{padding:9px}.hp-food-page .hp-card h2{font-size:15px;line-height:1.2}.hp-food-page .hp-card__translation{font-size:11px}.hp-food-page .hp-chip-row span{font-size:10px;padding:4px 6px}.hp-food-page .hp-card footer{display:grid;grid-template-columns:1fr;gap:5px;margin-top:9px}.hp-food-page .hp-card button{font-size:11px;padding:7px}.place-row{grid-template-columns:64px 1fr}.place-row img{width:64px;height:56px}}
.food-card-image{display:block;width:100%;height:180px;object-fit:cover;border-radius:14px 14px 0 0}.hp-food-card{padding:0;overflow:hidden}.hp-food-card .hp-card__body{padding:14px}.compact-copy{font-size:14px!important}.place-row{grid-template-columns:76px 1fr;grid-template-rows:auto auto auto;column-gap:10px;align-items:center}.place-row img{grid-row:1 / span 3;width:76px;height:64px;object-fit:cover;border-radius:10px}.place-row .place-row__type,.place-row strong,.place-row small{grid-column:2}@media(max-width:720px){.hp-food-page .hp-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:9px}.hp-food-page .food-card-image{height:132px}.hp-food-page .hp-card__body{padding:9px}.hp-food-page .hp-card h2{font-size:15px;line-height:1.2}.hp-food-page .hp-card__translation{font-size:11px}.hp-food-page .hp-chip-row span{font-size:10px;padding:4px 6px}.hp-food-page .hp-card footer{display:grid;grid-template-columns:1fr;gap:5px;margin-top:9px}.hp-food-page .hp-card button{font-size:11px;padding:7px}.map-layout{position:relative;display:block}.map-canvas{height:60dvh;min-height:420px}.nearby-list{display:flex;gap:10px;overflow-x:auto;margin-top:-116px;padding:10px 12px 18px;position:relative;z-index:500;scroll-snap-type:x mandatory}.place-row{flex:0 0 82%;grid-template-columns:86px 1fr;scroll-snap-align:center;box-shadow:0 8px 24px rgba(30,45,52,.18);background:rgba(255,255,255,.96);backdrop-filter:blur(10px)}.place-row img{width:86px;height:76px}.map-toolbar{overflow-x:auto;flex-wrap:nowrap}.map-toolbar button{white-space:nowrap}}
:root{}
.service-card{padding:0;overflow:hidden}.service-card__image{display:block;width:100%;height:150px;object-fit:cover}.service-card__body{padding:14px}.service-card__actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
@media(max-width:720px){body{overflow-x:hidden}.shell{overflow-x:hidden}.service-card__image{height:132px}.service-card__body{padding:11px}.service-card h2{font-size:17px;line-height:1.25}.service-card p{font-size:13px}.service-card__actions button{font-size:12px;padding:8px 10px}.hp-detail{width:100%;max-width:100%;overflow-wrap:anywhere}.detail-hero-image,.food-detail-image{width:100%;height:clamp(190px,48vw,300px);object-fit:cover}.hp-card footer,.hp-detail__actions{flex-wrap:wrap}.hp-card button,.hp-detail button{min-height:40px}.tabs button{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}
.attraction-card-image{display:block;width:100%;height:190px;object-fit:cover;border-radius:14px 14px 0 0}.hp-attraction-card{padding:0;overflow:hidden}.hp-attraction-card .hp-card__body{padding:14px}.detail-hero-image{display:block;width:100%;max-height:360px;object-fit:cover;border-radius:14px;margin-bottom:16px}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:24px}.section-heading h2{margin:.2rem 0}.notes-disclaimer{font-size:12px;color:#7a6d5a}.attraction-note{background:#fff;border:1px solid #e2e5df;border-radius:14px;padding:12px 14px;margin:10px 0}.note-top{display:flex;justify-content:space-between;gap:8px;font-size:13px}.note-top span{color:#6f7b7d;font-size:11px}.attraction-note p{margin:8px 0;line-height:1.5}.attraction-note small{color:#9a684d;font-size:10px;letter-spacing:.04em}.note-composer{background:#f1f5ef;padding:12px;border-radius:12px;margin-top:10px}.note-composer textarea{width:100%;min-height:90px;border:1px solid #d6dfd8;border-radius:10px;padding:10px;font:inherit}.note-composer form>div{display:flex;gap:8px;margin-top:8px}.note-composer small{display:block;margin-top:8px;color:#6f7b7d}

/* Default canvas: keep the web preview in a phone-sized App frame on wide screens. */
body{background:#e8e4db}
#app{width:390px;max-width:calc(100vw - 24px);margin:0 auto;min-height:100dvh;background:#f8f7f4;box-shadow:0 0 0 1px rgba(40,35,25,.08),0 16px 48px rgba(40,35,25,.12)}
.shell{width:390px;max-width:100%;margin:0 auto;min-height:100dvh;padding-left:14px;padding-right:14px}
.tabs{width:390px;max-width:100vw;left:50%;right:auto;transform:translateX(-50%)}
@media(max-width:414px){body{background:#f8f7f4}#app{width:100%;max-width:none;box-shadow:none}.tabs{width:100%}}

/* Compact two-column discovery grids inside the fixed phone canvas. */
.hp-food-page .hp-page__header,.hp-attractions-page .hp-page__header{padding:14px 0 16px}
.hp-food-page .hp-page__header h1,.hp-attractions-page .hp-page__header h1{font-size:25px;line-height:1.15}
.hp-food-page .hp-toolbar,.hp-attractions-page .hp-toolbar{display:grid;grid-template-columns:minmax(0,1fr) 124px;gap:7px;width:100%}
.hp-food-page .hp-toolbar input,.hp-food-page .hp-toolbar select,.hp-attractions-page .hp-toolbar input,.hp-attractions-page .hp-toolbar select{width:100%;min-width:0;max-width:100%;padding:9px 8px}
.hp-food-page .hp-grid,.hp-attractions-page .hp-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:9px}
.hp-food-card,.hp-attraction-card{min-width:0;border-radius:12px}
.hp-food-page .food-card-image,.hp-attractions-page .attraction-card-image{width:100%;height:138px;object-fit:cover;border-radius:12px 12px 0 0}
.hp-food-page .hp-card__body,.hp-attractions-page .hp-card__body{padding:9px}
.hp-food-page .hp-card__tag,.hp-attractions-page .hp-card__tag{font-size:8px;line-height:1.2}
.hp-food-page .hp-card h2,.hp-attractions-page .hp-card h2{margin:6px 0 3px;font-size:14px;line-height:1.22;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.hp-food-page .hp-card__translation,.hp-attractions-page .hp-card__translation{margin:0;font-size:10px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hp-attractions-page .hp-card__body>p:not(.hp-card__translation){display:none}
.hp-attractions-page .hp-card__facts{margin-top:6px;gap:4px;flex-wrap:nowrap;overflow:hidden}
.hp-attractions-page .hp-card__facts span{padding:3px 5px;font-size:9px;white-space:nowrap}
.hp-attractions-page .hp-card__facts span:first-child{display:none}
.hp-food-page .hp-chip-row{gap:4px;margin-top:6px;min-height:19px;overflow:hidden}
.hp-food-page .hp-chip-row span{font-size:9px;padding:3px 5px;white-space:nowrap}
.hp-food-page .hp-card footer,.hp-attractions-page .hp-card footer{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin-top:8px}
.hp-food-page .hp-card button,.hp-attractions-page .hp-card button{min-width:0;min-height:30px;padding:5px 3px;border-radius:7px;font-size:9px;line-height:1.1;white-space:nowrap}
@media(max-width:350px){.hp-food-page .hp-grid,.hp-attractions-page .hp-grid{gap:7px}.hp-food-page .food-card-image,.hp-attractions-page .attraction-card-image{height:118px}.hp-food-page .hp-card__body,.hp-attractions-page .hp-card__body{padding:7px}.hp-food-page .hp-card h2,.hp-attractions-page .hp-card h2{font-size:13px}}

/* The app canvas is always phone-sized, so Map and Services must not depend on the desktop viewport breakpoint. */
.map-page{width:100%;max-width:none;padding:0}
.map-page header h1{margin:5px 0;font-size:25px;line-height:1.15}
.map-status{margin:5px 0;font-size:11px;line-height:1.35;color:#687678}
.map-toolbar{margin:10px 0;gap:5px;overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none}
.map-toolbar button{flex:0 0 auto;padding:7px 9px;font-size:10px;white-space:nowrap}
.map-layout{display:block!important}
.map-canvas,.map-fallback{width:100%;height:400px;min-height:400px;border-radius:14px}
.nearby-list{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:none!important;margin:10px 0 0!important;padding:0 0 8px!important;overflow:visible!important}
.place-row{display:grid!important;grid-template-columns:54px minmax(0,1fr)!important;grid-template-rows:54px!important;align-items:center;gap:8px!important;min-width:0;padding:6px!important;border-radius:10px;box-shadow:none!important;background:#fff!important;text-align:left}
.place-row img{grid-column:1!important;grid-row:1!important;width:54px!important;height:54px!important;border-radius:7px;object-fit:cover}
.place-row>span{grid-column:2;display:grid;gap:4px;min-width:0}
.place-row strong{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;font-size:11px;line-height:1.2}
.place-row small{font-size:10px;color:#2d7366}

.services-page{padding:4px 0}
.services-page .hp-page__header{padding:14px 0 16px}
.services-page .hp-page__header h1{font-size:25px;line-height:1.15}
.services-page .hp-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:9px}
.service-card{display:block;min-width:0;padding:0!important;gap:0!important;overflow:hidden;border-radius:12px}
.service-card__image{display:block;width:100%;height:132px!important;object-fit:cover;border-radius:12px 12px 0 0}
.service-card__image--logo{object-fit:contain;background:#fff;padding:20px}
.service-card__body{padding:9px!important}
.service-card .hp-card__tag{font-size:8px}
.service-card h2{min-height:34px;margin:5px 0 3px;font-size:14px!important;line-height:1.2!important;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.service-card p{height:32px;margin:4px 0;font-size:10px!important;line-height:1.35;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.service-card__actions{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin-top:7px}
.service-card__actions button{width:auto!important;min-width:0;min-height:34px;padding:5px 4px!important;border-radius:7px;font-size:9px;line-height:1.15;white-space:normal;overflow-wrap:anywhere}

/* Seven-language selector remains legible without widening the fixed phone shell. */
.topbar>*{min-width:0}.brand{flex:1}.lang{flex:0 0 auto;width:126px;max-width:40%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:650;color:#173b36;cursor:pointer}
@media(max-width:350px){.lang{width:112px;max-width:38%;padding-left:7px;padding-right:5px;font-size:11px}.brand{font-size:14px}}

/* Detail media stays inside the fixed 390px app canvas at every viewport size. */
.hp-food-detail,.hp-attraction-detail{width:100%;max-width:100%;min-width:0;overflow:hidden}
.food-detail-image,.detail-hero-image{display:block;width:100%;max-width:100%;aspect-ratio:4/3;height:auto;max-height:none;object-fit:cover;object-position:center;border-radius:14px;margin:0 0 16px}
.hp-food-detail>* ,.hp-attraction-detail>*{max-width:100%}

/* Long translated labels must wrap inside the fixed phone canvas. */
.home{min-width:0}.home h1{font-size:36px;overflow-wrap:anywhere}.quick{grid-template-columns:repeat(2,minmax(0,1fr))}.quick button,.quick span{min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere}
.hp-discover-page,.hp-discover-page *{min-width:0;max-width:100%}.hp-discover-page button{white-space:normal;overflow-wrap:anywhere}.hp-quick-actions,.hp-mini-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.hp-callouts{display:grid;grid-template-columns:1fr;gap:8px}.hp-quick-actions button,.hp-callouts button,.hp-mini-card{width:100%}.hp-callouts button,.hp-mini-card{display:grid;gap:4px;text-align:left}.hp-section__head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.hp-section__head h2{flex:1}.hp-section__head button{flex:0 1 44%;text-align:right}

.food-load-sentinel{grid-column:1/-1;display:grid;place-items:center;height:54px}.food-load-sentinel span{width:24px;height:24px;border:3px solid #d9e8e1;border-top-color:#226457;border-radius:50%;animation:food-spin .8s linear infinite}@keyframes food-spin{to{transform:rotate(360deg)}}
.menu-translator{padding-top:8px}.menu-translator h1{font-size:30px;line-height:1.12}.menu-tool-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.menu-back{margin:0!important;padding:8px 11px!important}.menu-privacy{font-size:9px;color:#66756f;text-align:right}.menu-intro{font-size:14px;line-height:1.55;color:#65716f}.menu-capture{padding:10px;border:1px solid #d8e2dc;border-radius:14px;background:#fff}.menu-capture.is-dragging{border-color:#226457;background:#edf5f1}.menu-capture input[type=file]{display:none}.menu-capture__preview{position:relative;display:grid;place-items:center;gap:6px;min-height:210px;overflow:hidden;border:1px dashed #b9cbc2;border-radius:10px;background:#f3eee4;text-align:center}.menu-capture__preview img{display:block;width:100%;height:260px;object-fit:contain;background:#e9e1d4}.menu-capture__preview>[data-replace]{position:absolute;right:8px;bottom:8px;border:0;border-radius:8px;padding:8px 10px;background:rgba(255,255,255,.94);color:#226457;font-weight:700}.menu-camera-mark{display:grid;place-items:center;width:58px;height:58px;border-radius:18px;background:#226457;color:#fff;font-size:30px}.menu-capture__preview small{font-size:10px;color:#78837f}.menu-capture__actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:9px}.menu-action,.menu-reference{min-width:0;border:1px solid #cddbd4;border-radius:9px;padding:10px 6px;background:#edf5f1;color:#226457;font-weight:700}.menu-action--primary{border-color:#226457;background:#226457;color:#fff}.menu-reference{width:100%;margin-top:7px;background:#fff}.menu-how{margin:18px 0;padding:13px;border-radius:12px;background:#eef4f1}.menu-how h2,.menu-result h2{margin:0 0 10px;font-size:18px}.menu-how>div{display:flex;align-items:center;gap:10px;margin:8px 0;font-size:12px}.menu-how b{display:grid;flex:0 0 27px;place-items:center;width:27px;height:27px;border-radius:50%;background:#226457;color:#fff;font-size:10px}.menu-result{display:block}.menu-empty{padding:18px;border:1px dashed #ccd8d2;border-radius:10px;color:#68756f}.menu-dish{display:grid!important;grid-template-columns:auto 1fr;gap:3px 9px!important;margin:8px 0;padding:11px!important}.menu-dish>span,.menu-dish>small{font-size:9px;color:#8b9691}.menu-dish>strong,.menu-dish>h3{margin:0!important;font-size:14px!important}.menu-dish>p{grid-column:1/-1;margin:5px 0!important;font-size:11px!important}.menu-editorial-note{font-size:10px;color:#896846;line-height:1.5}
.feedback-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:22px 0}.feedback-summary>div{display:grid;gap:2px;padding:10px 6px;border:1px solid #dfe7e2;border-radius:10px;background:#fff;text-align:center}.feedback-summary b{font-size:20px;color:#226457}.feedback-summary span{font-size:9px;color:#6f7b77}.note-filters{display:flex;gap:6px;overflow-x:auto;margin:10px 0}.note-filters button{flex:0 0 auto;border:1px solid #d5dfda;border-radius:999px;padding:7px 10px;background:#fff;color:#53645f}.note-filters button.is-active{border-color:#226457;background:#226457;color:#fff}.note-kind{display:inline-block;margin-top:7px;padding:3px 7px;border-radius:999px;background:#eef5f1;color:#226457;font-size:9px}.note-fields{display:grid;grid-template-columns:1fr 1fr;gap:8px}.note-fields label{display:grid;gap:4px;font-size:10px;color:#66736e}.note-fields select{width:100%;min-width:0;padding:8px;border:1px solid #d6dfd8;border-radius:8px;background:#fff}
.map-layout{display:block!important}.nearby-list{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px!important;max-height:none!important;margin:10px 0 0!important;padding:0 0 18px!important;overflow:visible!important}.place-row{display:block!important;min-width:0!important;padding:0!important;overflow:hidden;border-radius:11px!important;background:#fff!important;box-shadow:none!important}.place-row img{display:block!important;width:100%!important;height:auto!important;aspect-ratio:1/1!important;object-fit:cover!important;border-radius:0!important}.place-row>span{display:grid!important;gap:3px!important;padding:8px!important}.place-row strong{font-size:11px!important;line-height:1.25!important}.place-row small{font-size:10px!important;color:#2d7366!important}

/* Goal 14: five compact, always-visible primary destinations. */
.tabs{z-index:1000;gap:4px;padding:7px 6px calc(7px + env(safe-area-inset-bottom))}
.tabs button{display:grid;flex:1 1 0;place-items:center;min-width:0;min-height:48px;padding:6px 4px;font-size:12px;font-weight:650;line-height:1.12;white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}
.tabs button:nth-child(3){background:#1f7a68;color:#fff;font-weight:800;box-shadow:0 5px 14px rgba(24,94,83,.22)}
.tabs button:nth-child(3).active{background:#15584e;color:#fff;box-shadow:inset 0 0 0 2px rgba(255,255,255,.32),0 5px 14px rgba(24,94,83,.28)}
.tabs button:not(:nth-child(3)).active{background:#e5f0eb;color:#15584e}
.hp-food-page .hp-page__header,.hp-attractions-page .hp-page__header,.community-page .hp-page__header,.services-page .hp-page__header{padding-top:4px}
.hp-page.hp-food-page{margin-top:-28px}
.hp-food-page .hp-page__header>p.hp-kicker,.hp-attractions-page .hp-page__header>p.hp-kicker{margin-top:0}

/* Menu Lens: show exactly what was found in the menu beside a comparable image. */
.menu-match-count{padding:8px 10px;border-radius:9px;background:#e8f2ed;color:#185e53;font-size:11px;font-weight:750}
.menu-match{display:block!important;padding:10px!important}
.menu-match__visuals{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.menu-match__visuals figure{min-width:0;margin:0}
.menu-match__visuals figcaption{margin-top:3px;color:#718083;font-size:8px;text-align:center}
.menu-match__visuals img,.menu-source-crop{display:block;width:100%;aspect-ratio:4/3;border-radius:8px;background:#f4edcf;object-fit:cover}
.menu-source-crop{background-image:url('./assets/food/menu-reference.jpg');background-repeat:no-repeat;background-size:650px auto}
.menu-match__copy{display:grid;grid-template-columns:auto 1fr;gap:3px 8px;margin-top:8px}
.menu-match__copy strong{color:#9b2b20;font-size:13px}
.menu-match__copy h3{font-size:13px!important}
.menu-match__copy p{grid-column:1/-1;font-size:10px!important;line-height:1.45}
.menu-photo-match,.menu-text-match{display:grid!important;grid-template-columns:42% minmax(0,1fr)!important;align-items:start;gap:9px!important}.menu-photo-match>figure{position:relative;min-width:0;margin:0;padding-top:25px}.menu-photo-match>figure img{display:block;width:100%;aspect-ratio:4/3;border-radius:0 0 8px 8px;object-fit:cover}.menu-photo-name{position:absolute;inset:0 0 auto;display:block;height:27px;padding:5px 7px;border-radius:8px 8px 0 0;background:#f4edcf;color:#8e281f;font-size:12px;font-weight:800;line-height:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.menu-photo-match .menu-match__copy,.menu-text-match .menu-match__copy{margin-top:0}.menu-photo-match .menu-match__copy h3,.menu-text-match .menu-match__copy h3{font-size:14px!important;line-height:1.25}.menu-photo-match .menu-match__copy p,.menu-text-match .menu-match__copy p{font-size:11px!important;line-height:1.5}.menu-text-match__visuals{display:grid;gap:5px}.menu-text-match__visuals figure{min-width:0;margin:0}.menu-text-match__visuals img{display:block;width:100%;border-radius:7px;object-fit:cover}.menu-text-match__visuals .menu-name-crop img{height:42px;object-fit:cover}.menu-text-match__visuals figure:not(.menu-name-crop) img,.menu-text-match__visuals .menu-image-missing{width:100%;aspect-ratio:4/3}.menu-image-missing{display:grid;place-items:center;border-radius:7px;background:#eee;color:#6c7571;font-size:9px;text-align:center}

/* Guide Market: two-column photo-first cards with exactly two summary lines. */
.market-page .community-feed{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.market-page .community-card>img{height:auto;aspect-ratio:1/1}
.market-page .community-card__body{padding:8px}
.market-page .community-card h2{height:33px;margin:5px 0 3px;font-size:13px;line-height:1.25;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.market-card__summary{height:30px;margin:3px 0 8px!important;font-size:10px!important;line-height:1.45!important;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.market-page .content-type{max-width:100%;padding:3px 5px;font-size:7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.market-page .community-card footer{display:grid;gap:4px}
.market-page .community-card footer button{width:100%}
.market-page .place-link{margin:0;font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.market-detail details{margin:12px 0;padding:10px;border:1px solid #dce7e3;border-radius:10px;background:#fff}
.market-detail summary{color:#185e53;font-weight:750;cursor:pointer}
.market-checklist{margin:14px 0;padding:12px;border-radius:12px;background:#edf5f1}
.market-checklist h2{margin:0;font-size:16px}.market-checklist li{margin:7px 0;font-size:13px}
.market-related{border:0;border-radius:9px;padding:9px 12px;background:#185e53;color:#fff}

/* Map is the permanent stage; the place sheet starts at one two-card row. */
.map-page{margin:-4px -14px 0;width:390px;max-width:calc(100% + 28px);height:calc(100dvh - 160px);min-height:560px;overflow:hidden}
.map-header{display:flex;align-items:center;justify-content:space-between;padding:4px 14px 0}
.map-header h1{margin:1px 0!important}.map-header [data-locate]{border:1px solid #cddbd4;border-radius:999px;padding:7px 10px;background:#fff;color:#185e53;font-size:10px}
.map-search{position:relative;z-index:600;display:flex;align-items:center;gap:6px;margin:6px 14px;padding:8px 10px;border:1px solid #d9e2dd;border-radius:12px;background:#fff;box-shadow:0 5px 18px rgba(25,48,42,.1)}
.map-search input{width:100%;min-width:0;border:0;outline:0;font:inherit;font-size:12px}
.map-page>.map-toolbar{position:absolute;z-index:600;margin:5px 14px}
.map-stage{position:relative;height:calc(100% - 86px);margin-top:2px;overflow:hidden}
.map-stage .map-canvas,.map-stage .map-fallback{width:100%;height:100%;min-height:0;border:0;border-radius:0}
.place-sheet{position:absolute;z-index:550;left:8px;right:8px;bottom:8px;height:116px;padding:4px 8px 10px;border-radius:16px 16px 12px 12px;background:rgba(248,247,244,.97);box-shadow:0 -8px 28px rgba(28,47,44,.2);backdrop-filter:blur(12px);transition:height .25s ease;overflow:hidden;touch-action:pan-y}
.place-sheet.is-expanded{height:50%;overflow:auto}
.place-sheet__handle{display:grid;width:100%;place-items:center;gap:2px;border:0;background:transparent;color:#526663;font-size:9px}
.place-sheet__handle i{display:block;width:38px;height:4px;border-radius:99px;background:#a9b7b2}
.place-sheet .map-status{display:none}
.place-sheet .nearby-list{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px!important;margin:0!important;padding:0 0 8px!important}
.place-sheet .place-row{display:grid!important;grid-template-rows:auto auto!important;overflow:hidden!important;border-radius:9px!important;background:#fff!important}
.place-row__open{display:grid;grid-template-columns:46px minmax(0,1fr);align-items:center;gap:6px;width:100%;min-width:0;padding:4px;border:0;background:#fff;text-align:left}
.place-row__open img{width:46px!important;height:46px!important;aspect-ratio:1!important;border-radius:6px!important;object-fit:cover!important}
.place-row__open span{display:grid;gap:2px;min-width:0}.place-row__open strong{font-size:9px;line-height:1.2}.place-row__open small{font-size:8px}
.place-row>a{display:block;padding:3px 5px;color:#185e53;font-size:8px;text-align:right;text-decoration:none}
.map-empty{grid-column:1/-1;text-align:center;font-size:11px}

.services-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.services-title-row>div{min-width:0}.services-title-row h1{margin-top:0}
.services-title-row>[data-saved]{flex:0 0 auto;border:1px solid #cddbd4;border-radius:999px;padding:8px;background:#fff;color:#185e53;font-size:9px}
.service-sources{display:grid;gap:6px;margin:14px 0;padding:12px;border:1px solid #dce6e0;border-radius:12px;background:#f4f8f6}
.service-sources p{margin:0;color:#68756f;font-size:11px}.service-sources a{color:#185e53;font-size:12px;font-weight:700}

/* Rounded, transparent local-save control shared by Food, Sights and Guides. */
.card-media{position:relative;display:block;width:100%;cursor:pointer;outline-offset:-3px}.card-heart{position:absolute!important;top:7px;right:7px;z-index:3;display:grid!important;place-items:center;width:32px!important;height:32px!important;min-width:32px!important;min-height:32px!important;padding:0!important;border:0!important;border-radius:50%!important;background:transparent!important;box-shadow:none!important}.card-heart svg{width:25px;height:25px;overflow:visible;fill:rgba(255,255,255,.12);stroke:#b32636;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 1px 1px #fff) drop-shadow(0 0 3px rgba(255,255,255,.95));transition:fill .15s ease,transform .15s ease}.card-heart.is-saved svg{fill:#b32636}.card-heart:active svg{transform:scale(.88)}.food-card-summary{height:43px;margin:7px 0 0!important;color:#536267;font-size:10px!important;line-height:1.4;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}.hp-food-page .hp-card footer,.hp-attractions-page .hp-card footer{grid-template-columns:1fr}.hp-food-page .hp-card footer button{font-size:10px}

/* Exact, non-generated poem excerpts; missing matches expose an optional online source search. */
.detail-poem{margin:22px 0 4px;padding:12px;border-left:3px solid #b32636;border-radius:0 10px 10px 0;background:#f7f0e8}.detail-poem .hp-kicker{margin:0 0 8px}.detail-poem blockquote{display:grid;gap:10px;margin:0;color:#4b342c;font-family:"Noto Serif SC","Songti SC",serif;font-size:14px;line-height:1.45}.detail-poem .poem-line{display:grid;gap:2px}.detail-poem .poem-line b{font-weight:600}.detail-poem .poem-line em{color:#70635c;font-family:Inter,system-ui,sans-serif;font-size:11px;font-style:normal;line-height:1.4}.detail-poem small{display:block;margin-top:9px;color:#7a6d65;font-size:9px;line-height:1.4}.detail-poem button{border:1px solid #cdbeb3;border-radius:9px;padding:8px 10px;background:#fff;color:#713c37}.detail-poem--empty p:not(.hp-kicker){margin:5px 0 9px;color:#68756f;font-size:12px}

/* Live Menu Lens results use the whole submitted menu beside a cited web image. */
.menu-live-match__visuals{display:grid;grid-template-columns:1fr 1fr;gap:7px}.menu-live-match__visuals figure{min-width:0;margin:0}.menu-live-match__visuals img,.menu-image-missing{display:grid;place-items:center;width:100%;aspect-ratio:4/3;border-radius:8px;background:#eee8df;object-fit:cover}.menu-live-match__visuals figcaption{margin-top:3px;color:#718083;font-size:8px;text-align:center}.menu-live-match .menu-match__copy a{grid-column:1/-1;color:#185e53;font-size:9px;font-weight:750}.menu-image-missing{padding:8px;color:#777;font-size:9px;text-align:center}

@media(max-width:350px){.tabs{gap:2px;padding-left:4px;padding-right:4px}.tabs button{padding-left:2px;padding-right:2px;font-size:11px}}

/* Goal 17: compact headings and fully clickable photo-first cards. */
.hp-attractions-page .hp-page__header{display:grid;gap:0;padding-bottom:14px!important}.hp-attractions-page .hp-page__header .hp-kicker{margin:0 0 3px;line-height:1.15}.hp-attractions-page .hp-page__header h1{margin:0 0 3px;font-size:25px;line-height:1.08}.hp-attractions-page .hp-page__header>p:not(.hp-kicker){margin:0;line-height:1.35}.hp-attractions-page .hp-toolbar{margin-top:12px}
.market-detail h1,.guide-detail h1{margin:8px 0 6px;font-size:25px!important;line-height:1.12!important;overflow-wrap:anywhere}
.market-card__image,.service-card__media{display:block;width:100%;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;cursor:pointer;overflow:hidden}.market-card__image img{display:block;width:100%;aspect-ratio:1/1;object-fit:cover}.service-card__media .service-card__image{display:block;width:100%}

/* In-app map direction is an explicit local visual estimate, never external routing. */
.place-row{position:relative}.place-row__open{padding-right:26px!important}.place-row__route{position:absolute;right:5px;bottom:6px;display:grid;place-items:center;width:22px;height:22px;padding:0!important;border:1px solid #c8d9d1;border-radius:50%;background:rgba(255,255,255,.94);color:#185e53;font-size:13px}.place-sheet.is-dragging{transition:none}.in-app-route{grid-column:1/-1;padding:11px;border-radius:11px;background:#fff}.in-app-route h2{margin:6px 0 8px;font-size:16px}.in-app-route>strong{display:block;font-size:13px}.in-app-route p{margin:5px 0;color:#185e53;font-size:12px;font-weight:750}.in-app-route small{display:block;color:#6f7b77;font-size:9px;line-height:1.4}.in-app-route button{margin-top:8px;border:0;border-radius:8px;padding:7px 9px;background:#edf5f1;color:#185e53;font-size:10px}.map-fallback__route{position:absolute;left:48%;top:45%;width:35%;border-top:4px dashed #b32636;transform:rotate(-24deg);transform-origin:left center}
.map-page{max-width:none!important}.map-stage{width:100%}

/* Goal 18: align the four section introductions with Food, reduce Help thumbnails,
   and keep the first Map card row visibly above the sheet clip. */
.hp-food-page .hp-page__header,.hp-attractions-page .hp-page__header,.community-page .hp-page__header,.services-page .hp-page__header{display:grid;gap:0;padding-top:4px!important;padding-bottom:14px!important}
.hp-food-page .hp-page__header .hp-kicker,.hp-attractions-page .hp-page__header .hp-kicker,.community-page .hp-page__header .hp-kicker,.services-page .hp-page__header .hp-kicker{margin:0 0 3px!important;line-height:1.15!important}
.hp-food-page .hp-page__header h1,.hp-attractions-page .hp-page__header h1,.community-page .hp-page__header h1,.services-page .hp-page__header h1{margin:0 0 4px!important;font-size:25px!important;line-height:1.08!important}
.hp-food-page .hp-page__header>p:not(.hp-kicker),.hp-attractions-page .hp-page__header>p:not(.hp-kicker),.community-page .hp-page__header>p:not(.hp-kicker),.services-page .hp-page__header>p:not(.hp-kicker){margin:0!important;font-size:14px!important;line-height:1.35!important}
.services-title-row{align-items:start}.services-title-row>div{display:grid;gap:0}.services-title-row>div>p{margin:0!important;font-size:14px!important;line-height:1.35!important}
.service-card__media{height:108px!important;border-radius:12px 12px 0 0!important;background:#ece9df!important}.service-card__media .service-card__image{height:108px!important;object-fit:cover!important;border-radius:12px 12px 0 0!important}.service-card__media .service-card__image--logo{object-fit:contain!important;background:#fff!important;padding:17px!important}

/* Goal 22: one stable card ratio; keep wide brand marks fully visible. */
.service-card__media{
  display:grid!important;
  place-items:center;
  width:100%!important;
  height:auto!important;
  aspect-ratio:4/3;
  overflow:hidden;
  background:#fff!important;
}
.service-card__media .service-card__image{
  display:block;
  width:100%!important;
  height:100%!important;
  padding:0!important;
  object-fit:cover!important;
  object-position:center;
}
.service-card__media .service-card__image--logo{
  width:calc(100% - 20px)!important;
  height:calc(100% - 20px)!important;
  padding:0!important;
  object-fit:contain!important;
  object-position:center;
  border-radius:0!important;
  background:#fff!important;
}
.place-sheet{height:132px!important}.place-sheet.is-expanded{height:50%!important}.place-sheet .nearby-list{visibility:visible!important;opacity:1!important;margin-top:2px!important}.place-sheet .place-row,.place-sheet .place-row__open,.place-sheet .place-row__route{visibility:visible!important;opacity:1!important}.place-sheet .place-row__open{min-height:62px!important}.place-sheet__handle{min-height:30px!important}
.place-sheet .place-row{grid-template-columns:minmax(0,1fr)!important;grid-template-rows:auto!important}.place-sheet .place-row__open{grid-column:1!important;grid-row:1!important;width:100%!important;padding:5px!important}.place-sheet .place-row__open span{grid-column:2!important;width:auto!important;min-width:0!important}.place-sheet .place-row__open strong{display:-webkit-box!important;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;font-size:10px!important;line-height:1.15!important}.place-sheet .place-row__open small{padding-right:25px;font-size:9px!important;white-space:nowrap}.place-sheet .place-row__route{grid-column:auto!important;grid-row:auto!important}

/* Goal 23: keep the complete map stage between the header and tab bar. */
@media(max-width:720px){
  body:has(.map-page) .shell{
    display:flex;
    flex-direction:column;
    height:100dvh;
    min-height:0;
    padding-bottom:calc(68px + env(safe-area-inset-bottom));
    overflow:hidden;
  }
  body:has(.map-page) .topbar{flex:0 0 auto}
  body:has(.map-page) #view{flex:1;min-height:0}
  .map-page{
    position:relative;
    isolation:isolate;
    display:flex;
    flex-direction:column;
    height:100%!important;
    min-height:0!important;
    max-height:100%!important;
  }
  .map-page .map-stage{
    flex:1 1 auto;
    height:auto!important;
    min-height:0;
  }
  .tabs{z-index:1000}
}

/* Goal 24: the four content home pages share Food's heading scale and rhythm. */
@media(max-width:720px){
  :is(.hp-food-page,.hp-attractions-page,.community-page,.services-page){
    width:100%;
    margin-top:-28px;
    padding:4px 0;
  }
  :is(.hp-food-page,.hp-attractions-page,.community-page,.services-page)>.hp-page__header{
    display:grid;
    gap:0;
    width:100%;
    padding:4px 0 14px!important;
  }
  :is(.hp-food-page,.hp-attractions-page,.community-page,.services-page)>.hp-page__header .hp-kicker{
    margin:0 0 3px!important;
    font-size:11px!important;
    font-weight:800;
    line-height:1.15!important;
    letter-spacing:.14em;
  }
  :is(.hp-food-page,.hp-attractions-page,.community-page,.services-page)>.hp-page__header h1{
    margin:0 0 4px!important;
    font-size:25px!important;
    font-weight:800!important;
    line-height:1.08!important;
    letter-spacing:-.02em;
  }
  :is(.hp-food-page,.hp-attractions-page,.community-page,.services-page)>.hp-page__header p:not(.hp-kicker),
  .services-title-row>div>p{
    max-width:none;
    margin:0!important;
    color:#66747b;
    font-size:14px!important;
    line-height:1.35!important;
  }
  .services-title-row{width:100%}
}

/* Goal 25: the app shell is always phone-sized, even in a wide preview. */
:is(.hp-food-page,.hp-attractions-page,.community-page,.services-page){
  width:100%;
  margin-top:-28px;
  padding:4px 0;
}
:is(.hp-food-page,.hp-attractions-page,.community-page,.services-page)>.hp-page__header{
  display:grid;
  gap:0;
  width:100%;
  padding:4px 0 14px!important;
}
:is(.hp-food-page,.hp-attractions-page,.community-page,.services-page)>.hp-page__header .hp-kicker{
  margin:0 0 3px!important;
  font-size:11px!important;
  font-weight:800;
  line-height:1.15!important;
  letter-spacing:.14em;
}
:is(.hp-food-page,.hp-attractions-page,.community-page,.services-page)>.hp-page__header h1{
  margin:0 0 4px!important;
  font-size:25px!important;
  font-weight:800!important;
  line-height:1.08!important;
  letter-spacing:-.02em;
}
:is(.hp-food-page,.hp-attractions-page,.community-page,.services-page)>.hp-page__header p:not(.hp-kicker),
.services-title-row>div>p{
  max-width:none;
  margin:0!important;
  color:#66747b;
  font-size:14px!important;
  line-height:1.35!important;
}
.services-title-row{position:relative;width:100%}
.services-title-row>div{width:100%}
.services-title-row h1{padding-right:82px}
.services-title-row>[data-saved]{position:absolute;top:0;right:0}

/* Goal 26: local flag menu, compact Shanghai brand, and tighter Food controls. */
.topbar{overflow:visible}
.brand{display:flex;align-items:center;gap:8px;min-width:0}
.brand-mark{display:block;flex:0 0 auto;width:34px;height:34px;border-radius:9px}
.brand>div{display:grid;min-width:0}
.brand strong{font-size:19px;line-height:1.1;white-space:nowrap}
.brand small{margin-top:2px;white-space:nowrap}
.language-picker{position:relative;z-index:1200;flex:0 0 auto}
.language-picker .lang{display:grid;grid-template-columns:23px minmax(0,1fr) auto;align-items:center;gap:7px;min-width:142px;height:42px;padding:7px 10px;border:1px solid #d7ddd6;border-radius:999px;background:#fff;color:#17252b;font:inherit;font-size:12px;font-weight:700;text-align:left;cursor:pointer}
.language-picker .lang img,.language-option img{display:block;width:23px;height:16px;border:1px solid rgba(23,37,43,.14);border-radius:2px;object-fit:cover}
.language-picker .lang i{font-size:15px;font-style:normal}
.language-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:1300;display:grid;width:180px;padding:6px;border:1px solid #d7ddd6;border-radius:14px;background:#fff;box-shadow:0 12px 32px rgba(23,37,43,.18)}
.language-menu[hidden]{display:none}
.language-option{display:grid;grid-template-columns:23px 1fr auto;align-items:center;gap:8px;width:100%;min-height:37px;padding:7px 8px;border:0;border-radius:9px;background:#fff;color:#17252b;font:inherit;font-size:12px;text-align:left;cursor:pointer}
.language-option:hover,.language-option.is-selected{background:#edf5f1;color:#185e53}
.language-option b{color:#185e53}
.hp-page>.hp-kicker,
.hp-page>.hp-page__header>.hp-kicker,
.hp-page>.hp-hero>.hp-kicker,
.map-header .eyebrow{display:none}
.hp-food-page .food-scan-entry{margin:12px 0 0}
.hp-food-page .hp-toolbar{margin-top:10px}
.map-canvas .maplibregl-canvas,.map-canvas .maplibregl-map{width:100%;height:100%}
.map-canvas .maplibregl-ctrl-top-left{top:8px;left:6px}
.map-canvas .maplibregl-ctrl-attrib{font-size:8px}
@media(max-width:380px){
  .brand{gap:6px}.brand-mark{width:30px;height:30px}.brand strong{font-size:17px}.brand small{font-size:9px}.language-picker .lang{min-width:126px;padding:6px 8px}.language-picker .lang span{max-width:70px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
}
/* Map sheet interaction polish: mouse and touch can both expand the panel. */
.place-sheet{height:150px!important;overflow:hidden!important;touch-action:none!important}
.place-sheet.is-expanded{height:min(58%,520px)!important;max-height:calc(100% - 18px)!important;overflow-y:auto!important;overscroll-behavior:contain}
.place-sheet__handle{position:relative;z-index:2;min-height:42px!important;padding:5px 4px!important;cursor:grab;touch-action:none!important}
.place-sheet__handle:active{cursor:grabbing}
.place-sheet__handle span{font-size:10px!important}
/* Local comment threads for attraction reviews and field notes. */
.note-comments{margin-top:10px;padding-top:8px;border-top:1px solid #ece6df}.note-comments h3{margin:0 0 6px;font-size:12px;color:#185e53}.note-comments h3 span{font-weight:500;color:#7b8782}.note-comment{margin:5px 0;padding:6px 8px;border-radius:8px;background:#f6f8f5;font-size:11px!important;line-height:1.4}.note-comment strong{color:#185e53}.note-comment small{display:inline;color:#7b8782;font-size:8px}.note-comments form{display:grid;gap:5px;margin-top:7px}.note-comments textarea{width:100%;min-height:42px;padding:7px;border:1px solid #d8e1db;border-radius:8px;resize:vertical;font:inherit;font-size:11px}.note-comments button{justify-self:start;border:1px solid #b9d0c6;border-radius:8px;padding:5px 8px;background:#edf5f1;color:#185e53;font-size:10px}.note-comments form>small{color:#7b8782;font-size:8px}
.post-detail__body p{margin:0 0 1rem;font-size:1.05rem;line-height:1.72}.post-detail__body p:last-child{margin-bottom:0}
