/* Homepage only: the body class is removed on every other route. */
body.home-warm-preview { color-scheme: light; --bg:var(--home-bg); --surface:var(--home-surface); --surface-raised:var(--home-raised); --text:var(--home-text); --muted:var(--home-muted); --line:var(--home-line); --copper:var(--home-accent); --focus-color:var(--home-accent); }
.home-warm-preview .brand-link { --copper:var(--home-gold); }
.home-warm-preview .site-header { background:var(--home-header); height:auto; }
.home-warm-preview .header-actions .icon-button { min-width:var(--touch-target); min-height:var(--touch-target); width:var(--touch-target); height:var(--touch-target); }
.home-warm-preview .header-actions .header-user { width:auto; flex-basis:auto; }
.home-warm-preview .header-inner { min-height:96px; }
.home-warm-preview .button-primary { background:var(--copper); border-color:var(--copper); color:#fff; }
.home-warm-preview .button-primary:hover { background:var(--home-hover); border-color:var(--home-hover); color:#fff; }
.home-warm-preview :is(a,button,input,textarea):focus-visible { outline:2px solid var(--focus-color); outline-offset:4px; }
.home-warm-preview .button { min-height:var(--touch-target); }
.home-warm-preview .button-ghost { background:var(--surface); border-color:#b59a83; }
.home-warm-preview .button-ghost:hover { background:var(--surface-raised); border-color:var(--copper); }
.home-warm-preview .header-cta { background:var(--surface-raised); border-color:var(--line); }
.home-warm-preview .text-link { color:var(--copper); min-height:var(--touch-target); text-decoration:underline; text-underline-offset:5px; }
.home-warm-preview .text-link:hover { color:var(--home-hover); }
.home-warm-preview .eyebrow { color:var(--home-copper); }
.home-warm-preview :is(.card-cuisine,.text-button,.rating,.empty-star,.rating-filled) { color:var(--copper); }
.home-warm-preview .count { background:var(--copper); color:#fff; }
/* Full-bleed canvas: breathing room belongs inside the photograph, not outside it. */
.home-warm-preview .hero.home-hero { position:relative; isolation:isolate; display:flex; flex-direction:row; justify-content:flex-start; align-items:center; width:100%; min-height:600px; height:min(50vw,960px); max-width:none; margin-inline:0; padding-block:var(--space-12); background:#201109; overflow:hidden; }
.home-warm-preview .hero::before { display:none; }
/* Copy is anchored to the artwork's left clear zone, not the centred page container. */
.home-warm-preview .hero-copy { position:relative; z-index:2; width:29.5%; max-width:550px; min-width:0; padding:0; margin-left:5%; color:#fff; }
.home-warm-preview .hero h1 { font-size:clamp(38px,4vw,76px); line-height:1.5; margin-block:var(--space-4) var(--space-6); }
.home-warm-preview .hero h1 em { color:#f3ce99; }
.home-warm-preview .hero p { color:#f4e9dc; font-size:clamp(16px,1.35vw,24px); line-height:1.85; max-width:550px; }
.home-warm-preview .hero .eyebrow { color:#f3ce99; }
.home-warm-preview .hero .button-primary { background:#f3ce99; border-color:#f3ce99; color:#3f2b23; }
.home-warm-preview .hero .button-primary:hover { background:#ffe0b2; border-color:#ffe0b2; }
.home-warm-preview .hero .button-ghost { background:#241309c9; border-color:#d5b58a; color:#fff; }
.home-warm-preview .hero :is(a,button):focus-visible { outline-color:#fff; }
.home-warm-preview .hero-buttons { gap:var(--space-4); margin-top:var(--space-8); }
.home-warm-preview .hero-buttons .button { flex:0 0 auto; white-space:nowrap; padding-inline:var(--space-6); }
.home-warm-preview .hero .home-service-note { font-size:var(--font-size-caption); margin-top:var(--space-4); }
.home-warm-preview .home-hero-visual { position:absolute; inset:0; margin:0; z-index:0; }
.home-warm-preview .home-hero-visual::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,#100904d9 0%,#10090480 30%,transparent 49%); pointer-events:none; }
.home-warm-preview .hero-image { position:absolute; inset:0; display:block; width:100%; height:100%; aspect-ratio:auto; object-fit:cover; object-position:65% center; border-radius:0; }
.home-warm-preview .home-hero-visual figcaption { position:absolute; right:var(--space-4); bottom:var(--space-3); z-index:1; padding:var(--space-1) var(--space-2); background:#100904cf; font-size:var(--font-size-caption); line-height:1.5; color:#f4e9dc; }
/* Independent lettering avoids baking display text into the bowl crop. */
.home-warm-preview .home-noodle-lettering { position:absolute; left:35%; top:14%; width:12.5%; display:grid; grid-template-columns:60% 22%; column-gap:18%; align-items:start; }
/* Separate complete glyphs give deterministic spacing; subtitle stays real text. */
.home-warm-preview .noodle-calligraphy { display:flex; flex-direction:column; gap:clamp(12px,1.4vw,24px); }
.home-warm-preview .noodle-calligraphy img,.home-warm-preview .noodle-seal { display:block; width:100%; height:auto; }
/* Render existing complete strokes in a softer antique gold without regenerating glyphs. */
.home-warm-preview .noodle-calligraphy img { filter:saturate(.48) brightness(1.12); }
.home-warm-preview .noodle-side-column { padding-top:clamp(32px,4vw,64px); display:flex; flex-direction:column; align-items:center; gap:var(--space-4); }
.home-warm-preview .noodle-subtitle { writing-mode:vertical-rl; text-orientation:upright; color:#edcf96; font:400 clamp(14px,1.1vw,18px)/1.4 "Songti SC","SimSun",serif; letter-spacing:.22em; white-space:nowrap; }
.home-warm-preview .hero-image[hidden] { display:none; }
.home-warm-preview .home-hero-visual .home-photo-unavailable { position:absolute; right:var(--space-4); bottom:var(--space-12); width:45%; max-width:none; padding:var(--space-4); margin:0; color:#f4e9dc; text-align:right; }
.home-warm-preview .home-categories { padding-block:var(--space-6); background:var(--bg); border-bottom:0; }
.home-warm-preview .home-category-layout { display:flex; flex-wrap:wrap; align-items:center; gap:var(--space-6); }
.home-warm-preview .home-category-layout h2 { font:500 18px/1.4 var(--font); }
.home-warm-preview .category-entry-grid { display:flex; flex-wrap:wrap; gap:var(--space-3); flex:1; }
/* Categories are compact controls, not independent content cards. */
.home-warm-preview .category-entry { justify-content:center; min-height:var(--touch-target); padding:var(--space-3) var(--space-4); background:var(--surface-raised); border-radius:var(--radius); font-size:var(--font-size-label); }
.home-warm-preview .category-entry:hover { background:var(--surface); border-color:var(--copper); }
.home-warm-preview :is(.home-food,.home-artisans) { border:0; padding-block:var(--space-12); }
.home-warm-preview .home-food { background:var(--bg); }
.home-warm-preview .home-artisans { background:var(--home-header); }
.home-warm-preview .section-head { align-items:end; }
.home-warm-preview .section-head p { color:var(--muted); margin-bottom:0; }
.home-warm-preview :is(.artisan-card,.dish-card) { box-shadow:none; border-radius:var(--space-3); }
.home-warm-preview :is(.artisan-card,.dish-card):hover { border-color:var(--copper); }
.home-warm-preview :is(.dish-image-action,.card-topline,.card-bottom .icon,.chef-link > .icon) { display:none; }
.home-warm-preview .dish-card-copy { padding:var(--space-6); }
.home-warm-preview .dish-title-row { gap:var(--space-4); align-items:start; }
.home-warm-preview .price { color:var(--text); font-weight:600; white-space:nowrap; }
.home-warm-preview .dish-title-row h3 { min-width:0; }
.home-warm-preview .tags > span { background:var(--bg); }
.home-warm-preview :is(.dish-tag,.identity-image-label) { background:#fffffff2; color:var(--text); }
.home-warm-preview :is(.dish-grid,.artisan-grid)[data-count="0"] { grid-template-columns:1fr; }
.home-warm-preview .home-empty { margin:0; padding:var(--space-6); border:1px solid var(--line); border-radius:var(--radius); color:var(--muted); }
/* Product cards keep the same width even while the catalogue is small. */
.home-warm-preview .home-food .dish-grid:not([data-count="0"]) { grid-template-columns:repeat(3,minmax(0,1fr)); align-items:start; }
/* Cook cards also remain vertical and retain their width as the catalogue grows. */
.home-warm-preview .home-artisans .artisan-grid:not([data-count="0"]) { grid-template-columns:repeat(3,minmax(0,1fr)); align-items:start; }
.home-warm-preview .home-artisans .artisan-card-body { padding:var(--space-6); }
.home-warm-preview .home-artisans .card-bottom { min-height:var(--touch-target); }
.home-warm-preview .home-join { display:flex; justify-content:space-between; align-items:center; gap:var(--space-8); padding-block:var(--space-12); }
.home-warm-preview .home-join h2 { margin-block:var(--space-3); }
.home-warm-preview .home-join p { color:var(--muted); margin-bottom:0; }
.home-warm-preview .home-join > .button { flex-shrink:0; }
.home-warm-preview .site-footer { background:var(--home-header); }
.home-warm-preview .footer-main { gap:var(--space-8); }
.home-warm-preview .footer-group a { min-height:var(--touch-target); display:flex; align-items:center; padding-block:var(--space-2); }
.home-warm-preview .preview-ribbon { background:var(--surface-raised); }
.home-warm-preview .mobile-bottom-nav { background:var(--home-header); border-color:var(--line); }
.home-warm-preview .mobile-bottom-nav :is(a,button) { color:var(--muted); }
.home-warm-preview .mobile-bottom-nav a.active { color:var(--copper); }
.home-warm-preview .main-nav.open { background:var(--home-header); }
.home-warm-preview .support-launcher { background:var(--text); color:#fff; border-color:var(--text); box-shadow:0 4px 16px #3f2b2320; }
.home-warm-preview .support-chat { background:var(--surface); color:var(--text); border-color:var(--line); }
.home-warm-preview .support-chat :is(button,textarea) { background:var(--bg); color:var(--text); border-color:#b59a83; }
.home-warm-preview .support-history p { background:var(--bg); }
.home-warm-preview .support-history .mine { background:var(--surface-raised); }
.home-warm-preview .support-chat a { color:var(--copper); }
.home-warm-preview .support-error { color:#a33025; }
/* Portalled basket/options dialogs inherit the homepage context, too. */
.home-warm-preview #dialog { background:var(--surface); color:var(--text); border-color:var(--line); }
.home-warm-preview #dialog :is(input,select,textarea) { background:var(--surface); color:var(--text); border-color:#b59a83; }
.home-warm-preview #dialog .empty-state { border-color:var(--line); }
.home-warm-preview #dialog .remove-link { color:var(--copper); min-height:var(--touch-target); }
@media (max-width:1100px) {
  .home-warm-preview .home-artisans .artisan-grid:not([data-count="0"]) { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .home-warm-preview .home-food .dish-grid:not([data-count="0"]) { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .home-warm-preview .hero h1 { font-size:clamp(32px,4vw,44px); }
  .home-warm-preview .hero-buttons { flex-wrap:wrap; gap:var(--space-3); }
  .home-warm-preview .header-inner { min-height:80px; }
}
@media (max-width:800px) {
  /* Portrait artwork keeps bowl and calligraphy together below the live HTML copy. */
  .home-warm-preview .hero.home-hero { align-items:flex-start; min-height:0; height:auto; padding-block:var(--space-8) calc(90vw + 112px); }
  .home-warm-preview .hero-copy { padding:0; width:calc(100% - 2 * var(--page-gutter)); max-width:600px; margin-left:var(--page-gutter); }
  .home-warm-preview .hero-image { top:auto; bottom:0; left:0; width:100%; height:auto; object-fit:contain; }
  .home-warm-preview .home-hero-visual::after { background:linear-gradient(180deg,#201109 0%,#201109f2 20%,#20110940 48%,transparent 60%); }
  .home-warm-preview .home-noodle-lettering { left:1%; top:auto; bottom:var(--space-6); width:25%; }
  .home-warm-preview .noodle-calligraphy { gap:var(--space-3); }
  .home-warm-preview .noodle-side-column { padding-top:var(--space-6); gap:var(--space-3); }
  .home-warm-preview .noodle-subtitle { font-size:14px; letter-spacing:.15em; }
  .home-warm-preview .hero h1 { font-size:clamp(38px,6vw,52px); line-height:1.5; }
  .home-warm-preview .hero p { max-width:none; }
  .home-warm-preview .hero-buttons { margin-top:var(--space-6); }
  .home-warm-preview .home-category-layout { gap:var(--space-4); }
  .home-warm-preview .category-entry-grid { flex-basis:100%; }
  .home-warm-preview .section-head { align-items:start; }
  .home-warm-preview :is(.home-food,.home-artisans) { padding-block:var(--space-8); }
  .home-warm-preview .home-join { padding-block:var(--space-8); }
}
@media (max-width:600px) {
  .home-warm-preview .hero.home-hero { min-height:0; }
  .home-warm-preview .hero h1 { font-size:clamp(36px,9.7vw,46px); }
  .home-warm-preview .hero-buttons .button { padding-inline:var(--space-4); }
  .home-warm-preview .header-inner { min-height:76px; }
  /* Messages remain available in the bottom navigation and menu. */
  .home-warm-preview .header-inbox { display:none; }
  .home-warm-preview .site-header:not(.admin-site-header) .header-actions .icon-button { width:var(--touch-target); min-width:var(--touch-target); height:var(--touch-target); flex-basis:var(--touch-target); }
  .home-warm-preview .site-header:not(.admin-site-header) .language-button { min-width:var(--touch-target); min-height:var(--touch-target); }
  .home-warm-preview :is(.dish-grid,.artisan-grid) { grid-template-columns:1fr; gap:var(--space-4); }
  .home-warm-preview .home-food .dish-grid:not([data-count="0"]),.home-warm-preview .home-artisans .artisan-grid:not([data-count="0"]) { grid-template-columns:1fr; }
  .home-warm-preview .section-head { flex-wrap:wrap; gap:var(--space-2); margin-bottom:var(--space-4); }
  .home-warm-preview .home-join { align-items:start; flex-direction:column; gap:var(--space-6); }
  .home-warm-preview .home-footer-links { grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--space-6); }
  .home-warm-preview .footer-bottom { gap:var(--space-3); }
}
