/* Desktop offer uses shared typography; mobile CTA has scoped AA contrast. */
.night-offer-desktop-description,
.night-offer-photo,
.night-offer-arrow,
.night-offer-terms,
.night-offer-rate-icon { display: none; }

.night-offer-title .night-offer-title-dash { display: inline; color: inherit; }

@media (max-width: 1023px) {
  #night-offer .night-offer-title .night-offer-title-dash { display: none; }
  /* Mobile adaptation of the approved desktop card; desktop rules stay unchanged. */
  #night-offer { padding: 28px 16px !important; background: #f8f2e8 !important; }
  #night-offer .night-offer-card {
    display: grid;
    grid-template-areas: "title" "description" "photo" "rates" "terms" "book" "more";
    gap: 0;
    max-width: 960px;
    padding: 20px;
    border-radius: 24px;
    background: #304438;
    color: var(--paper);
    text-align: left !important;
  }
  #night-offer .night-offer-copy { display: contents; }
  #night-offer .night-offer-mobile-description,
  #night-offer .night-offer-mobile-terms { display: none; }
  #night-offer .night-offer-title {
    grid-area: title;
    margin: 0 0 14px !important;
    font-family: var(--font);
    font-size: clamp(26px, calc(8.6vw - 2px), 38px) !important;
    text-wrap: balance;
    font-weight: 500;
    line-height: 1.08;
    letter-spacing: -.02em;
    text-transform: none;
  }
  #night-offer .night-offer-title span { display: block; color: var(--orange); }
  #night-offer .night-offer-desktop-description {
    display: block;
    grid-area: description;
    margin: 0 0 20px;
    color: var(--paper);
    font-size: 16px !important;
    line-height: 1.3;
    letter-spacing: -.028em;
  }
  #night-offer .night-offer-photo {
    display: block;
    grid-area: photo;
    width: 100%;
    min-width: 0;
    aspect-ratio: 16 / 10;
    margin-bottom: 20px;
    border-radius: 16px;
    overflow: hidden;
  }
  #night-offer .night-offer-photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    border-radius: inherit;
  }
  #night-offer .night-offer-rates {
    display: grid !important;
    grid-area: rates;
    grid-template-columns: minmax(0, 1fr);
    gap: 12px !important;
    margin: 0 0 16px !important;
  }
  #night-offer .night-offer-rate {
    display: grid;
    grid-template-columns: 32px minmax(0, 1fr);
    align-items: center;
    column-gap: 12px;
    min-width: 0 !important;
    padding: 14px !important;
    border: 2px dotted var(--paper) !important;
    border-radius: 16px !important;
    background: transparent !important;
  }
  #night-offer .night-offer-rate-icon {
    display: grid;
    place-items: center;
    width: 32px;
    height: 32px;
    color: rgb(206, 203, 192);
    border: 0;
    border-radius: 0;
    background: transparent;
  }
  #night-offer .night-offer-rate-icon svg { width: 28px; height: 28px; stroke-width: 2.2; }
  #night-offer .night-offer-rate-content { display: flex; flex-direction: column; min-width: 0; height: 100%; }
  #night-offer .night-offer-rate-label {
    margin-bottom: 8px;
    color: rgb(206, 203, 192) !important;
    font-size: 16px !important;
    line-height: 1.2;
  }
  #night-offer .night-offer-rate-price {
    margin-top: auto;
    color: var(--paper) !important;
    font-family: var(--font);
    font-size: 25px !important;
    font-weight: 430 !important;
    line-height: 1;
    letter-spacing: -.04em;
    white-space: nowrap;
  }
  #night-offer .night-offer-terms {
    display: block;
    grid-area: terms;
    margin: 0 0 24px !important;
    color: rgb(206, 203, 192) !important;
    font-size: 14px !important;
    line-height: 1.3;
    letter-spacing: -.015em;
  }
  #night-offer .night-offer-book {
    grid-area: book;
    width: 100%;
    min-height: 54px;
    margin: 0 !important;
    justify-content: center;
    border-radius: 10px;
    font-size: 16px;
    font-weight: 740;
    text-transform: lowercase;
  }
  #night-offer .night-offer-more { grid-area: more; margin: 0 !important; font-size: 16px; line-height: 1.3; text-align: center; }
  #night-offer .night-offer-more a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    min-height: 44px;
    color: rgb(206, 203, 192) !important;
    font-weight: 400 !important;
    text-decoration: underline;
    text-underline-offset: 3px;
  }
  #night-offer .night-offer-more a:focus-visible { outline: 3px solid var(--paper); outline-offset: 4px; }
  @media (min-width: 600px) {
    #night-offer .night-offer-card { padding: 24px; }
    #night-offer .night-offer-rates { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    #night-offer .night-offer-photo { aspect-ratio: 16 / 9; max-height: 380px; }
  }
  #night-offer .night-offer-book {
    background: var(--orange);
    color: var(--white);
  }
  #night-offer .night-offer-book:hover { background: #ff802e; }
  #night-offer .night-offer-book:focus-visible {
    outline: 3px solid var(--paper);
    outline-offset: 4px;
  }
}

