/* GuestGuru page: the Night Train Dossier direction. Near-black ground, navy bar, one brass accent,
   a large light serif for headlines and small tracked capitals for labels. Every text colour here
   is AA or better on its ground (cream on #0b101c is about 15:1, brass-lt about 9:1). */
body.gg { background: #0b101c; color: #e9e3d4; }
body.gg .site-head { background: #0e1628e6; border-bottom-color: #d6b98a30; }
body.gg .wordmark { color: var(--white); }
body.gg .site-nav a { color: #cfc8b8; }
body.gg .site-nav a:hover, body.gg .site-nav a[aria-current="page"] { color: var(--white); }
body.gg h1, body.gg h2, body.gg h3 { color: var(--white); font-weight: 500; }
body.gg .eyebrow { color: var(--brass-lt); }
body.gg .lede { color: #d9d2c2; }

.gg-hero { padding: clamp(64px, 10vw, 128px) 0 clamp(40px, 6vw, 72px); }
.gg-hero .wrap { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: clamp(28px, 5vw, 72px); align-items: center; }
.gg-hero h1 { font-size: clamp(2.6rem, 6.6vw, 5rem); font-weight: 500; }
.gg-hero h1 em { color: var(--brass-lt); font-style: italic; }
.gg-hero .actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 28px; }
.gg-hero .ghost { color: var(--cream); }
.provisional { display: inline-block; margin-top: 26px; padding: 8px 14px; border: 1px solid #d6b98a66; border-radius: 6px; font-size: 0.78rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--brass-lt); }

/* station bar: a sticky five-tab strip, like the timetable it borrows from */
.stations { position: sticky; top: 68px; z-index: 40; background: var(--navy); border-block: 1px solid #d6b98a30; }
.stations ol { list-style: none; margin: 0 auto; padding: 0 var(--gut); max-width: calc(var(--col) + 2 * var(--gut)); display: flex; gap: 4px; overflow-x: auto; scrollbar-width: none; }
.stations a { display: block; padding: 16px 14px; font-size: 0.74rem; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: #d9d2c2; text-decoration: none; white-space: nowrap; }
.stations a:hover { color: var(--white); box-shadow: inset 0 -2px 0 var(--brass); }

.gg-sec { padding: clamp(56px, 9vw, 112px) 0; scroll-margin-top: 130px; }
.gg-sec + .gg-sec { border-top: 1px solid #d6b98a22; }
.gg-sec h2 { font-size: clamp(2rem, 4.4vw, 3.2rem); }

/* a phone, drawn in CSS, showing a sample itinerary */
.phone { width: min(340px, 100%); margin: 0 auto; border-radius: 40px; background: #05080f; padding: 12px; box-shadow: 0 0 0 1px #d6b98a40, 0 30px 70px #000a; }
.phone__screen { border-radius: 30px; background: #111a2e; padding: 20px 18px 24px; min-height: 520px; display: grid; align-content: start; gap: 12px; }
.phone__title { font-family: var(--serif); font-size: 1.6rem; color: var(--white); margin: 0 0 2px; }
.phone__sub { margin: 0 0 8px; font-size: 0.7rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--brass-lt); }
.dep { background: #16213c; border: 1px solid #d6b98a30; border-radius: 14px; padding: 14px 16px; }
.dep b { display: block; font-family: var(--serif); font-size: 1.25rem; font-weight: 500; color: var(--white); }
.dep dl { display: grid; grid-template-columns: auto 1fr; gap: 2px 14px; margin: 8px 0 0; font-size: 0.82rem; }
.dep dt { color: var(--brass-lt); letter-spacing: 0.14em; text-transform: uppercase; font-size: 0.66rem; padding-top: 3px; }
.dep dd { margin: 0; color: #e9e3d4; }
.code { float: right; font-size: 0.7rem; letter-spacing: 0.16em; color: var(--brass-lt); border: 1px solid #d6b98a55; padding: 2px 8px; border-radius: 4px; }

.board { margin-top: 36px; border: 1px solid #d6b98a30; border-radius: 16px; overflow: hidden; }
.board__row { display: grid; grid-template-columns: 110px 1fr 1fr 1fr; gap: 16px; padding: 18px 22px; align-items: baseline; }
.board__row + .board__row { border-top: 1px solid #d6b98a22; }
.board__row--head { background: var(--navy); font-size: 0.7rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--brass-lt); font-weight: 600; }
.board__row b { font-family: var(--serif); font-size: 1.35rem; font-weight: 500; color: var(--white); }
.board__code { color: var(--brass-lt); letter-spacing: 0.16em; font-size: 0.82rem; }

.cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 18px; margin-top: 36px; }
.card { background: #111a2e; border: 1px solid #d6b98a30; border-radius: 16px; padding: 26px; }
.card h3 { font-size: 1.6rem; margin-bottom: 8px; }
.card p { margin: 0; color: #d9d2c2; font-size: 0.98rem; }

.gg-cta { text-align: center; }
.gg-cta .lede { margin-inline: auto; }

@media (max-width: 860px) {
  .gg-hero .wrap { grid-template-columns: 1fr; }
  .board__row--head { display: none; }
  .board__row { grid-template-columns: 1fr; gap: 4px; }
  .stations { top: 68px; }
}

.cta-more { margin-top: 28px; }
.cta-more .ghost { color: var(--cream); }
