/* Layout refinements shared by the catalog and the small-screen flows. */
.catalog-search { padding-top: clamp(24px, 4vw, 50px); }
.catalog-search h1 { margin-top: 8px; }
.discovery .search-wrap { min-width: 0; padding-top: 0; }
.recovery-page > h1 { margin-block: 8px 12px; }
.recovery-page > .muted { max-width: 52ch; line-height: 1.55; }
.recovery-page > form { margin-top: 22px; }

@media (min-width: 850px) {
    .discovery { row-gap: 30px; }
    .discovery .hero-image { grid-column: 2; grid-row: 1; }
    .discovery .search-wrap { grid-column: 1 / -1; }
}

@media (max-width: 849px) {
    .header-inner { height: 66px; gap: 8px; }
    .header-actions { gap: 7px; }
    .header-actions .button { min-height: 44px; white-space: nowrap; padding-inline: 11px; }
    .discovery { padding-top: 24px; gap: 20px; }
    .discovery h1 { font-size: clamp(2.25rem, 9vw, 3.8rem); line-height: 1.03; margin-block: 12px; }
    .hero-description { font-size: .9rem; line-height: 1.55; }
    .hero-proof { margin-top: 13px; gap: 8px 14px; }
    .hero-image { height: clamp(175px, 48vw, 300px); border-radius: 20px 20px 38px 20px; }
    .hero-image-caption { left: 16px; bottom: 16px; }
    .hero-stamp { top: 12px; right: 12px; }
    .search-panel { padding: 10px; gap: 6px; }
    .search-field { padding-block: 6px; }
    .search-field + .search-field { border-top: 1px solid var(--line); }
    .search-field input, .search-field select { min-height: 40px; font-size: 1rem; }
    .search-panel .button { min-height: 48px; }
    .section-heading { margin-bottom: 18px; }
    .section-heading h1, .section-heading h2 { text-wrap: balance; }
    .category-tabs { gap: 6px; }
    .category-tab { padding-inline: 10px; }
    .card-photo { aspect-ratio: 1.38; }
    .card-content { padding-top: 13px; }
    .card-content h3, .description, .property-preview h2, .message { overflow-wrap: anywhere; }
    .auth-layout { padding-block: clamp(24px, 6vh, 60px) 44px; }
    .auth-card { width: min(100%, 480px); margin-inline: auto; }
    input:not([type="checkbox"]):not([type="radio"]), select, textarea { font-size: max(1rem, 16px); }
    .detail-page { padding-top: 10px; }
    .detail-heading { margin-block: 12px 18px; }
    .detail-heading h1 { font-size: clamp(1.65rem, 6.4vw, 2.5rem); overflow-wrap: anywhere; }
    .detail-columns, .booking-layout, .conversation-layout { grid-template-columns: minmax(0, 1fr); }
    .detail-section { padding-block: 22px; }
    .detail-section h2 { margin-bottom: 12px; }
    .photo-gallery { border-radius: 16px; }
    body:has(.mobile-booking-bar) { padding-bottom: calc(76px + env(safe-area-inset-bottom)); }
    body:has(.mobile-booking-bar) .stay-summary { display: none; }
    .mobile-booking-bar {
        position: fixed;
        inset-inline: 0;
        bottom: 0;
        padding: 10px max(14px, env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) max(14px, env(safe-area-inset-left));
        box-shadow: 0 -5px 24px #14282012;
    }
    .mobile-booking-bar .button { white-space: nowrap; min-height: 46px; }
    .mobile-booking-bar strong { white-space: nowrap; }
    .booking-layout > div:first-child { display: contents; }
    .booking-layout .property-preview { grid-row: 1; min-width: 0; }
    .booking-layout .booking-form { grid-row: 2; min-width: 0; }
    .booking-layout .steps-list { grid-row: 3; margin-top: 0; }
    .calendar-grid { grid-template-columns: repeat(7, minmax(0, 1fr)); }
    .calendar-day { min-width: 0; }
    .chat-panel, .chat-compose, .chat-compose textarea { min-width: 0; }
    .chat-compose .button { min-width: 44px; }
}

@media (max-width: 359px) {
    .header-inner .brand { font-size: 1.17rem; }
    .header-inner .brand > .icon { width: 24px; }
    .header-actions .button { font-size: .71rem; padding-inline: 8px; }
    .discovery .hero-proof { font-size: .66rem; }
    .mobile-booking-bar .button { padding-inline: 12px; }
    .booking-layout .booking-form { padding-inline: 12px; }
}
