/* Candidate stay page only; no selector changes the original Zao page. */
html.v2-zao-preview[data-zao-preview-page="stay"] .zsp-root { color: var(--color-text-primary, #193c50); line-height: 1.65; }
.zsp-root *, .zsp-root *::before, .zsp-root *::after { box-sizing: border-box; }
.zsp-root :is(p, ul, dl, h2, h3) { margin: 0; }
.zsp-root [hidden] { display: none !important; }
.zsp-root :is(input, select, button) { font: inherit; }
.zsp-root :is(a, button, input, select, summary):focus-visible { outline: 3px solid #126b9a; outline-offset: 3px; }
.zsp-root :is(a, p, li, h2, h3, dt, dd) { overflow-wrap: anywhere; }
.zsp-root :is(.zsp-advice, .zsp-listing, .zsp-guide, .zsp-booking-notice) { margin-block-start: 1.25rem; }
.zsp-root > .zsp-guide:first-child { margin-block-start: 0; margin-block-end: 1.5rem; }
.zsp-root > .zsp-guide > summary { padding: 1rem 1.15rem; border-radius: .75rem .75rem 0 0; color: #fff; background: #193e59; font-size: 1.18rem; }
.zsp-guide-contact-actions { justify-content: center; }
.zsp-guide > .zsp-guide-contact-note { color: #60798b; font-size: .8rem; text-align: center; }
.zsp-filter-panel { padding: 1rem; border: 1px solid #cfdee5; border-radius: 1rem; background: #f0f7fa; }
.zsp-filter-row { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr) auto; align-items: end; gap: .75rem; }
.zsp-field { display: grid; min-width: 0; gap: .35rem; color: #294e63; font-size: .85rem; font-weight: 650; }
.zsp-field :is(input, select) { width: 100%; max-width: 100%; min-width: 0; min-height: 44px; border: 1px solid #a7becb; border-radius: .55rem; padding: .5rem .65rem; color: #163a50; background: #fff; }
.zsp-result-count { margin-top: .6rem !important; font-size: .85rem; color: #365c70; }
.zsp-link { display: inline-flex; min-height: 44px; max-width: 100%; align-items: center; justify-content: center; padding: .55rem .8rem; border: 1px solid #b5ccd8; border-radius: .55rem; background: #fff; color: #155879; font: inherit; font-size: .84rem; font-weight: 650; text-align: center; text-decoration: none; cursor: pointer; }
.zsp-link:hover { background: #e9f4fa; }
.zsp-link:disabled { color: #667e8b; background: #f5f8fa; cursor: default; }
.zsp-link-primary { border-color: #155879; background: #155879; color: #fff; }
.zsp-link-primary:hover { color: #fff; background: #0b425e; }
.zsp-advice { display: grid; grid-template-columns: 1fr 1fr; gap: .7rem; align-items: start; }
.zsp-fold { min-width: 0; border: 1px solid #d3e1e7; border-radius: .75rem; background: #fff; }
.zsp-fold > summary { min-height: 44px; padding: .7rem .95rem; color: #224d64; font-size: .92rem; font-weight: 700; cursor: pointer; }
.zsp-fold > :not(summary) { margin: .25rem .95rem .95rem; font-size: .9rem; }
.zsp-choose-list { padding-left: 1.3rem; columns: 2; }
.zsp-area-grid { display: grid; gap: .85rem; }
.zsp-area-description h3 { margin-bottom: .25rem; font-size: .9rem; }
.zsp-area-description p { color: #496775; font-size: .85rem; }
.zsp-group + .zsp-group { margin-top: 1.5rem; }
.zsp-group-title { margin-bottom: .65rem !important; font-size: 1.1rem; color: #163e56; }
.zsp-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .9rem; align-items: start; }
.zsp-card { min-width: 0; display: grid; gap: .6rem; padding: .85rem; border: 1px solid #d3e1e7; border-radius: .9rem; background: #fff; scroll-margin-top: 7rem; }
.zsp-card-head { display: grid; grid-template-columns: 100px minmax(0, 1fr); gap: .7rem; align-items: start; }
.zsp-card-title { min-width: 0; }
.zsp-title-actions { margin-top: .7rem; }
.zsp-title-actions .zsp-link { border-color: #91b2c5; color: #155879; background: #f5fafc; }
.zsp-card-title h3 { margin-top: .2rem; color: #163e56; font-size: 1.04rem; line-height: 1.4; }
.zsp-meta { font-size: .73rem; line-height: 1.45; color: #577182; }
.zsp-summary { font-size: .85rem; line-height: 1.6; }
.zsp-photo { min-width: 0; width: 100%; margin: 0; border-radius: .4rem; overflow: hidden; }
.zsp-photo .v2-snow-media__image { display: block; width: 100%; height: 75px; object-fit: contain; background: #eef4f7; }
.zsp-photo .v2-snow-media__caption { position: static; inset: auto; margin: 0; padding: .3rem .35rem; color: #3d5d70; background: #f0f6f9; font-size: .62rem; line-height: 1.35; }
.zsp-photo .v2-snow-media-placeholder { min-height: 75px; padding: .35rem; gap: .2rem; }
.zsp-photo .v2-snow-media-placeholder__mark { display: none; }
.zsp-photo .v2-snow-media-placeholder__label { font-size: .72rem; }
.zsp-tags { display: flex; flex-wrap: wrap; gap: .3rem; padding: 0; list-style: none; }
.zsp-tags li { padding: .15rem .45rem; border-radius: .35rem; background: #eef5f1; color: #35644e; font-size: .72rem; }
.zsp-card-notice { display: flex; gap: .4rem; padding: .5rem .6rem; background: #fff7e9; border-left: 3px solid #d8ad64; border-radius: .3rem; color: #705424; font-size: .77rem; }
.zsp-card-notice strong { flex: 0 0 auto; }
.zsp-card-notice ul { padding-left: 1rem; }
.zsp-card-notice li:only-child { list-style: none; margin-left: -1rem; }
.zsp-card-details { border-top: 1px solid #e1eaf0; }
.zsp-card-details > summary { min-height: 44px; padding: .65rem .15rem; font-size: .83rem; color: #1e5b7a; font-weight: 650; cursor: pointer; }
.zsp-detail-row { padding: .5rem 0; border-top: 1px solid #edf1f4; font-size: .82rem; }
.zsp-detail-row dt { font-weight: 700; color: #36586a; }
.zsp-detail-row dd { margin: .2rem 0 0; color: #425c6b; }
.zsp-detail-row ul { padding-left: 1.15rem; }
.zsp-actions { display: flex; flex-wrap: wrap; gap: .45rem; align-items: center; }
.zsp-card-details .zsp-actions { margin-top: .5rem; }
.zsp-empty { padding: 1.2rem; border: 1px dashed #9ebbc9; border-radius: .7rem; color: #385b70; background: #f6fafc; }
.zsp-empty p { margin-block: .5rem 1rem; }
.zsp-access-note { color: #735326; }
.zsp-guide > .zsp-guide-download-layout { display: grid; grid-template-columns: minmax(15rem, 22rem) minmax(19rem, 28rem); justify-content: center; align-items: start; gap: 1rem; margin-block: .8rem 1rem; }
.zsp-guide-video { display: grid; width: 100%; gap: .55rem; }
.zsp-guide-download { display: grid; min-width: 0; gap: .65rem; padding: .85rem; border: 1px solid #d3e1e7; border-radius: .75rem; background: #f8fbfc; }
.zsp-guide-video h3, .zsp-guide-download h3 { color: #163e56; font-size: .92rem; text-align: center; }
.zsp-guide-media { width: 100%; margin: 0; overflow: hidden; border-radius: .7rem; background: #102633; }
.zsp-guide-media .v2-snow-media__video { display: block; width: 100%; max-height: 72vh; aspect-ratio: 9 / 16; object-fit: contain; background: #102633; }
.zsp-guide-cover { display: grid; width: min(100%, 15rem); min-height: 12rem; justify-self: center; align-content: start; gap: .4rem; margin: 0; overflow: hidden; border: 1px solid #d3e1e7; border-radius: .65rem; background: #fff; }
.zsp-guide-cover img { display: block; width: 100%; aspect-ratio: 1654 / 2339; object-fit: contain; background: #eef4f7; }
.zsp-guide-cover figcaption { padding: 0 .65rem .55rem; color: #577182; font-size: .7rem; line-height: 1.45; text-align: center; }
.zsp-guide-cover-pending { place-items: center; align-content: center; padding: 1rem; color: #577182; font-size: .8rem; text-align: center; }
.zsp-protected-form { display: grid; gap: .5rem; margin: 0; padding: .9rem; border: 1px solid #bed2dc; border-radius: .7rem; background: #f4f8fa; }
.zsp-protected-form > label { color: #244e65; font-size: .83rem; font-weight: 750; }
.zsp-protected-form-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .55rem; }
.zsp-protected-form input { min-width: 0; min-height: 44px; padding: .6rem .75rem; border: 1px solid #a9c3d0; border-radius: .55rem; background: #fff; color: #193c50; font: inherit; }
.zsp-protected-form button:disabled { cursor: wait; opacity: .65; }
.zsp-download-status { min-height: 1.45em; color: #5f7785; font-size: .75rem; }
.zsp-booking-notice { padding: 1rem; border-radius: .7rem; background: #f1f6f8; color: #496574; font-size: .84rem; }
.zsp-booking-notice h2 { margin-bottom: .35rem; color: #244d64; font-size: .98rem; }
@media (max-width: 70rem) { .zsp-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 52rem) {
  .zsp-guide > .zsp-guide-download-layout { grid-template-columns: minmax(0, 1fr); }
  .zsp-guide-video, .zsp-guide-download { width: min(100%, 28rem); justify-self: center; }
}
@media (max-width: 42rem) {
  .zsp-grid { grid-template-columns: minmax(0, 1fr); }
  .zsp-filter-row { grid-template-columns: minmax(0, 1fr) auto; gap: .65rem; }
  .zsp-filter-row > .zsp-field:first-child { grid-column: 1 / -1; }
  .zsp-filter-row > button { align-self: end; padding-inline: .65rem; }
  .zsp-filter-panel { padding: .8rem; }
  .zsp-advice { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; }
  .zsp-advice > .zsp-fold > summary { padding: .55rem .65rem; font-size: .82rem; line-height: 1.45; overflow-wrap: anywhere; }
  .zsp-root .zsp-advice { margin-block-start: .65rem; }
  .zsp-root .zsp-listing { margin-block-start: .9rem; }
  .zsp-card { padding: .8rem; }
  .zsp-card-head { grid-template-columns: 92px minmax(0, 1fr); gap: .65rem; }
  .zsp-card-title h3 { font-size: 1.03rem; }
  .zsp-choose-list { columns: 1; }
  .zsp-guide > .zsp-guide-download-layout { gap: .8rem; margin-inline: .65rem; }
  .zsp-guide-download { padding: .75rem; }
  .zsp-guide-cover { width: min(100%, 13.5rem); }
  .zsp-protected-form-row { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) { .zsp-root * { scroll-behavior: auto; } }

/* Match the approved MNO topic-card rhythm: large media, quiet surfaces and
   the same compact type scale.  This remains scoped to the split stay page. */
html.v2-zao-preview[data-zao-preview-page="stay"] .zsp-root {
  font-family: "Noto Sans TC", "Microsoft JhengHei", sans-serif;
}
html.v2-zao-preview[data-zao-preview-page="stay"] .zsp-grid { align-items: stretch; }
html.v2-zao-preview[data-zao-preview-page="stay"] .zsp-card {
  display: flex;
  overflow: hidden;
  flex-direction: column;
  gap: .55rem;
  padding: 0;
  border-color: #d5e0e4;
  border-radius: .75rem;
  background: #fff;
  box-shadow: none;
}
html.v2-zao-preview[data-zao-preview-page="stay"] .zsp-card-head { display: contents; }
html.v2-zao-preview[data-zao-preview-page="stay"] .zsp-photo {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 3;
  margin: 0;
  border-radius: 0;
  background: #eef4f7;
}
html.v2-zao-preview[data-zao-preview-page="stay"] .zsp-photo .v2-snow-media__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
html.v2-zao-preview[data-zao-preview-page="stay"] .zsp-photo .v2-snow-media-placeholder {
  width: 100%;
  height: 100%;
  min-height: 0;
  padding: 1rem;
}
html.v2-zao-preview[data-zao-preview-page="stay"] .zsp-photo .v2-snow-media-placeholder__mark { display: grid; }
html.v2-zao-preview[data-zao-preview-page="stay"] .zsp-photo .v2-snow-media__caption {
  position: absolute;
  inset: auto 0 0;
  padding: .35rem .55rem;
  color: #173f5c;
  background: rgb(255 255 255 / 92%);
  font-size: .65rem;
  line-height: 1.4;
}
html.v2-zao-preview[data-zao-preview-page="stay"] .zsp-card-title { padding: .45rem 1rem 0; }
html.v2-zao-preview[data-zao-preview-page="stay"] .zsp-card-title h3 {
  color: #183e56;
  font-size: 1rem;
  line-height: 1.45;
}
html.v2-zao-preview[data-zao-preview-page="stay"] .zsp-meta { color: #577182; font-size: .7rem; }
html.v2-zao-preview[data-zao-preview-page="stay"] :is(
  .zsp-summary,
  .zsp-tags,
  .zsp-card-notice,
  .zsp-card > .zsp-link,
  .zsp-card-details
) { margin-inline: 1rem; }
html.v2-zao-preview[data-zao-preview-page="stay"] .zsp-summary { color: #617887; font-size: .82rem; }
html.v2-zao-preview[data-zao-preview-page="stay"] .zsp-tags li {
  border-radius: .35rem;
  color: #416678;
  background: #eef4f4;
  font-size: .7rem;
}
html.v2-zao-preview[data-zao-preview-page="stay"] .zsp-card-details {
  margin-top: auto;
  margin-bottom: .35rem;
}

@media (max-width: 47.5rem) {
  html.v2-zao-preview[data-zao-preview-page="stay"] .zsp-card {
    display: flex;
  }
  html.v2-zao-preview[data-zao-preview-page="stay"] .zsp-photo {
    min-height: 0;
    aspect-ratio: 16 / 9;
  }
  html.v2-zao-preview[data-zao-preview-page="stay"] .zsp-card-title { padding: .3rem .85rem 0; }
  html.v2-zao-preview[data-zao-preview-page="stay"] :is(
    .zsp-summary,
    .zsp-tags,
    .zsp-card-notice,
    .zsp-card > .zsp-link,
    .zsp-card-details
  ) { margin-inline: .85rem; }
}

@media (max-width: 24rem) {
  html.v2-zao-preview[data-zao-preview-page="stay"] .zsp-card-title { padding-inline: .8rem; }
  html.v2-zao-preview[data-zao-preview-page="stay"] :is(
    .zsp-summary,
    .zsp-tags,
    .zsp-card-notice,
    .zsp-card > .zsp-link,
    .zsp-card-details
  ) { margin-inline: .8rem; }
}
