.postal-mobile-hall {
  display: none;
}

@media (max-width: 720px) {
  body.postal-home .postal-mobile-hall {
    display: block;
    padding: 18px 16px 42px;
    border-bottom: 1px solid #d7c09c;
    background:
      linear-gradient(rgba(53, 41, 31, .035) 1px, transparent 1px),
      linear-gradient(90deg, rgba(53, 41, 31, .035) 1px, transparent 1px),
      #fffaf1;
    background-size: 24px 24px;
    color: var(--postal-ink);
  }

  .postal-mobile-hall-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 14px;
  }

  .postal-mobile-hall-heading p {
    order: 2;
    margin: 0 0 3px;
    color: #95500f;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .08em;
    white-space: nowrap;
  }

  .postal-mobile-hall-heading h2 {
    margin: 0;
    font-size: clamp(24px, 7.6vw, 32px);
    line-height: 1;
    letter-spacing: -.045em;
  }

  .postal-mobile-banner {
    position: relative;
    min-height: 178px;
    display: block;
    overflow: hidden;
    border: 2px solid var(--postal-ink);
    border-radius: 18px;
    background: #d9c19a;
    box-shadow: 6px 7px 0 var(--postal-orange);
    isolation: isolate;
  }

  .postal-mobile-banner > img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transform: scale(1.02);
  }

  .postal-mobile-banner-shade {
    position: absolute;
    inset: 0;
    z-index: 1;
    background:
      linear-gradient(90deg, rgba(31, 25, 20, .82) 0%, rgba(31, 25, 20, .54) 45%, rgba(31, 25, 20, .06) 82%),
      linear-gradient(0deg, rgba(31, 25, 20, .26), transparent 55%);
  }

  .postal-mobile-banner-copy {
    position: absolute;
    inset: 0;
    z-index: 2;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    padding: 22px;
    color: white;
    text-shadow: 0 2px 8px rgba(0, 0, 0, .35);
  }

  .postal-mobile-banner-copy small {
    font-size: 11px;
    font-weight: 850;
    letter-spacing: .12em;
  }

  .postal-mobile-banner-copy strong {
    max-width: 230px;
    margin-top: 5px;
    font-size: clamp(28px, 9vw, 39px);
    line-height: .98;
    letter-spacing: -.055em;
  }

  .postal-mobile-banner-copy b {
    margin-top: 11px;
    font-size: 11px;
    line-height: 1.5;
  }

  .postal-mobile-hall-section {
    margin-top: 30px;
  }

  .postal-mobile-section-title {
    display: flex;
    align-items: center;
    gap: 9px;
    margin-bottom: 14px;
  }

  .postal-mobile-section-title > svg {
    width: 22px;
    height: 22px;
    color: #a6530a;
    stroke-width: 2.4;
  }

  .postal-mobile-section-title h3 {
    margin: 0;
    font-size: 20px;
    letter-spacing: -.035em;
  }

  .postal-mobile-quick-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 5px;
  }

  .postal-mobile-quick-grid a {
    min-width: 0;
    min-height: 88px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: 7px;
    padding: 5px 1px;
    border-radius: 13px;
    font-size: 11px;
    text-align: center;
  }

  .postal-mobile-quick-grid a > span {
    width: 52px;
    height: 52px;
    display: grid;
    place-items: center;
    border: 2px solid var(--postal-ink);
    border-radius: 16px;
    background: #ffe0aa;
    box-shadow: 3px 3px 0 var(--postal-ink);
    color: #934607;
  }

  .postal-mobile-quick-grid a:nth-child(2) > span { background: #ffd0a0; }
  .postal-mobile-quick-grid a:nth-child(3) > span { background: #efd7bd; }
  .postal-mobile-quick-grid a:nth-child(4) > span { background: #f4c76f; }
  .postal-mobile-quick-grid a:nth-child(5) > span { background: #ffbd76; }

  .postal-mobile-quick-grid svg {
    width: 25px;
    height: 25px;
    stroke-width: 2.2;
  }

  .postal-mobile-quick-grid b {
    width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .postal-mobile-community-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin-top: 23px;
  }

  .postal-mobile-community {
    width: 100%;
    min-width: 0;
    min-height: 110px;
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr) 18px;
    align-items: center;
    gap: 10px;
    margin: 0;
    padding: 14px;
    border: 2px solid var(--postal-ink);
    border-radius: 17px;
    background:
      radial-gradient(circle at 85% 15%, rgba(255, 255, 255, .5), transparent 30%),
      linear-gradient(135deg, #f4a43a, #f8c56f);
    box-shadow: 5px 6px 0 var(--postal-ink);
    color: inherit;
    font: inherit;
    text-align: left;
    cursor: pointer;
  }

  .postal-mobile-community:nth-child(2) {
    background:
      radial-gradient(circle at 85% 15%, rgba(255, 255, 255, .58), transparent 30%),
      linear-gradient(135deg, #ffd38d, #f4ad48);
  }

  .postal-mobile-community > span:first-child {
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    border-radius: 14px;
    background: #fff7e8;
  }

  .postal-mobile-community > span:first-child svg { width: 23px; height: 23px; }
  .postal-mobile-community > span:nth-child(2) { min-width: 0; }
  .postal-mobile-community strong,
  .postal-mobile-community small { display: block; }
  .postal-mobile-community strong { font-size: 15px; line-height: 1.3; }
  .postal-mobile-community small { margin-top: 4px; color: #67451f; font-size: 10px; line-height: 1.4; }
  .postal-mobile-community > svg { width: 18px; height: 18px; }

  .postal-mobile-card-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 11px;
  }

  .postal-mobile-card {
    position: relative;
    aspect-ratio: 1.12 / 1;
    display: block;
    overflow: hidden;
    border: 2px solid var(--postal-ink);
    border-radius: 14px;
    background: #dfc49d;
    box-shadow: 4px 5px 0 #d7b887;
    isolation: isolate;
  }

  .postal-mobile-card > img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .22s ease;
  }

  .postal-mobile-card-map > img { object-position: center 28%; }

  .postal-mobile-card::after {
    content: "";
    position: absolute;
    inset: 35% 0 0;
    z-index: 1;
    background: linear-gradient(transparent, rgba(31, 25, 20, .88));
  }

  .postal-mobile-card > span {
    position: absolute;
    left: 12px;
    right: 10px;
    bottom: 11px;
    z-index: 2;
    color: white;
    text-shadow: 0 1px 4px rgba(0, 0, 0, .5);
  }

  .postal-mobile-card strong,
  .postal-mobile-card small { display: block; }
  .postal-mobile-card strong { font-size: 17px; line-height: 1.12; }
  .postal-mobile-card small { margin-top: 4px; font-size: 10px; line-height: 1.35; }

  .postal-mobile-service-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
  }

  .postal-mobile-service-grid a {
    min-height: 74px;
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr);
    align-items: center;
    gap: 10px;
    padding: 12px;
    border: 1px solid #d7c09c;
    border-radius: 13px;
    background: rgba(255, 247, 232, .9);
    box-shadow: 3px 4px 0 rgba(215, 184, 135, .8);
  }

  .postal-mobile-service-grid a > svg {
    width: 29px;
    height: 29px;
    color: #a6530a;
    stroke-width: 2.1;
  }

  .postal-mobile-service-grid b,
  .postal-mobile-service-grid small { display: block; }
  .postal-mobile-service-grid b { font-size: 14px; }
  .postal-mobile-service-grid small { margin-top: 3px; color: #75624f; font-size: 9px; line-height: 1.35; }

  body.postal-home .postal-mobile-hall a:focus-visible,
  body.postal-home .postal-mobile-hall button:focus-visible {
    outline: 3px solid #9b4b08;
    outline-offset: 3px;
  }

  body.postal-home .postal-mobile-hall + .postal-hero {
    min-height: 0;
    padding-top: 46px;
  }

  body.postal-home .postal-guide-spotlight {
    order: 0;
  }
}

/* Compact mobile dashboard: keep every primary route visible with less scrolling. */
@media (max-width: 720px) {
  body.postal-home .postal-mobile-hall {
    padding: 12px 12px 76px;
  }

  .postal-mobile-hall-heading {
    gap: 10px;
    margin-bottom: 9px;
  }

  .postal-mobile-hall-heading h2 {
    font-size: clamp(22px, 6.8vw, 28px);
  }

  .postal-mobile-hall-heading p {
    margin-bottom: 1px;
    font-size: 9px;
  }

  .postal-mobile-banner {
    min-height: 124px;
    border-width: 1.5px;
    border-radius: 14px;
    box-shadow: 4px 4px 0 var(--postal-orange);
  }

  .postal-mobile-banner-copy { padding: 16px; }
  .postal-mobile-banner-copy small { font-size: 9px; }
  .postal-mobile-banner-copy strong {
    max-width: 205px;
    margin-top: 3px;
    font-size: clamp(24px, 7.8vw, 32px);
  }
  .postal-mobile-banner-copy b {
    margin-top: 7px;
    font-size: 9px;
  }

  .postal-mobile-hall-section { margin-top: 16px; }

  .postal-mobile-section-title {
    gap: 6px;
    margin-bottom: 8px;
  }

  .postal-mobile-section-title > svg {
    width: 17px;
    height: 17px;
  }

  .postal-mobile-section-title h3 { font-size: 16px; }

  .postal-mobile-quick-grid { gap: 4px; }

  .postal-mobile-quick-grid a {
    min-height: 57px;
    gap: 5px;
    padding: 2px 0;
    border-radius: 10px;
    font-size: 9px;
  }

  .postal-mobile-quick-grid a > span {
    width: 38px;
    height: 38px;
    border-width: 1.5px;
    border-radius: 11px;
    box-shadow: 2px 2px 0 var(--postal-ink);
  }

  .postal-mobile-quick-grid svg {
    width: 18px;
    height: 18px;
  }

  .postal-mobile-community-grid {
    gap: 7px;
    margin-top: 13px;
  }

  .postal-mobile-community {
    min-height: 76px;
    grid-template-columns: 30px minmax(0, 1fr) 14px;
    gap: 6px;
    padding: 8px;
    border-width: 1.5px;
    border-radius: 13px;
    box-shadow: 3px 4px 0 var(--postal-ink);
  }

  .postal-mobile-community > span:first-child {
    width: 30px;
    height: 30px;
    border-radius: 9px;
  }

  .postal-mobile-community > span:first-child svg {
    width: 17px;
    height: 17px;
  }

  .postal-mobile-community strong { font-size: 11px; line-height: 1.25; }
  .postal-mobile-community small {
    margin-top: 2px;
    font-size: 8px;
  }
  .postal-mobile-community > svg {
    width: 14px;
    height: 14px;
  }

  .postal-mobile-card-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 6px;
  }

  .postal-mobile-card {
    aspect-ratio: .92 / 1;
    border-width: 1.5px;
    border-radius: 10px;
    box-shadow: 2px 3px 0 #d7b887;
  }

  .postal-mobile-card::after { inset: 22% 0 0; }

  .postal-mobile-card > span {
    left: 6px;
    right: 5px;
    bottom: 6px;
  }

  .postal-mobile-card strong {
    display: -webkit-box;
    overflow: hidden;
    font-size: 11px;
    line-height: 1.12;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }

  .postal-mobile-card small { display: none; }

  .postal-mobile-service-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 6px;
  }

  .postal-mobile-service-grid a {
    min-height: 56px;
    grid-template-columns: 1fr;
    justify-items: center;
    gap: 4px;
    padding: 7px 3px;
    border-radius: 10px;
    text-align: center;
    box-shadow: 2px 3px 0 rgba(215, 184, 135, .8);
  }

  .postal-mobile-service-grid a > svg {
    width: 19px;
    height: 19px;
  }

  .postal-mobile-service-grid b {
    display: block;
    font-size: 10px;
    line-height: 1.15;
  }

  .postal-mobile-service-grid small { display: none; }

  body.postal-home .mobile-dock {
    min-height: 58px;
    padding: 4px;
  }

  body.postal-home .mobile-dock a,
  body.postal-home .mobile-dock button {
    min-height: 48px;
    font-size: 10px;
  }

  body.postal-home .mobile-dock svg { width: 19px; height: 19px; }
}

@media (max-width: 360px) {
  body.postal-home .postal-mobile-hall { padding-right: 12px; padding-left: 12px; }
  .postal-mobile-hall-heading { align-items: end; flex-direction: row; gap: 8px; }
  .postal-mobile-hall-heading p { order: 2; }
  .postal-mobile-quick-grid { gap: 2px; }
  .postal-mobile-quick-grid a > span { width: 35px; height: 35px; border-radius: 10px; }
  .postal-mobile-quick-grid b { font-size: 9px; }
  .postal-mobile-card strong { font-size: 10px; }
  .postal-mobile-community strong { font-size: 10px; }
}

@media (prefers-reduced-motion: reduce) {
  .postal-mobile-card > img { transition: none; }
}
