/* Shared content structure; phone tokens follow home-mobile.css, desktop keeps its shell. */
.ll-page { max-width: 960px; margin: 0 auto; padding: 28px 0 40px; }
.ll-page [hidden] { display: none !important; }
.ll-page :is(a,button,input,textarea) { min-width: 0; }
.ll-page :is(a,button):focus-visible { outline: 2px solid var(--lake); outline-offset: 3px; }
.ll-page h1,.ll-page h2,.ll-page p { margin: 0; }
.ll-back { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; color: var(--lake); margin-bottom: 12px; font-size: 14px; }
.ll-back .icon { width: 18px; height: 18px; }
.ll-heading { margin-bottom: 22px; }
.ll-eyebrow { color: var(--lake); font-size: 12px; line-height: 1.5; }
.ll-heading h1 { font-family: var(--serif); font-size: 34px; line-height: 1.35; font-weight: 600; margin: 8px 0 10px; }
.ll-heading > p:last-child { font-size: 14px; color: var(--muted); line-height: 1.7; }
.ll-search { display: flex; align-items: center; gap: 8px; min-height: 48px; background: #f6f8f7; border: 1px solid #2a656633; border-radius: 24px; padding: 0 6px 0 14px; }
.ll-search:focus-within { border-color: var(--lake); box-shadow: 0 0 0 3px #2a65660d; }
.ll-search > .icon { width: 18px; height: 18px; color: var(--lake); flex: none; }
.ll-search input { border: 0; background: transparent; box-shadow: none; width: 100%; flex: 1; padding: 10px 0; font-size: 16px; outline: none; }
.ll-search input:focus { box-shadow: none; outline: none; }
.ll-search button { min-height: 44px; padding: 0 10px; border-radius: 22px; color: var(--lake); background: transparent; font-size: 13px; flex: none; }
.ll-section-heading { display: flex; justify-content: space-between; align-items: center; gap: 12px; min-height: 44px; margin: 20px 0 10px; }
.ll-section-heading h2 { font-size: 20px; font-weight: 600; line-height: 1.5; }
.ll-section-heading > span { font-size: 12px; color: var(--muted); flex: none; }
.ll-food-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); align-items: start; gap: 20px; }
.m-post-card:has(.m-post-image-label) { position: relative; }
.m-post-image-label { position: absolute; top: 9px; right: 8px; background: #ffffffde; color: #3b5155; border-radius: 5px; padding: 2px 5px; font-size: 9px; line-height: 1.6; }
html[data-ui="desktop"] .ll-food-feed .m-post-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; align-items: start; }
html[data-ui="desktop"] .ll-food-feed .m-post-column { display: flex; flex-direction: column; gap: 20px; min-width: 0; }
html[data-ui="desktop"] .ll-food-feed .m-post-card { display: block; background: var(--surface); border: 1px solid var(--line); border-radius: 14px; overflow: hidden; }
html[data-ui="desktop"] .ll-food-feed .m-post-card > img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 4; object-fit: cover; }
html[data-ui="desktop"] .ll-food-feed .m-post-caption { padding: 14px; }
html[data-ui="desktop"] .ll-food-feed .m-post-caption h2 { font-size: 19px; line-height: 1.6; font-weight: 600; margin-bottom: 10px; }
html[data-ui="desktop"] .ll-food-feed .m-post-author { display: flex; gap: 8px; align-items: center; font-size: 13px; color: var(--muted); }
html[data-ui="desktop"] .ll-food-feed .m-post-avatar { width: 28px; height: 28px; border-radius: 50%; overflow: hidden; display: grid; place-items: center; background: var(--lake-soft); }
.ll-food-card { overflow: hidden; border: 1px solid #edece6; border-radius: 16px; background: #faf9f6; min-width: 0; }
.ll-card-read { display: block; padding: 7px 7px 0; }
.ll-photo { position: relative; overflow: hidden; border-radius: 10px; aspect-ratio: 4 / 3; background: var(--lake-soft); }
.ll-photo > img { width: 100%; height: 100%; object-fit: cover; display: block; position: relative; }
.ll-photo-fallback { position: absolute; inset: 0; display: grid; place-items: center; color: var(--lake); }
.ll-photo-fallback .icon { width: 36px; height: 36px; stroke-width: 1.3; }
.ll-photo > small,.ll-housing-hero > small { position: absolute; bottom: 8px; right: 8px; padding: 2px 6px; border-radius: 5px; background: #ffffffde; color: #3b5155; font-size: 10px; line-height: 1.6; }
.ll-food-copy { padding: 13px 9px 0; }
.ll-demo { display: inline-flex; align-items: center; border: 1px solid #2a656629; padding: 2px 6px; border-radius: 5px; font-size: 10px; line-height: 1.5; color: var(--lake); background: #ffffffd9; margin-bottom: 8px; }
.ll-food-copy h2 { font-size: 19px; font-weight: 600; line-height: 1.5; margin: 5px 0 8px; overflow-wrap: anywhere; }
.ll-excerpt { font-size: 13px; line-height: 1.7; color: var(--muted); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ll-food-footer { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 6px 16px; margin-top: 12px; border-top: 1px solid var(--line); }
.ll-food-footer > span { font-size: 12px; color: var(--ink-2); overflow-wrap: anywhere; }
.ll-shop-link,.ll-text-link { display: inline-flex; align-items: center; gap: 5px; min-height: 44px; color: var(--lake); font-size: 13px; flex: none; }
.ll-shop-link .icon,.ll-text-link .icon { width: 15px; height: 15px; }
.ll-empty { padding: 36px 20px; text-align: center; background: var(--surface); border: 1px solid var(--line); border-radius: 14px; margin-top: 16px; }
.ll-empty > .icon { color: var(--lake); width: 28px; height: 28px; }
.ll-empty h2 { font-size: 20px; font-weight: 600; margin: 12px 0 8px; }
.ll-empty p { color: var(--muted); font-size: 14px; line-height: 1.8; }
.ll-empty :is(a,button) { margin-top: 16px; }
.ll-detail { max-width: 760px; }
.ll-detail-photo { border-radius: 16px; aspect-ratio: 16 / 10; }
.ll-detail-copy { padding: 22px 0; }
.ll-detail-copy h1 { font-size: 30px; font-weight: 600; line-height: 1.4; margin: 8px 0 14px; overflow-wrap: anywhere; }
.ll-byline { font-size: 12px; color: var(--muted); margin: 12px 0 20px !important; }
.ll-prose { white-space: pre-wrap; font-size: 16px; line-height: 1.9; overflow-wrap: anywhere; }
.ll-merchant { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; border: 1px solid #edece6; background: #faf9f6; border-radius: 14px; padding: 18px; margin: 28px 0; }
.ll-symbol { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 14px; background: #d0e5d8; color: #426958; flex: none; }
.ll-merchant > div { flex: 1; min-width: 150px; }
.ll-merchant small,.ll-contact p { color: var(--muted); font-size: 12px; }
.ll-merchant h2,.ll-contact h2 { font-size: 18px; font-weight: 600; }
.ll-merchant p { font-size: 12px; color: var(--muted); margin-top: 4px; }
.ll-housing-hero { position: relative; overflow: hidden; border-radius: 16px; min-height: 230px; margin-bottom: 18px; background: #f1eee4; color: #0f2a30; }
.ll-housing-hero .ll-eyebrow { color: #2a6566; }
.ll-housing-hero > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 65% 50%; }
.ll-housing-hero > div { position: relative; padding: 28px; max-width: 72%; }
.ll-housing-hero h1 { font-family: var(--serif); font-size: 34px; line-height: 1.3; font-weight: 600; margin: 14px 0 10px; }
.ll-housing-hero div > p:last-child { font-size: 14px; color: #3b5155; }
.ll-tabs { display: flex; border-bottom: 1px solid var(--line); gap: 20px; margin: 0 0 18px; }
.ll-tabs a { display: flex; align-items: center; justify-content: center; min-height: 48px; padding: 8px 2px; border-bottom: 2px solid transparent; font-size: 16px; color: var(--muted); text-align: center; line-height: 1.5; }
.ll-tabs a[aria-current] { color: var(--lake); border-bottom-color: var(--lake); font-weight: 600; }
.ll-tabs a:last-child { margin-left: auto; font-size: 13px; }
.ll-publish-actions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; margin-bottom: 18px; }
.ll-publish-actions a { display: flex; gap: 8px; align-items: center; padding: 12px; min-height: 52px; border: 1px solid #edece6; border-radius: 14px; background: #faf9f6; color: var(--lake); font-size: 14px; line-height: 1.5; }
.ll-publish-actions .icon { width: 19px; height: 19px; flex: none; }
.ll-publish-actions .icon:last-child { margin-left: auto; width: 15px; }
.ll-tab-intro { font-size: 13px; line-height: 1.6; color: var(--muted); margin-bottom: 12px !important; }
.ll-housing-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.ll-house-card { min-width: 0; border: 1px solid #edece6; border-radius: 14px; overflow: hidden; background: #faf9f6; }
.ll-house-image { display: block; padding: 7px 7px 0; }
.ll-house-image .ll-photo { aspect-ratio: 2 / 1; }
.ll-house-copy { padding: 14px; }
.ll-house-labels { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 6px; }
.ll-house-labels .ll-demo { margin: 0; }
.ll-house-title { display: block; min-height: 44px; }
.ll-house-title h2 { font-size: 20px; font-weight: 600; line-height: 1.5; overflow-wrap: anywhere; }
.ll-house-facts { color: var(--ink-2); font-size: 13px; line-height: 1.7; margin: 6px 0 8px !important; overflow-wrap: anywhere; }
.ll-house-bottom { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-top: 12px; }
.ll-rent { font-family: var(--num); color: var(--lake); font-size: 24px; font-weight: 600; line-height: 1.5; }
.ll-rent small { font-family: var(--sans); font-size: 12px; font-weight: 400; color: var(--muted); margin-left: 6px; }
.ll-status { font-size: 12px; color: var(--ink-2); margin-left: auto; }
.ll-caption { font-size: 12px; line-height: 1.7; color: var(--muted); }
.ll-own-actions { display: flex; align-items: start; gap: 16px; border-top: 1px solid var(--line); margin-top: 10px; }
.ll-own-actions :is(a,button) { display: inline-flex; align-items: center; min-height: 44px; color: var(--lake); font-size: 13px; background: transparent; padding: 0; }
.ll-own-actions form { flex: 1; }
.ll-contact { margin-top: 24px; padding: 18px; border: 1px solid #edece6; border-radius: 14px; background: #faf9f6; }
.ll-contact p { font-size: 16px; margin: 12px 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.ll-contact small { display: block; margin-top: 14px; color: var(--muted); line-height: 1.8; font-size: 12px; }
.ll-form { display: grid; gap: 18px; max-width: 700px; }
.ll-field { display: grid; gap: 7px; min-width: 0; font-size: 14px; line-height: 1.5; }
.ll-field > span { font-weight: 500; }
.ll-field :is(input,textarea) { width: 100%; padding: 12px; min-height: 48px; border: 1px solid var(--line-strong); border-radius: 10px; font-size: 16px; background: var(--surface); }
.ll-field :is(input,textarea):focus { outline: 2px solid var(--lake); outline-offset: 2px; }
.ll-field input[type=file] { font-size: 13px; }
.ll-field small { color: var(--muted); font-size: 12px; line-height: 1.7; }
.ll-form-pair { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; align-items: start; }
.ll-form-pair .ll-field > span { min-height: 42px; }
.ll-english summary { display: flex; align-items: center; min-height: 44px; cursor: pointer; color: var(--lake); font-size: 14px; }
.ll-english .ll-field { margin-top: 14px; }
.ll-consent { display: flex; align-items: start; gap: 10px; padding: 10px 0; min-height: 44px; font-size: 13px; line-height: 1.7; }
.ll-consent input { width: 20px; height: 20px; margin: 2px 0 0; flex: none; accent-color: var(--lake); }
.ll-submit { width: 100%; min-height: 48px; }
html[data-ui="desktop"][data-city-theme="night"] :is(.ll-food-card,.ll-house-card,.ll-merchant,.ll-contact,.ll-publish-actions a,.ll-search) { background: var(--surface); border-color: var(--line-strong); }
html[data-ui="desktop"][data-city-theme="night"] .ll-demo { background: var(--lake-soft); border-color: var(--line-strong); }
html[data-ui="mobile"] .m-app:is([data-route="food"],[data-route="housing"]) { background: var(--surface); }
html[data-ui="mobile"] .m-app:is([data-route="food"],[data-route="housing"]) .m-header { background: var(--surface); backdrop-filter: none; }
html[data-ui="mobile"] .ll-page { padding-top: 16px; }
html[data-ui="mobile"] .ll-heading h1 { font-size: 27px; }
html[data-ui="mobile"] .ll-heading > p:last-child { font-size: 13px; }
html[data-ui="mobile"] .ll-food-grid { gap: 12px; }
html[data-ui="mobile"] .ll-food-copy { padding: 10px 4px 0; }
html[data-ui="mobile"] .ll-food-copy h2 { font-size: 15px; line-height: 1.55; margin-bottom: 6px; }
html[data-ui="mobile"] .ll-food-copy .ll-eyebrow { font-size: 11px; }
html[data-ui="mobile"] .ll-food-copy .ll-excerpt { font-size: 12px; }
html[data-ui="mobile"] .ll-food-footer { padding: 2px 10px; gap: 5px; margin-top: 8px; }
html[data-ui="mobile"] .ll-food-footer > span { font-size: 11px; }
html[data-ui="mobile"] .ll-shop-link { font-size: 11px; }
html[data-ui="mobile"] .ll-photo > small { font-size: 9px; bottom: 5px; right: 5px; }
html[data-ui="mobile"] .ll-detail-copy h1 { font-size: 26px; }
html[data-ui="mobile"] .ll-prose { font-size: 15px; }
html[data-ui="mobile"] .ll-merchant { padding: 14px; }
html[data-ui="mobile"] .ll-merchant > .button { width: 100%; }
html[data-ui="mobile"] .ll-housing-hero { min-height: 188px; }
html[data-ui="mobile"] .ll-housing-hero > div { max-width: 78%; padding: 22px 18px; }
html[data-ui="mobile"] .ll-housing-hero h1 { font-size: 27px; margin: 14px 0 8px; }
html[data-ui="mobile"] .ll-housing-hero div > p:last-child { font-size: 12px; }
html[data-ui="mobile"] .ll-housing-hero .ll-eyebrow { font-size: 11px; }
html[data-ui="mobile"] .ll-tabs { gap: 20px; }
html[data-ui="mobile"] .ll-tabs a { font-size: 15px; }
html[data-ui="mobile"] .ll-tabs a:last-child { font-size: 12px; }
html[data-ui="mobile"] .ll-housing-list { grid-template-columns: 1fr; gap: 16px; }
html[data-ui="mobile"] .ll-house-title h2 { font-size: 19px; }
html[data-ui="mobile"] .ll-empty h2 { font-size: 18px; }
@media(max-width:350px) {
  html[data-ui="mobile"] .ll-food-grid { gap: 10px; }
  html[data-ui="mobile"] .ll-food-footer { flex-wrap: wrap; gap: 0; }
  html[data-ui="mobile"] .ll-food-footer > span { flex: 1 0 100%; padding-top: 6px; }
  html[data-ui="mobile"] .ll-shop-link { margin-left: auto; }
  html[data-ui="mobile"] .ll-tabs { gap: 12px; }
  html[data-ui="mobile"] .ll-publish-actions { gap: 10px; }
  html[data-ui="mobile"] .ll-publish-actions a { padding: 10px; gap: 6px; font-size: 13px; }
}
