/* desk-shell.css — uniform desktop frame v2 */
@media (min-width: 1024px) {
  /* Homepage has no desk-shell-on class — unlock page scroll here only */
  html, body {
    overflow-x: hidden !important;
    overflow-y: auto !important;
    height: auto !important;
    max-height: none !important;
  }
  .app-shell, #viewHome, #viewHome.main {
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
  }
  html,
  html body,
  html.desk-shell-on,
  html.desk-shell-on body {
    background: #eef2f7 !important;
    max-width: none !important;
    overflow-x: hidden !important;
    overflow-y: scroll !important;
    height: auto !important;
    max-height: none !important;
    min-height: 100% !important;
  }
  .app-shell,
  #viewHome,
  #viewHome.main,
  #deskShellMain {
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    min-height: 0 !important;
  }
  .app-shell {
    max-width: 1100px !important;
  }

  /* Kill phone chrome */
  .bottom-nav, nav.bottom-nav, #bottomNav { display: none !important; }

  /* Kill ALL full-bleed heroes on desktop — no bleed under content */
  .hero-bg,
  .hero-overlay {
    display: none !important;
  }

  /* Top nav */
  #deskShellNav {
    position: sticky; top: 0; z-index: 1000; height: 56px;
    background: #0b1220;
    display: flex; align-items: center; justify-content: space-between;
    padding: 0 28px;
    border-bottom: 1px solid rgba(255,255,255,0.06);
  }
  #deskShellNav a { color: rgba(248,250,252,0.88); text-decoration: none; font-size: 0.9rem; font-weight: 600; }
  #deskShellNav a:hover { color: #fff; }
  #deskShellNav .desk-shell-brand {
    display: flex; align-items: center; gap: 10px;
    color: #fff; font-weight: 800; font-size: 1rem;
  }
  #deskShellNav .desk-shell-brand img { height: 28px; width: auto; }
  #deskShellNav .desk-shell-links { display: flex; gap: 22px; align-items: center; }
  #deskShellNav .desk-shell-cta {
    background: #14b8a6; color: #042f2e !important;
    padding: 8px 14px; border-radius: 999px; font-weight: 700;
  }

  /* Main content */
  #deskShellMain {
    position: relative; z-index: 1;
    max-width: 1100px;
    margin: 0 auto;
    padding: 24px 24px 20px;
    min-height: 0;
  }

  .desk-page-head {
    display: flex; align-items: center; gap: 14px;
    margin: 0 0 24px;
  }
  .desk-page-head h1 {
    margin: 0; font-size: 1.7rem; font-weight: 800;
    color: #0f172a; letter-spacing: -0.02em;
  }
  .desk-page-head .desk-back {
    width: 40px; height: 40px; border-radius: 50%;
    background: #fff; border: 1px solid #d0d7e2;
    display: flex; align-items: center; justify-content: center;
    color: #0f172a; text-decoration: none; font-size: 1.1rem;
    box-shadow: 0 1px 2px rgba(15,23,42,0.06);
  }

  /* Cards — clear contrast on grey page */
  #deskShellMain .card,
  #deskShellMain .list-card,
  #deskShellMain .fav-card {
    background: #ffffff !important;
    border: 1px solid #d8dee8 !important;
    color: #0f172a !important;
    box-shadow: 0 2px 10px rgba(15,23,42,0.06) !important;
    border-radius: 14px !important;
  }
  #deskShellMain .card-name,
  #deskShellMain .card-body,
  #deskShellMain .card-offer,
  #deskShellMain .card-title {
    color: #0f172a !important;
  }
  #deskShellMain .card-meta {
    color: #64748b !important;
    opacity: 1 !important;
  }

  /* 2-col for listing cards only */
  .desk-list-grid {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 14px !important;
  }
  .desk-list-grid > * { margin: 0 !important; }

  /* Widen phone shells */
  .wrap, .page, .app-shell, main, .content, .container {
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
  }
  .wrap > .top, .page > .top { display: none !important; }

  /* Hub subcategory rows — single column, full width */
  #deskShellMain .hub-row,
  #deskShellMain a.hub-item,
  #deskShellMain .cat-row {
    max-width: 720px;
    margin-left: auto;
    margin-right: auto;
  }

  /* Forms */
  #deskShellMain .form-card,
  #deskShellMain .login-card,
  #deskShellMain .auth-card,
  #deskShellMain form {
    max-width: 440px;
    margin-left: auto;
    margin-right: auto;
  }

  /* Footer */
  #deskShellFoot {
    background: #0b1220; color: #f8fafc;
    padding: 40px 24px 28px; margin-top: 0;
  }
  #deskShellFootInner {
    max-width: 1100px; margin: 0 auto;
    display: grid; grid-template-columns: 1.2fr 1fr 1fr; gap: 28px;
  }
  #deskShellFoot a {
    color: rgba(248,250,252,0.7); text-decoration: none;
    font-size: 0.88rem; display: block; margin: 6px 0;
  }
  #deskShellFoot a:hover { color: #fff; }
  #deskShellFoot h4 {
    font-size: 0.72rem; letter-spacing: 0.08em; text-transform: uppercase;
    color: rgba(248,250,252,0.45); margin: 0 0 10px;
  }
  #deskShellFoot .brand strong { display: block; font-size: 1.05rem; margin: 8px 0 6px; }
  #deskShellFoot .brand p {
    color: rgba(248,250,252,0.55); font-size: 0.88rem; line-height: 1.45; margin: 0;
  }
  #deskShellFoot .copy {
    max-width: 1100px; margin: 24px auto 0; padding-top: 16px;
    border-top: 1px solid rgba(255,255,255,0.08);
    font-size: 0.78rem; color: rgba(248,250,252,0.4);
    display: flex; justify-content: space-between;
  }


  /* === Hub subcategory rows (Eat, Tours, etc.) === */
  #deskShellMain a.row,
  #deskShellMain .hub-link,
  #deskShellMain .cat-card,
  #deskShellMain .category-row,
  #deskShellMain a[href*="-list"],
  #deskShellMain .page a.card,
  #deskShellMain .wrap a.card {
    /* don't force all links */
  }

  /* Pale glass hub rows → solid readable cards */
  #deskShellMain .hub-item,
  #deskShellMain .subcat,
  #deskShellMain .tile-row,
  #deskShellMain a.menu-row {
    background: #ffffff !important;
    border: 1px solid #cfd8e6 !important;
    color: #0f172a !important;
    box-shadow: 0 2px 8px rgba(15,23,42,0.05) !important;
  }

  /* Generic: any semi-transparent row inside main */
  #deskShellMain a[style*="rgba"],
  #deskShellMain div[style*="rgba"] {
    /* leave inline — override via class below */
  }

  /* Force readable text on hub pages */
  #deskShellMain .page a,
  #deskShellMain .wrap a {
    color: inherit;
  }

  /* Specials / What's On — denser 2-col, less empty air */
  #deskShellMain .desk-list-grid {
    grid-template-columns: 1fr 1fr !important;
    gap: 12px !important;
  }
  #deskShellMain .card {
    padding: 12px 14px !important;
    min-height: 0 !important;
  }
  #deskShellMain .card-photo {
    width: 96px !important;
    min-height: 96px !important;
    height: 96px !important;
    object-fit: cover !important;
    border-radius: 10px !important;
  }

  /* What's On full-width event rows */
  #deskShellMain .card:only-child,
  #deskShellMain .events .card {
    /* keep full width when not in grid */
  }

  /* Hub image bars (Wellness-style) — keep full width, single col */
  #deskShellMain .hub-banner,
  #deskShellMain a.banner-row {
    display: block !important;
    width: 100% !important;
    max-width: 820px !important;
    margin: 0 auto 12px !important;
    border-radius: 14px !important;
    overflow: hidden !important;
  }

  html.desk-shell-on body { color: #0f172a !important; }

  /* Hub glass bars → readable solid rows */
  #deskShellMain .bar {
    background: #ffffff !important;
    border: 1px solid #c5d0e0 !important;
    color: #0f172a !important;
    box-shadow: 0 2px 10px rgba(15,23,42,0.06) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }
  #deskShellMain .bar-name { color: #0f172a !important; opacity: 1 !important; }
  #deskShellMain .bar-sub { color: #64748b !important; opacity: 1 !important; }
  #deskShellMain .list-bars {
    max-width: 640px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 10px;
  }
  #deskShellMain .title { color: #0f172a !important; }

  /* Specials denser */
  #deskShellMain .card-photo {
    width: 88px !important; min-height: 88px !important; height: 88px !important;
  }


  
  /* Specials / lists footer links */
  #deskShellMain a.add-special,
  #deskShellMain .add-special,
  #deskShellMain a[href*="add"] {
    color: #0f766e !important;
    font-weight: 700 !important;
    opacity: 1 !important;
  }
  /* Centered hub content, not floating right */
  #deskShellMain .list-bars,
  #deskShellMain .tiles {
    width: 100%;
  }


  /* Hub tiles: 2-col cards, fixed image height — no ultra-wide stretch */
  #deskShellMain .tiles {
    max-width: 900px;
    margin: 0 auto;
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 14px !important;
  }
  #deskShellMain .tile {
    height: auto !important;
    min-height: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    background: #fff !important;
    border: 1px solid #c5d0e0 !important;
    border-radius: 16px !important;
    overflow: hidden !important;
    box-shadow: 0 2px 10px rgba(15,23,42,0.06) !important;
  }
  #deskShellMain .tile-img {
    position: relative !important;
    inset: auto !important;
    width: 100% !important;
    height: 140px !important;
    object-fit: cover !important;
    display: block !important;
  }
  #deskShellMain .tile-shade {
    display: none !important;
  }
  #deskShellMain .tile-body {
    position: relative !important;
    height: auto !important;
    padding: 12px 14px 14px !important;
    background: #fff !important;
  }
  #deskShellMain .tile-name {
    color: #0f172a !important;
    font-size: 1.05rem !important;
    font-weight: 700 !important;
  }
  #deskShellMain .tile-sub {
    color: #64748b !important;
    opacity: 1 !important;
    font-size: 0.8rem !important;
  }

  /* List page cards — slightly stronger edge */
  #deskShellMain .card,
  #deskShellMain .list-card {
    border: 1px solid #b8c4d6 !important;
    box-shadow: 0 2px 8px rgba(15,23,42,0.05) !important;
  }

  /* Page background a touch cooler so white cards pop */
  html.desk-shell-on, html.desk-shell-on body {
    background: #e4eaf2 !important;
  }


  /* Kill empty middle gap: no flex-grow, footer follows content */
  html.desk-shell-on body {
    display: block !important;
    min-height: 0 !important;
    height: auto !important;
  }
  #deskShellMain {
    min-height: 0 !important;
    height: auto !important;
    flex: none !important;
    padding-bottom: 16px !important;
  }
  #deskShellMain .page,
  #deskShellMain .wrap {
    min-height: 0 !important;
    height: auto !important;
    display: block !important;
  }
  #deskShellFoot {
    margin-top: 8px !important;
  }
  /* Add-business buttons shouldn't float mid-screen */
  #deskShellMain .add-listing,
  #deskShellMain a.add-listing {
    margin-top: 16px !important;
    margin-bottom: 8px !important;
  }


  /* ===== Place detail page (desktop) ===== */
  /* old 260px photo rule removed */

  /* Full-width title row — never squeeze name into a skinny column */
  #deskShellMain .desk-page-head {
    margin-bottom: 14px !important;
  }
  #deskShellMain .desk-page-head h1 {
    font-size: 1.55rem !important;
    line-height: 1.25 !important;
    white-space: normal !important;
    word-break: normal !important;
  }

  /* Hide duplicate name inside identity if page head already shows it */
  #deskShellMain .place-desk-grid .identity-card .name {
    display: none !important;
  }

  #deskShellMain .place-desk-grid {
    display: grid !important;
    grid-template-columns: 1.1fr 1fr !important;
    gap: 16px !important;
    align-items: stretch !important;
    max-width: 100% !important;
  }
  #deskShellMain .place-desk-grid > .card {
    margin-bottom: 0 !important;
    min-width: 0 !important;
  }

  #deskShellMain .identity-card,
  #deskShellMain .card {
    background: #ffffff !important;
    border: 1px solid #c5d0e0 !important;
    color: #0f172a !important;
    box-shadow: 0 2px 10px rgba(15,23,42,0.05) !important;
    backdrop-filter: none !important;
    padding: 18px 18px !important;
  }
  #deskShellMain .identity-card .locality {
    color: #64748b !important;
    font-size: 0.95rem !important;
    margin-bottom: 8px !important;
  }
  #deskShellMain .card-label {
    color: #64748b !important;
    opacity: 1 !important;
    font-size: 0.72rem !important;
  }
  #deskShellMain .row,
  #deskShellMain #details {
    color: #0f172a !important;
    font-size: 0.95rem !important;
    line-height: 1.45 !important;
  }
  #deskShellMain .row a { color: #0f766e !important; }

  /* Actions horizontal, not stacked */
  #deskShellMain .actions {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
    margin-top: 12px !important;
  }
  #deskShellMain .actions a {
    background: #f1f5f9 !important;
    border: 1px solid #c5d0e0 !important;
    color: #0f172a !important;
    box-shadow: none !important;
    padding: 10px 16px !important;
    border-radius: 999px !important;
    font-size: 0.88rem !important;
  }
  #deskShellMain .actions a.primary {
    background: #14b8a6 !important;
    border-color: transparent !important;
    color: #042f2e !important;
    font-weight: 700 !important;
  }
  #deskShellMain .report-btn {
    background: #f8fafc !important;
    border: 1px dashed #94a3b8 !important;
    color: #64748b !important;
    margin-top: 16px !important;
  }


  /* Place photo — portrait frame (beats old 260px rule) */
  #deskShellMain .place-stage {
    display: flex !important;
    flex-direction: row !important;
    gap: 22px !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    max-width: 960px !important;
    margin-left: 0 !important;
    margin-right: auto !important;
  }
  #deskShellMain .place-stage .photo-hero {
    width: 480px !important;
    max-width: 480px !important;
    flex: 0 0 auto !important;
    height: auto !important;
    aspect-ratio: 3 / 2 !important;
    object-fit: cover !important;
    object-position: center center !important;
    margin: 0 !important;
  }
  #deskShellMain .place-stage .photo-hero.is-portrait {
    width: 320px !important;
    max-width: 320px !important;
    aspect-ratio: 4 / 5 !important;
    object-position: center top !important;
  }
  #deskShellMain .place-contact {
    flex: 0 1 360px !important;
    max-width: 360px !important;
    min-width: 280px !important;
  }

}