@media (min-width: 1024px) {
  #night-offer {
    padding: 40px var(--page-x) !important;
    background: #f8f2e8 !important;
  }
  .night-offer-card {
    display: grid;
    grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr);
    gap: 64px;
    max-width: 1820px !important;
    padding: 38px;
    border-radius: 34px;
    background: #304438;
    text-align: left !important;
  }
  .night-offer-copy {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start;
    min-width: 0;
    min-height: 0;
    padding: 0 clamp(32px, 3vw, 56px) 0 0;
    color: var(--paper);
  }
  /* Katya's desktop title override; keep shared body typography below. */
  .night-offer-title {
    margin: 0 0 16px !important;
    font-family: var(--font);
    font-size: 50px !important;
    font-weight: 500;
    line-height: 1.08;
    letter-spacing: -.02em;
    text-transform: none;
  }
  .night-offer-title span { display: block; color: var(--orange); }
  .night-offer-mobile-description,
  .night-offer-mobile-terms { display: none; }
  /* Same body contract as .rent-info p. */
  .night-offer-desktop-description {
    display: block;
    margin: 0 0 12px;
    color: var(--paper);
    font-size: 18px !important;
    line-height: 1.24;
    letter-spacing: -.028em;
  }
  .night-offer-rates {
    display: grid !important;
    grid-template-columns: minmax(0, 1.06fr) minmax(0, 1fr);
    gap: 14px !important;
    width: 100%;
    padding: 0;
    margin-top: 34px;
    margin-bottom: 16px !important;
  }
  .night-offer-rate {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr);
    column-gap: 12px;
    align-items: center;
    min-width: 0 !important;
    padding: 16px clamp(14px, 1.2vw, 20px) !important;
    border: 2px dotted var(--paper) !important;
    border-radius: 18px !important;
    background: transparent !important;
  }
  /* Same metadata and price scale as .rent-specs. */
  .night-offer-rate-icon {
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: rgb(206, 203, 192);
  }
  .night-offer-rate-icon svg { width: 28px; height: 28px; stroke-width: 2.2; }
  .night-offer-rate-content { display: flex; flex-direction: column; min-width: 0; height: 100%; }
  .night-offer-rate-label {
    margin-bottom: 10px;
    color: rgb(206, 203, 192) !important;
    font-size: clamp(16px, 1.02vw, 20px) !important;
    line-height: 1.08;
  }
  .night-offer-rate-price {
    margin-top: auto;
    color: var(--paper) !important;
    font-family: var(--font);
    font-size: clamp(25px, 1.55vw, 30px) !important;
    font-weight: 430 !important;
    line-height: 1;
    letter-spacing: -.04em;
    white-space: nowrap;
  }
  .night-offer-book {
    order: 0;
    gap: 20px;
    justify-content: center;
    margin: auto 0 0 !important;
    padding: 0 20px;
    border-radius: 10px;
    background: var(--orange);
    color: var(--white);
    /* Inherit shared .wide-button dimensions and typography, matching rental cards. */
    white-space: nowrap;
    text-transform: lowercase;
  }
  .night-offer-book:hover { background: #ff802e; }
  .night-offer-book:focus-visible,
  .night-offer-more a:focus-visible {
    outline: 3px solid var(--paper);
    outline-offset: 5px;
  }
  .night-offer-arrow { display: none; }
  .night-offer-terms {
    display: block;
    order: 0;
    margin: 0 0 50px !important;
    max-width: 510px;
    color: rgb(206, 203, 192) !important;
    font-size: 16px !important;
    line-height: 1.24;
    letter-spacing: -.028em;
  }
  .night-offer-more {
    order: 0;
    margin: 10px 0 0 !important;
    font-size: 16px;
    line-height: 1.08;
  }
  .night-offer-more a { color: rgb(206, 203, 192) !important; font-weight: 400 !important; text-decoration: underline; text-underline-offset: 3px; }
  .night-offer-more a:hover,
  .night-offer-more a:focus-visible { color: var(--paper) !important; text-decoration: underline; text-underline-offset: 3px; }
  .night-offer-photo { display: block; min-width: 0; position: relative; }
  .night-offer-photo img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
    object-position: center;
    border-radius: 25px;
  }
  @media (max-width: 1279px) {
    .night-offer-rate { grid-template-columns: minmax(0, 1fr); row-gap: 12px; }
  }
}
