/* Dedicated 5:4 monitor view. Other viewport sizes keep the original design. */
@media screen and (width: 1280px) and (height: 1024px), screen and (width: 936px) and (height: 1024px), screen and (width: 1056px) and (height: 1024px) {
  body.laundromat { height: 100vh; min-height: 0; overflow: hidden; }
  .laundromat .wrap { width: 100%; max-width: none; margin: 0; }
  .laundromat .portal-bar { min-height: 0; margin: 0; }
  .laundromat .portal-brand { font-size: 28px; }
  .laundromat .portal-hours, .laundromat .portal-back { min-height: 46px; font-size: 18px; padding: 10px 20px; }
  .laundromat .lang-bar { grid-template-columns: repeat(8, minmax(0, 1fr)); gap: 10px; margin: 0; }
  .laundromat .lang-btn { min-height: 0; height: 62px; padding: 7px 4px; gap: 6px; font-size: 24px; }
  .laundromat .lang-btn .lang-name { font-size: 14px; }

  /* Keep all eight destinations visible without scrolling the landing page. */
  .laundromat-home .wrap {
    height: 100vh; padding: 20px; display: grid; gap: 8px;
    grid-template-rows: 48px 148px 62px 26px 94px 26px minmax(0, 1fr) 26px 86px 50px;
  }
  .laundromat-home .wrap > * { min-width: 0; min-height: 0; margin: 0; }
  .laundromat-home .portal-welcome { grid-template-columns: 1fr 1fr; border-radius: 20px; }
  .laundromat-home .portal-welcome-copy { padding: 18px 28px; }
  .laundromat-home .portal-kicker { font-size: 11px; margin-bottom: 6px; }
  .laundromat-home .portal-welcome h1 { font-size: 36px; line-height: 1.2; margin-bottom: 6px; letter-spacing: -1px; }
  .laundromat-home #washLandingBranch { font-size: 20px; line-height: 1.4; }
  .laundromat-home .section-label { font-size: 20px; line-height: 26px; gap: 16px; }
  .laundromat-home .portal-info-grid, .laundromat-home .portal-help-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .laundromat-home .menu-btn { min-height: 0; height: 100%; padding: 12px 18px; gap: 14px; border-radius: 16px; }
  .laundromat-home .portal-help-grid .menu-btn { min-height: 0; }
  .laundromat-home .btn-icon { width: 48px; height: 48px; font-size: 26px; }
  .laundromat-home .btn-title, .laundromat-home .portal-help-grid .btn-title { font-size: 23px; line-height: 1.3; }
  .laundromat-home .btn-sub { font-size: 15px; line-height: 1.3; margin-top: 5px; }
  .laundromat-home .btn-arrow { width: 30px; height: 30px; flex-shrink: 0; font-size: 24px; }
  .laundromat-home .machine-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
  .laundromat-home .machine-card { min-width: 0; min-height: 0; border-radius: 16px; }
  .laundromat-home .machine-img-wrap { flex: 1; min-height: 0; height: auto; }
  .laundromat-home .machine-img-wrap img { object-position: center 48%; }
  .laundromat-home .machine-footer { flex: 0 0 132px; min-height: 0; padding: 12px 14px; gap: 6px; }
  .laundromat-home .machine-footer > div { min-width: 0; }
  .laundromat-home .machine-footer .btn-title { font-size: 21px; line-height: 1.3; }
  .laundromat-home .machine-footer .btn-sub { font-size: 15px; line-height: 1.3; margin-top: 4px; }
  .laundromat-home .footer-card { padding: 8px 0 0; gap: 20px; grid-template-columns: .85fr 1.15fr; }
  .laundromat-home .footer-branch { font-size: 18px; line-height: 1.4; }
  .laundromat-home .footer-info { font-size: 15px; line-height: 1.4; }
  .laundromat-home .footer-tel { font-size: 17px; }

  /* One readable scroll area, with language and Home controls always available. */
  .laundromat-guide .wrap { height: 100vh; overflow-y: auto; overscroll-behavior-y: contain; padding: 164px 24px 86px; scroll-padding-top: 164px; scrollbar-gutter: stable; }
  .laundromat-guide .portal-bar { position: fixed; z-index: 20; top: 0; left: 0; width: 100%; height: 78px; padding: 16px 24px; background: var(--lp-paper); }
  .laundromat-guide .lang-bar { position: fixed; z-index: 20; top: 78px; left: 0; width: 100%; height: 74px; padding: 0 24px 12px; background: var(--lp-paper); border-bottom: 1px solid var(--lp-line); }
  .laundromat-guide .hero { padding: 18px 24px; gap: 16px; margin-bottom: 16px; border-radius: 18px; }
  .laundromat-guide .hero:before { width: 44px; height: 50px; }
  .laundromat-guide .hero-title { font-size: 30px; line-height: 1.3; }
  .laundromat-guide .hero-sub { font-size: 18px; }
  .laundromat-guide :is(.card,.steps-card,.video-card,.tips-card,.checklist-card,.contact-card,.price-badge,.badge) { padding: 20px; margin-bottom: 16px; border-radius: 18px; }
  .laundromat-guide :is(.card-label,.steps-label,.video-label,.tips-label,.checklist-label,.check-label) { font-size: 22px; margin-bottom: 12px; }
  .laundromat-guide :is(.step,.tip-item,.check-item) { padding: 14px 16px; gap: 14px; margin-bottom: 10px; }
  .laundromat-guide :is(.step-body,.tip-body,.check-body) { font-size: 21px; line-height: 1.65; }
  .laundromat-guide .portal-machine-layout { grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: 18px; }
  .laundromat-guide .portal-machine-layout .video-card { top: 164px; }
  .laundromat-guide .video-card video { max-height: 440px; }
  .laundromat-guide > .wrap > .video-card video { max-height: 440px; }
  .laundromat-guide .alert-grid { gap: 14px; margin-bottom: 16px; }
  .laundromat-guide .alert-card { padding: 14px 18px; display: grid; grid-template-columns: 34px minmax(0, 1fr); column-gap: 12px; row-gap: 4px; text-align: left; }
  .laundromat-guide .alert-icon { grid-row: 1 / 3; align-self: center; font-size: 30px; }
  .laundromat-guide .alert-title { font-size: 22px; line-height: 1.4; }
  .laundromat-guide .alert-desc { font-size: 18px; line-height: 1.5; }
  .laundromat-guide .no-wash-banner { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 20px; row-gap: 4px; padding: 14px 20px; margin-bottom: 16px; }
  .laundromat-guide .no-wash-top { margin: 0; gap: 10px; }
  .laundromat-guide .no-wash-title { font-size: 21px; }
  .laundromat-guide .no-wash-items { grid-column: 1; font-size: 18px; line-height: 1.5; margin: 0; }
  .laundromat-guide .no-wash-link { grid-column: 2; grid-row: 1 / 3; align-self: center; padding: 12px 16px; min-height: 48px; font-size: 18px; }
  .laundromat-guide .price-badge { padding: 12px 20px; }
  .laundromat-guide .price-info { display: flex; align-items: baseline; flex-wrap: wrap; gap: 6px 20px; min-width: 0; }
  .laundromat-guide .price-info strong { font-size: 24px; }
  .laundromat-guide .price-info span { font-size: 18px; }
  .laundromat-guide .home-btn { position: fixed; z-index: 20; left: 0; bottom: 0; width: 100%; height: 66px; min-height: 0; margin: 0; border: 0; border-radius: 0; padding: 16px 24px; font-size: 22px; box-shadow: 0 -6px 20px #182d4714; }
}

/* This width is enabled only inside the same-origin persistent music shell. */
@media screen and (width: 936px) and (height: 1024px), screen and (width: 1056px) and (height: 1024px) {
  html[data-wash-music-frame] .laundromat-home .wrap { grid-template-rows: 48px 148px 62px 26px 112px 26px minmax(0, 1fr) 26px 104px 70px; }
  html[data-wash-music-frame] .laundromat-home .portal-welcome { grid-template-columns: 1.35fr 1fr; }
  html[data-wash-music-frame] .laundromat-home .portal-welcome-copy { padding: 12px 20px; }
  html[data-wash-music-frame] .laundromat-home .portal-kicker { display: none; }
  html[data-wash-music-frame] .laundromat-home .portal-welcome h1 { font-size: 28px; }
  html[data-wash-music-frame] .laundromat-home #washLandingBranch { font-size: 16px; }
  html[data-wash-music-frame] .laundromat-home .btn-title, html[data-wash-music-frame] .laundromat-home .portal-help-grid .btn-title { font-size: 21px; }
  html[data-wash-music-frame] .laundromat-home .btn-sub { font-size: 14px; }
  html[data-wash-music-frame] .laundromat-home .machine-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: repeat(2, minmax(0, 1fr)); }
  html[data-wash-music-frame] .laundromat-home .machine-card { flex-direction: row; }
  html[data-wash-music-frame] .laundromat-home .machine-img-wrap { flex: 0 0 132px; height: 100%; }
  html[data-wash-music-frame] .laundromat-home .machine-footer { flex: 1; min-width: 0; padding: 12px; border-top: 0; border-left: 1px solid var(--lp-line); }
  html[data-wash-music-frame] .laundromat-home .machine-footer .btn-title { font-size: 19px; }
  html[data-wash-music-frame] .laundromat-home .machine-footer .btn-sub { font-size: 14px; }
  html[data-wash-music-frame] .laundromat-home .footer-card { grid-template-columns: .8fr 1.2fr; }
  html[data-wash-music-frame] .laundromat-home .footer-info { font-size: 14px; }
}

/* The narrower music rail returns more space to the four machine cards. */
@media screen and (width: 1056px) and (height: 1024px) {
  html[data-wash-music-frame] .laundromat-home .machine-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); grid-template-rows: minmax(0, 1fr); }
  html[data-wash-music-frame] .laundromat-home .machine-card { flex-direction: column; }
  html[data-wash-music-frame] .laundromat-home .machine-img-wrap { flex: 1; height: auto; }
  html[data-wash-music-frame] .laundromat-home .machine-footer { flex: 0 0 132px; border-left: 0; border-top: 1px solid var(--lp-line); }
}
