/* Public booklet only. The shared client kit is unchanged. */
.guide-free .eyebrow,
.guide-free th,
.guide-free .kicker,
.guide-free .label,
.guide-free .meta,
.guide-free .cover-foot { color: var(--muted); }
.guide-free .cover--type .eyebrow,
.guide-free .back--type .eyebrow { color: var(--seal); }
.guide-free .cover-edition span { font-family: var(--font-cjk); }
.guide-free .page { scroll-margin-top: 78px; }
.guide-free a:focus-visible,
.guide-free button:focus-visible { outline: 2px solid var(--seal); outline-offset: 4px; }
.guide-free .print-btn:disabled { cursor: progress; }

/* The arrival cover: open type, a real journey photograph, a small Chinese title. */
.guide-free .cover--arrival {
  padding: 16mm 18mm 12mm;
  grid-template-rows: 32px auto minmax(0, 1fr) auto auto;
  gap: 26px;
}
.guide-free .cover--arrival::before { content: none; }
.guide-free .cover-masthead { display: flex; justify-content: space-between; align-items: center; }
.guide-free .cover-masthead .wordmark,
.guide-free .cover-masthead .cover-edition { position: static; }
.guide-free .cover--arrival .cover-content { align-self: start; max-width: none; padding: 0; }
.guide-free .cover--arrival .eyebrow { display: flex; align-items: center; gap: 22px; margin: 0 0 18px; }
.guide-free .cover-chinese { font: 500 16px/1.3 var(--font-cjk); letter-spacing: .2em; }
.guide-free .cover--arrival h1 { max-width: none; font-size: 96px; line-height: .94; }
.guide-free .cover-photograph { min-height: 0; margin: 0 calc(var(--page-x) * -1); overflow: hidden; }
.guide-free .cover-photograph img { object-position: 50% 52%; }
.guide-free .cover--arrival .cover-introduction { max-width: 64ch; font-size: 16px; line-height: 1.5; }
.guide-free .cover--arrival .cover-foot { margin: 0; padding-top: 10px; color: var(--muted); }

@media screen and (max-width: 860px) {
  .guide-free .cover--arrival { min-height: 100svh; padding: 30px 24px 34px; gap: 26px; grid-template-rows: auto auto auto auto auto; }
  .guide-free .cover--arrival .cover-content { padding: 0 !important; }
  .guide-free .cover--arrival h1 { font-size: clamp(62px, 15vw, 96px); }
  .guide-free .cover--arrival .eyebrow { flex-wrap: wrap; gap: 12px 20px; font-size: 9px; }
  .guide-free .cover-chinese { font-size: 14px; }
  .guide-free .cover-photograph { height: clamp(260px, 64vw, 430px); margin: 0 -24px; }
  .guide-free .cover--arrival .cover-introduction { font-size: 15px; }
  .guide-free .cover-foot { gap: 10px; font-size: 8px; letter-spacing: .06em; }
}
@media print {
  .guide-free .page { box-shadow: none; }
  .guide-free .page:last-child { break-after: auto; page-break-after: auto; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
/* Keep the closing-note label clear of the existing lattice rule. */
.guide-free .back--type .cover-window { top: 28mm; }
@media screen and (max-width: 860px) {
  /* Avoid the inherited A4 padding plus the mobile content padding clipping text. */
  .guide-free .back--type { padding: 0; }
  .guide-free .back--type .back-content { min-width: 0; width: 100%; }
  .guide-free .back--type .contact { overflow-wrap: anywhere; }
}

/* Use each A4 page as a complete spread, without adding filler copy. */
.guide-free #payments > .stack,
.guide-free #apps > .stack,
.guide-free #cities > .stack,
.guide-free #shanghai > .stack,
.guide-free #reading > .stack { height: 100%; align-content: stretch; min-height: 0; }
.guide-free #payments > .stack { grid-template-rows: auto auto auto minmax(0, 1fr) auto; }
.guide-free #apps > .stack { grid-template-rows: auto minmax(0, 1fr) auto auto; }
.guide-free #cities > .stack { grid-template-rows: auto auto minmax(0, 1fr) auto auto; }
.guide-free #shanghai > .stack { grid-template-rows: auto auto minmax(0, 1fr) auto; }
.guide-free #reading > .stack { grid-template-rows: auto minmax(0, 1fr) auto; }
.guide-free .practical-photo { min-height: 0; margin: 0 calc(var(--page-x) * -1); overflow: hidden; }
.guide-free #payments .practical-photo img { object-position: 50% 52%; }
.guide-free .table { font-size: 14px; }
.guide-free .table th { font-size: 9.5px; }
.guide-free .table td { vertical-align: middle; padding: 14px 8px; }
.guide-free .table th { height: 38px; }
.guide-free .note { display: flex; flex-wrap: wrap; gap: 10px 24px; padding: 14px 16px; }
.guide-free .official-index { display: grid; grid-template-rows: repeat(3,1fr); border-top: 1px solid var(--line); }
.guide-free .official-index a { display: grid; grid-template-columns: 28px 1fr 24px; gap: 18px; align-items: center; padding: 22px 0; border-bottom: 1px solid var(--line); text-decoration: none; }
.guide-free .official-index a span:nth-child(2) { max-width: 16ch; font: 500 36px/1.1 var(--font-display); }
.guide-free .official-index a span:first-child { color: var(--seal); font: 500 11px var(--font-mono); }
.guide-free .official-index a span:last-child { color: var(--seal); font-size: 22px; }
.guide-free .official-index a:hover span:nth-child(2) { text-decoration: underline; text-underline-offset: .15em; text-decoration-thickness: 1px; }
@media screen and (max-width: 860px) {
  .guide-free #payments > .stack,
  .guide-free #apps > .stack,
  .guide-free #cities > .stack,
  .guide-free #shanghai > .stack,
  .guide-free #reading > .stack { height: auto; grid-template-rows: none; align-content: start; }
  .guide-free .practical-photo { height: 300px; margin: 0 -22px; }
  .guide-free #shanghai .practical-photo { height: 330px; }
  .guide-free .table { font-size: 13px; }
  .guide-free .table td { padding: 15px 6px; }
  .guide-free .official-index a { min-height: 140px; grid-template-columns: 20px 1fr 20px; gap: 12px; }
  .guide-free .official-index a span:nth-child(2) { font-size: 29px; }
}

@media screen and (max-width: 860px) {
  /* Let mobile reading follow the content instead of a viewport-sized sheet. */
  .guide-free .page:not(.cover):not(.back) { min-height: 0; }
}
