/* Safarnama phone design "D" (3 Oct 2026): Journey layout (photo headers, swipe rows) with the
   passport look (paper, navy ink, gold rules, stamps, ticket prices). Loaded last on every Safarnama
   page except the app, applies only at phone width; the laptop layout is untouched.
   Light: paper ground, navy ink, gold. Dark: deep navy ground, cream ink, gold; tickets turn cream. */

.pc-discover, .ph-only, .dtabs, .nav-sm-home, .fy-more, .fy-stamp, .fy-md, .rt-card-stamp, .rt-card-md { display: none; }
.fy-photo img.fy-md, .rt-list-cards .rt-card-photo img.rt-card-md { display: none; }

@media (max-width: 640px) {
  /* ================= Tokens ================= */
  :root:not([data-theme="dark"]) {
    --d-paper: #F5EDDC; --d-card: #FBF6EA; --d-ink: #173C63; --d-mute: #5C6B7E; --d-gold: #805717; --d-rule: #B8862E;
    --d-gold2: #E9C77B; --d-line: rgba(23,60,99,.14); --d-dash: rgba(23,60,99,.3); --d-dots: rgba(150,110,40,.07);
    --d-ticket: #173C63; --d-ticket-fg: #F5EDDC; --d-ticket-k: #E9C77B; --d-ticket-sub: #D8CDB4; --d-ticket-dash: rgba(233,199,123,.45);
    --d-cta: #E9C77B; --d-cta-fg: #173C63; --d-btn: #173C63; --d-btn-fg: #F5EDDC;
    --d-tab: #173C63; --d-tab-fg: #AEBBD0; --d-tab-on: #E9C77B; --d-tint: #EFE2C4;
  }
  :root[data-theme="dark"] {
    --d-paper: #0E1830; --d-card: #16233F; --d-ink: #EFE6D2; --d-mute: #A9B5C9; --d-gold: #E0B65F; --d-rule: #C9A14E;
    --d-gold2: #E9C77B; --d-line: rgba(233,199,123,.16); --d-dash: rgba(233,199,123,.3); --d-dots: rgba(233,199,123,.035);
    --d-ticket: #EDE0C2; --d-ticket-fg: #173C63; --d-ticket-k: #805717; --d-ticket-sub: #4F5D70; --d-ticket-dash: rgba(23,60,99,.3);
    --d-cta: #173C63; --d-cta-fg: #F5EDDC; --d-btn: #E9C77B; --d-btn-fg: #14233F;
    --d-tab: #0A1226; --d-tab-fg: #8C9AB3; --d-tab-on: #E9C77B; --d-tint: rgba(233,199,123,.1);
  }
  :root, :root[data-theme="dark"] {
    --bg: var(--d-paper); --bg-2: var(--d-card); --surface: var(--d-card); --text: var(--d-ink); --muted: var(--d-mute);
    --saffron: var(--d-btn); --saffron-deep: var(--d-gold); --saffron-tint: var(--d-tint); --navy: var(--d-ink); --green: var(--d-btn);
    --line: var(--d-line); --line-soft: var(--d-line); --border: var(--d-line); --border-soft: var(--d-line);
    --callout-bg: var(--d-tint); --callout-border: var(--d-dash); --doc-text: var(--d-ink);
    --shadow: 0 6px 18px rgba(14,42,74,.08); --shadow-lg: 0 10px 26px rgba(14,42,74,.12);
    --ph-title: 1.75rem; --ph-h2: 1.3rem; --ph-h3: 1.02rem; --ph-body: .95rem; --ph-meta: .8rem; --ph-label: .66rem;
    --d-navh: 58px; --d-tabh: 60px; --d-safe: env(safe-area-inset-bottom, 0px);
    --serif: 'Playfair Display', Georgia, 'Times New Roman', serif;
  }

  /* ================= Page ground, scroll, type ================= */
  html { scrollbar-width: none; -webkit-text-size-adjust: 100%; }
  html::-webkit-scrollbar, body::-webkit-scrollbar { display: none; width: 0; height: 0; }
  html, body { background-color: var(--d-paper) !important; }
  body { background-image: radial-gradient(var(--d-dots) 1px, transparent 1px); background-size: 5px 5px; color: var(--d-ink);
    font-size: var(--ph-body); line-height: 1.6; }
  html.has-dtabs body { padding-bottom: calc(var(--d-tabh) + var(--d-safe)); }
  .ph-only { display: block; }
  /* swipe rows: snap to the 18px page edge, not the screen edge */
  .trailgrid, .price-grid, .rt-list-cards, .fy-sec-trails .fy-grid, .fy-sec-longroad .fy-grid, .trailchips, .fy-controls .fy-row, #preview .pv-chips { scroll-padding-inline: 18px; }

  h1, .rt-head h1, .section-head h1, .si-wrap h1, .essay-wrap h1, .story-wrap h1, .doc h1 {
    font-family: var(--serif); font-size: var(--ph-title) !important; line-height: 1.18 !important; letter-spacing: -.01em; color: var(--d-ink); }
  h2, .section-head h2, .rt-sec h2, .fy-sec-head h2, .essay-wrap h2, .doc h2, .band h2, #passport h2.title, .pv-title, #preview .pv-title, .si-featured h2 {
    font-family: var(--serif); font-size: var(--ph-h2) !important; line-height: 1.25 !important; color: var(--d-ink); text-wrap: balance; }
  h3, .fy-card h3, .si-card h3, .price-card h3, .howstop h3, #preview .pv-stopname, #preview .pv-city, .mon-acc .ma-name, .doc details.hq > summary {
    font-family: var(--serif); font-size: var(--ph-h3) !important; line-height: 1.3 !important; }
  main p, section p, main li, section li, .rt-lead, .si-lead, .lede, .pv-hist, .story-wrap p, .essay-wrap p, .doc p, .doc li, #faq p {
    font-size: var(--ph-body) !important; line-height: 1.6 !important; }
  .eyebrow, .band-eyebrow, .si-eyebrow, .si-tag, .si-f-tag, .pv-eyebrow, .pc-badge, .fy-trail, .fy-label, .ui-eyebrow, .story-tag,
  #passport .eyebrow, .ab-label, .pv-stopdesc, .mon-tools {
    font-size: var(--ph-label) !important; letter-spacing: .2em !important; text-transform: uppercase; color: var(--d-gold) !important; font-weight: 700; }
  .wrap, .rt-page .wrap, .find-page .wrap { padding-left: 18px !important; padding-right: 18px !important; }
  section { padding-top: 30px !important; padding-bottom: 30px !important; }
  .section-head { margin-bottom: 14px !important; text-align: left !important; }
  .section-head h2, .section-head h1 { margin: 6px 0 6px !important; }
  .section-head p { color: var(--d-mute) !important; }
  .btn { font-size: .9rem !important; padding: 12px 18px !important; border-radius: 10px !important; }
  .btn-primary, .btn-solid { background: var(--d-btn) !important; border-color: var(--d-btn) !important; color: var(--d-btn-fg) !important; }
  .btn-outline { background: transparent !important; border-color: var(--d-ink) !important; color: var(--d-ink) !important; }

  /* Gold double rule: the one section separator on every page */
  #how, #preview, #passport, #sync, #cities, #pricing, #faq { border-top: 3px double var(--d-rule) !important; border-bottom: 0 !important; }

  /* ================= Top bar ================= */
  .nav, .nav.scrolled, .nav:not(.scrolled), .nav:not(.scrolled):not(.open) {
    background: var(--d-paper) !important; background-image: none !important; border-bottom: 1px solid var(--d-line) !important;
    box-shadow: none !important; backdrop-filter: none !important; -webkit-backdrop-filter: none !important; }
  .nav-inner { height: var(--d-navh); padding: 0 16px !important; gap: 10px !important; }
  .nav .brand .mark, .nav:not(.scrolled) .brand .mark { color: var(--d-ink) !important; font-size: 1.25rem !important; }
  .nav .brand .mark b, .nav:not(.scrolled) .brand .mark b { color: var(--d-gold) !important; }
  .nav .brand .by { display: none !important; }
  .nav .nav-toggle, .nav:not(.scrolled) .nav-toggle, .nav.open:not(.scrolled) .nav-toggle { color: var(--d-ink) !important; }
  .nav .theme-toggle, .nav:not(.scrolled) .theme-toggle { width: 32px !important; height: 32px !important; background: var(--d-card) !important; border-color: var(--d-line) !important; }
  /* Menu: a sheet under the top bar, numbered like passport chapters, page dimmed and held still behind it */
  html:has(.nav.open), html:has(.nav.open) body { overflow: hidden !important; }
  .nav.open .nav-links { position: fixed !important; top: var(--d-navh) !important; left: 0 !important; right: 0 !important;
    max-height: calc(100dvh - var(--d-navh) - var(--d-tabh) - var(--d-safe)); overflow-y: auto; display: flex !important; flex-direction: column !important;
    gap: 0 !important; background: var(--d-paper) !important; border-bottom: 3px double var(--d-rule) !important;
    padding: 6px 20px 18px !important; counter-reset: dmenu; box-shadow: 0 0 0 100vmax rgba(14,26,46,.45) !important;
    clip-path: inset(0 -100vmax -100vmax -100vmax); /* dim the page below, never the top bar (its button closes the menu) */
    animation: dmenuIn .18s ease-out; }
  /* The menu button turns into a close cross while the menu is open */
  .nav-toggle svg line { transform-box: fill-box; transform-origin: center; transition: transform .18s ease, opacity .12s ease; }
  .nav.open .nav-toggle svg line:nth-child(1) { transform: translateY(6px) rotate(45deg); }
  .nav.open .nav-toggle svg line:nth-child(2) { opacity: 0; }
  .nav.open .nav-toggle svg line:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
  @media (prefers-reduced-motion: reduce) { .nav-toggle svg line { transition: none; } }
  @keyframes dmenuIn { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }
  .nav.open .nav-links::before { content: "Explore"; display: block; padding: 10px 0 4px; font: 700 .62rem/1 var(--d-sans, inherit);
    letter-spacing: .22em; text-transform: uppercase; color: var(--d-gold); }
  .nav.open .nav-explore, .nav.open .nav-dropdown { display: contents !important; }
  .nav.open .nav-explore-btn { display: none !important; }
  .nav.open .nav-links a { counter-increment: dmenu; display: grid !important; grid-template-columns: 30px 1fr auto; align-items: baseline;
    color: var(--d-ink) !important; font-family: var(--d-serif, 'Playfair Display', Georgia, serif) !important; font-size: 1.12rem !important;
    font-weight: 600 !important; padding: 13px 0 !important; border-bottom: 1px solid var(--d-line) !important; text-decoration: none !important; }
  .nav.open .nav-links a::before { content: counter(dmenu, decimal-leading-zero); font: 600 .7rem/1 var(--d-sans, inherit); letter-spacing: .08em; color: var(--d-gold); }
  .nav.open .nav-links a .nd-arrow { justify-self: end; color: var(--d-gold) !important; font-size: .9rem !important; }
  .nav.open .nav-links > a::after { content: "\2192"; justify-self: end; color: var(--d-gold) !important; font-size: .9rem !important; }
  .nav.open .nd-intro { display: none !important; }
  .nav.open .nav-links a.nav-login-mobile { justify-content: center !important; text-align: center !important; }
  .nav.open .nav-links { text-align: left !important; align-items: stretch !important; }
  .nav.open .nav-links a { text-align: left !important; align-items: center !important; }
  .nav.open .nav-links a { width: 100% !important; justify-content: initial !important; }
  .nav.open .nav-links a.nav-login-mobile { counter-increment: none; display: flex !important; justify-content: center; margin-top: 16px;
    padding: 12px !important; border: 0 !important; border-radius: 10px; font-family: inherit !important; font-size: .95rem !important;
    background: var(--d-btn) !important; color: var(--d-btn-fg) !important; }
  .nav.open .nav-links a.nav-login-mobile::before, .nav.open .nav-links a.nav-login-mobile::after { content: none !important; }
  .section-index, .sbar { display: none !important; }
  .fb-tab { bottom: calc(var(--d-tabh) + var(--d-safe) + 12px) !important; background: var(--d-ticket) !important; color: var(--d-ticket-fg) !important; }

  /* ================= Bottom tab bar ================= */
  .dtabs { display: grid; grid-template-columns: repeat(4, 1fr); position: fixed; left: 0; right: 0; bottom: 0; z-index: 95;
    height: calc(var(--d-tabh) + var(--d-safe)); padding-bottom: var(--d-safe); background: var(--d-tab);
    border-top: 1px solid rgba(233,199,123,.18); }
  .dtabs a { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; color: var(--d-tab-fg) !important;
    font: 600 .64rem/1 var(--sans, sans-serif); letter-spacing: .02em; text-decoration: none !important; }
  .dtabs a svg { width: 22px; height: 22px; }
  .dtabs a.on { color: var(--d-tab-on) !important; }
  .dtabs a:focus-visible { outline: 2px solid var(--d-tab-on); outline-offset: -4px; }

  /* ================= Ticket (prices and the free first city) ================= */
  .dticket.ph-only { display: flex; }
  .dticket { position: relative; z-index: 3; align-items: center; gap: 14px; margin: -34px 0 0; padding: 14px 16px;
    background: var(--d-ticket); color: var(--d-ticket-fg); border-radius: 12px; box-shadow: 0 14px 30px rgba(14,42,74,.25); }
  .dticket::before, .dticket::after { content: ""; position: absolute; top: 50%; width: 16px; height: 16px; margin-top: -8px; border-radius: 50%; background: var(--d-paper); }
  .dticket::before { left: -8px; } .dticket::after { right: -8px; }
  .dticket .tl { flex: 1; min-width: 0; padding-right: 14px; border-right: 1.5px dashed var(--d-ticket-dash); }
  .dticket .k { font-size: .6rem; letter-spacing: .24em; text-transform: uppercase; font-weight: 700; color: var(--d-ticket-k); }
  .dticket b { display: block; font-family: var(--serif); font-size: 1.7rem; line-height: 1.1; margin-top: 2px; }
  .dticket small { display: block; font-size: .72rem; line-height: 1.4; color: var(--d-ticket-sub); }
  .dticket .dcta { flex: 0 0 auto; background: var(--d-cta); color: var(--d-cta-fg) !important; border-radius: 10px; padding: 11px 16px;
    font-weight: 700; font-size: .88rem; text-decoration: none !important; white-space: nowrap; }
  .dticket-hero { margin: -34px 16px 0; }

  /* ================= Landing page ================= */
  body > .hero, .hero { display: block !important; position: relative; margin-top: var(--d-navh); height: 410px; aspect-ratio: auto !important; overflow: hidden !important; }
  .hero-bg { position: absolute !important; inset: 0 !important; width: 100% !important; height: 100% !important; aspect-ratio: auto !important; }
  .hero::before { display: block !important; content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(14,42,74,.05) 20%, rgba(14,42,74,.93) 100%) !important; }
  .hero .wrap { position: absolute !important; left: 0; right: 0; bottom: 46px; z-index: 2; background: transparent !important; padding-top: 0 !important; padding-bottom: 0 !important; }
  .hero h1 { color: #fff !important; font-size: 2.15rem !important; line-height: 1.08 !important; margin: 6px 0 8px !important; }
  .hero h1 .accent { color: #E9C77B !important; }
  .hero-eyebrow span:last-child { color: #E9C77B !important; font-size: .64rem !important; letter-spacing: .24em !important; }
  .hero-eyebrow .he-rule { background: #E9C77B !important; }
  .hero-lead { color: rgba(255,255,255,.9) !important; font-size: .92rem !important; margin: 0 0 8px !important; }
  .hero-actions { display: none !important; }
  .hero-facts { margin: 0 !important; color: #fff !important; text-shadow: none !important; font-size: .66rem !important; letter-spacing: .16em !important; }
  .hero-facts span { color: #E9C77B !important; }
  .hero-credit { position: absolute !important; top: 8px; right: 10px; bottom: auto !important; left: auto !important; z-index: 2;
    padding: 0 !important; font-size: 9px !important; color: rgba(255,255,255,.8) !important; text-align: right; }
  .founding-band, #foundingBand { background: var(--d-ticket) !important; color: var(--d-ticket-fg) !important; font-size: .78rem !important; padding: 10px 18px !important; margin-top: 16px; }
  .founding-band b, .founding-band a, .founding-band .fb-count { color: var(--d-ticket-k) !important; }
  .band-mindful { background: transparent !important; padding: 28px 0 !important; }
  .band-mindful blockquote { font-size: 1.35rem !important; color: var(--d-ink) !important; }
  .band-mindful .bp-sub { font-size: var(--ph-meta) !important; }
  .mindful-pill { background: var(--d-card) !important; color: var(--d-ink) !important; border: 1px solid var(--d-line); font-size: .82rem !important; padding: 8px 14px !important; }

  #how, #preview, #passport, #sync, #cities, #pricing, #faq, .pricing, .logbar, .cities { background: transparent !important; }
  .cities { --bg: var(--d-paper); --bg-2: var(--d-card); --text: var(--d-ink); --muted: var(--d-mute); --line: var(--d-line); --line-soft: var(--d-line);
    --saffron: var(--d-btn); --saffron-deep: var(--d-gold); --saffron-tint: var(--d-tint); color: var(--d-ink); }

  /* How it works: three numbered step cards */
  .howline { grid-template-columns: 1fr !important; gap: 8px !important; margin-top: 10px !important; }
  .howstop { display: block !important; position: relative; padding: 12px 12px 12px 58px !important; background: var(--d-card);
    border: 1px solid var(--d-line); border-radius: 10px; }
  .howstop .hs-dot, .how-photo-credit { display: none !important; }
  .howstop .hs-step-label { position: absolute; left: 12px; top: 12px; width: 34px; height: 34px; border-radius: 50%; margin: 0 !important;
    display: grid !important; place-items: center; background: var(--d-ticket); color: var(--d-cta) !important;
    font-family: var(--serif) !important; font-size: .85rem !important; letter-spacing: 0 !important; }
  .howstop h3 { margin: 0 0 2px !important; color: var(--d-ink); }
  .howstop p { font-size: var(--ph-meta) !important; color: var(--d-mute) !important; }
  .howstop .hs-check { background: transparent !important; color: var(--d-gold) !important; padding: 0 !important; margin-top: 6px !important; font-size: .74rem !important; }


  /* Passport: a compact sample instead of the full spread */
  #passport .pp-head { text-align: left !important; }
  #passport .lp, #passport .keep, #passport .share, #passport .booklet, #passport .pp-note, #passport .lp-cap { display: none !important; }
  .ph-pass { margin-top: 12px; background: var(--d-card); border: 1.5px dashed var(--d-dash); border-radius: 10px; padding: 14px; }
  .ph-pass-stamps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
  .ph-pass-stamps img { width: 100%; aspect-ratio: 880 / 586; object-fit: contain; display: block; filter: drop-shadow(0 3px 3px rgba(55,43,28,.18)); }
  .ph-pass-stamps img.lock { filter: grayscale(1); opacity: .45; }
  .ph-pass-prog { height: 6px; border-radius: 3px; background: var(--d-tint); margin: 12px 0 6px; overflow: hidden; }
  .ph-pass-prog i { display: block; height: 100%; width: 7%; background: linear-gradient(90deg, var(--d-ink), var(--d-rule)); }
  .ph-pass small { font-size: .74rem; color: var(--d-mute); }
  .ph-pass-rows { margin-top: 10px; display: grid; }
  .ph-pass-rows div { padding: 10px 0 0; margin-top: 10px; border-top: 1px solid var(--d-line); }
  .ph-pass-rows b { display: block; font-family: var(--serif); font-size: 1rem; color: var(--d-ink); }
  .ph-pass-rows span { font-size: var(--ph-meta); color: var(--d-mute); }

  /* Log it your way: a short list */
  .logbar .wrap { display: block !important; text-align: left !important; }
  .logbar .lb-methods { justify-content: start !important; }
  .logbar .lb-label { display: block; font-family: var(--serif); font-size: var(--ph-h2) !important; margin-bottom: 6px; color: var(--d-ink); }
  .logbar .lb-methods { display: grid !important; gap: 0 !important; }
  .logbar .lb-item { padding: 10px 0 !important; border-bottom: 1px solid var(--d-line); font-size: .88rem !important; color: var(--d-ink) !important; }
  .logbar .lb-item span { color: var(--d-mute) !important; }
  .logbar .lb-item b { color: var(--d-ink) !important; }
  .logbar .lb-club { display: inline-block; margin-top: 10px; color: var(--d-gold) !important; }

  /* Trails: map in a card, chips and cards swipe sideways */
  .stats-grid { display: none !important; }
  #cities .indiamap { background: var(--d-card) !important; border: 1px solid var(--d-line) !important; box-shadow: none !important; }
  .trailchips { flex-wrap: nowrap !important; overflow-x: auto; scrollbar-width: none; padding-bottom: 4px; max-width: calc(100vw - 72px); }
  .trailchips::-webkit-scrollbar { display: none; }
  .trailchip { flex: 0 0 auto; background: var(--d-paper) !important; border-color: var(--d-line) !important; color: var(--d-ink) !important; }
  .trailchips-credit { display: none !important; }
  .trailgrid-wrap { margin-left: calc(50% - 50vw) !important; margin-right: calc(50% - 50vw) !important; }
  .trailgrid { margin: 0 !important; -webkit-mask-image: none !important; mask-image: none !important; overflow-x: auto !important; scroll-snap-type: x mandatory; scrollbar-width: none; padding: 0 18px 6px; }
  .trailgrid::-webkit-scrollbar { display: none; }
  .trailgrid-track { animation: none !important; transform: none !important; width: auto !important; display: flex !important; gap: 10px !important; }
  .trailcard[aria-hidden="true"], .trailcard.cta[aria-hidden="true"] { display: none !important; }
  .trailcard { flex: 0 0 200px !important; height: 170px !important; aspect-ratio: auto !important; border-radius: 12px !important; scroll-snap-align: start; box-shadow: none !important; }
  .trailcard .tc-md { display: block; position: absolute; left: 8px; top: 8px; width: 42px; height: 42px; z-index: 3; filter: drop-shadow(0 3px 6px rgba(0,0,0,.35)); }
  .trailcard .tc-num { font-size: 1.02rem !important; line-height: 1.2 !important; }
  .trailcard .tc-cap { font-size: .72rem !important; }
  .trailcard.cta { background: var(--d-ticket) !important; color: var(--d-ticket-fg) !important; height: 170px !important; }
  .trailcard.cta .tcc-h { color: var(--d-ticket-fg) !important; }
  .trailcard.cta .tcc-s { color: var(--d-ticket-sub) !important; font-size: .78rem !important; }
  .trailcard.cta .tcc-b { background: var(--d-cta) !important; color: var(--d-cta-fg) !important; }
  .trailgrid-note, .trailgrid-credits { font-size: 10px !important; line-height: 1.5 !important; text-align: left !important; color: var(--d-mute) !important; }

  /* Pricing: plans as tickets in a swipe row */
  .price-grid { display: flex !important; max-width: none !important; gap: 12px !important; overflow-x: auto; scroll-snap-type: x mandatory;
    margin: 6px calc(50% - 50vw) 0 !important; padding: 8px 18px 10px !important; scrollbar-width: none; }
  .price-grid::-webkit-scrollbar { display: none; }
  .price-card, .price-card.featured, .price-card.pc-india { flex: 0 0 74% !important; scroll-snap-align: center; padding: 16px !important;
    background: var(--d-ticket) !important; color: var(--d-ticket-fg) !important; border: 0 !important; border-radius: 12px !important;
    box-shadow: 0 10px 22px rgba(14,42,74,.2) !important; outline: 1.5px dashed var(--d-ticket-dash); outline-offset: -7px; }
  .price-card .pc-sub, .price-card ul, #pcCityTiers, #pcTrailRange, #pcTrailName { display: none !important; }
  .price-card .pc-badge { background: transparent !important; color: var(--d-ticket-k) !important; padding: 0 !important; margin-bottom: 6px !important; }
  .price-card h3, .price-card .pc-price, .price-card .pc-price small { color: var(--d-ticket-fg) !important; }
  .price-card .pc-price { font-size: 1.6rem !important; margin-top: 4px; }
  .price-card .pc-was { color: var(--d-ticket-sub) !important; text-decoration: none !important; font-size: .74rem !important; }
  .price-card .pc-founding { color: var(--d-ticket-k) !important; font-size: .7rem !important; }
  .price-card .btn { background: var(--d-cta) !important; border-color: var(--d-cta) !important; color: var(--d-cta-fg) !important; margin-top: auto !important; padding: 10px !important; }
  /* Every plan reads the same way down: label, name, founding note, price, later price, button at the bottom. */
  .price-card, .price-card.featured, .price-card.pc-india { display: flex !important; flex-direction: column !important; }
  .price-card.featured .pc-badge { position: static !important; align-self: flex-start !important; }
  #pcCityWas, #pcTrailWas, #pcIndiaWas { margin-bottom: 14px !important; }
  .price-swipe { display: block !important; text-align: left; font-size: .72rem; color: var(--d-gold); margin-top: 4px; }
  .price-note { font-size: .76rem !important; text-align: left !important; color: var(--d-mute) !important; }

  /* Questions */
  #faq .faq-mini summary { font-size: .98rem !important; padding: 13px 0 !important; color: var(--d-ink) !important; }
  #faq .faq-mini summary::after { color: var(--d-gold) !important; }
  #faq .faq-mini details { border-color: var(--d-line) !important; }
  #faq .faq-mini p { padding: 0 0 14px !important; color: var(--d-mute) !important; }
  #faq .faq-all { color: var(--d-gold) !important; }

  /* ================= Footer (all pages) ================= */
  footer, .site-foot { background: #10233F !important; color: #EFE6D2 !important; }
  .footer-stripe { background: linear-gradient(90deg, #8A5F1C, #E9C77B, #8A5F1C) !important; height: 4px !important; }
  .footer-inner { padding: 30px 18px 22px !important; }
  .footer-lead { margin-bottom: 22px !important; align-items: center !important; }
  .footer-lead .fl-mark { font-size: 1.5rem !important; color: #fff !important; }
  .footer-lead .fl-mark b, .footer-lead .fl-mark span, .footer-lead .fl-tag { color: #E9C77B !important; }
  .footer-lead a.fl-cta, .footer-lead .fl-cta { background: #E9C77B !important; color: #173C63 !important; }
  .footer-nav { display: grid !important; grid-template-columns: 1fr 1fr; gap: 16px 14px !important; padding-bottom: 18px !important; border-bottom-color: rgba(233,199,123,.2) !important; }
  .footer-nav .fn-col h4 { margin-bottom: 4px !important; font-size: var(--ph-label) !important; color: #E9C77B !important; }
  .footer-nav .fn-col a { font-size: .85rem !important; padding: 3px 0 !important; color: #E3D8BF !important; }

  /* ================= Route pages (city, trail, All of India) ================= */
  .rt-page { padding-top: 10px !important; padding-bottom: 20px !important; }
  .rt-back { font-size: .74rem !important; color: var(--d-gold) !important; margin-bottom: 10px !important; }
  .ph-hero { position: relative; height: 280px; margin: 0 calc(50% - 50vw); overflow: hidden; }
  .ph-hero-img { width: 100%; height: 100%; object-fit: cover; display: block; }
  .ph-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(14,42,74,0) 18%, rgba(14,42,74,.6) 55%, rgba(14,42,74,.95) 100%); }
  .ph-kick, .ph-hero h1, .hero h1, .hero-eyebrow { text-shadow: 0 1px 10px rgba(0,0,0,.45); }
  .ph-hero-medal { position: absolute; right: 14px; top: 14px; width: 84px; height: 84px; z-index: 2; object-fit: contain; transform: rotate(-8deg); filter: drop-shadow(0 6px 10px rgba(0,0,0,.35)); }
  .ph-hero-medal.is-stamp { width: 124px; height: auto; transform: rotate(-6deg); }
  .ph-hero-t { position: absolute; left: 18px; right: 18px; bottom: 48px; z-index: 2; color: #fff; }
  .ph-kick { font-size: .62rem; letter-spacing: .26em; text-transform: uppercase; font-weight: 700; color: #E9C77B; }
  .ph-hero h1 { color: #fff !important; font-size: 1.8rem !important; margin: 4px 0 8px !important; }
  .ph-chips { display: flex; flex-wrap: wrap; gap: 6px; }
  .ph-chips span { font-size: .72rem; font-weight: 600; padding: 4px 10px; border-radius: 999px; background: rgba(245,237,220,.14); border: 1px solid rgba(233,199,123,.5); }
  .rt-head .eyebrow, .rt-head h1, .rt-stats { display: none !important; }
  .rt-head { margin-top: 16px; }
  .rt-tag { color: var(--d-gold) !important; font-size: .82rem !important; margin: 0 0 4px !important; }
  .rt-lead { margin: 0 0 4px !important; }
  .rt-grid { gap: 0 !important; }
  .rt-sec { margin: 20px 0 0 !important; padding: 16px 0 0 !important; background: transparent !important; border: 0 !important; border-top: 3px double var(--d-rule) !important;
    border-radius: 0 !important; box-shadow: none !important; }
  .rt-sec h2 { margin: 0 0 10px !important; padding-left: 0 !important; border-left: 0 !important; }
  .rt-mons { grid-template-columns: 1fr !important; gap: 0 !important; }
  .rt-mons li { padding: 8px 0 !important; font-size: .9rem !important; border-bottom-color: var(--d-line) !important; }
  .rt-mons li::before { color: var(--d-gold) !important; }
  /* Long-road chapters on a phone: photo on the left, words on the right, one per row */
  .rt-chap { grid-template-columns: 1fr !important; gap: 8px !important; }
  .rt-chap li { display: grid !important; grid-template-columns: 96px minmax(0, 1fr); align-items: center; background: var(--d-card) !important; border: 1px solid var(--d-line) !important; border-radius: 10px !important; }
  .rt-chap figure { aspect-ratio: auto !important; align-self: stretch; min-height: 88px; }
  .rt-chap-credit { display: none !important; }
  .rt-chap-n { left: 6px !important; top: 6px !important; min-width: 22px !important; height: 22px !important; font-size: 11px !important; background: var(--d-ticket) !important; color: var(--d-ticket-fg) !important; }
  .rt-chap-body { padding: 8px 12px !important; }
  .rt-chap-city { color: var(--d-gold) !important; font-size: .62rem !important; }
  .rt-chap h3 { color: var(--d-ink) !important; font-size: .98rem !important; }
  .rt-chap-meta { color: var(--d-mute) !important; font-size: .72rem !important; }
  .rt-incl { padding-left: 1.1em; } .rt-incl li { margin-bottom: 4px; }
  .rt-incl li::marker { color: var(--d-gold); }
  .rt-list li { border-bottom-color: var(--d-line) !important; }
  .rt-list a { color: var(--d-ink) !important; }
  .rt-note, .rt-credits-phone { color: var(--d-mute) !important; font-size: .74rem !important; }
  /* city and trail rows become swipe rows: stamps on a trail page, photos with medallions on All of India */
  .rt-list-cards { display: flex !important; overflow-x: auto; gap: 10px !important; margin: 0 calc(50% - 50vw) !important; padding: 2px 18px 8px !important;
    scroll-snap-type: x mandatory; scrollbar-width: none; grid-template-columns: none !important; }
  .rt-list-cards::-webkit-scrollbar { display: none; }
  .rt-list-cards li { flex: 0 0 150px; scroll-snap-align: start; background: var(--d-card) !important; border: 1.5px dashed var(--d-dash) !important;
    border-radius: 8px !important; padding: 10px !important; }
  .rt-list-cards a.rt-card-link { display: block !important; }
  .rt-list-cards .rt-card-stamp { display: block; width: 100%; aspect-ratio: 880 / 586; object-fit: contain; filter: drop-shadow(0 3px 3px rgba(55,43,28,.18)); }
  .rt-list-cards .rt-card-stamp + .rt-card-photo { display: none !important; }
  .rt-list-cards li:has(.rt-card-md) { flex-basis: 196px; padding: 0 !important; border-style: solid !important; overflow: hidden; }
  .rt-list-cards .rt-card-photo { position: relative; width: 100% !important; height: 120px !important; aspect-ratio: auto !important; }
  .rt-list-cards .rt-card-photo .rt-card-md { display: block !important; position: absolute !important; left: 8px; top: 8px; width: 40px !important; height: 40px !important; object-fit: contain !important; z-index: 2; filter: drop-shadow(0 3px 6px rgba(0,0,0,.35)); }
  .rt-list-cards .rt-card-credit { display: none !important; }
  .rt-list-cards .rt-card-body { display: block !important; padding: 8px 0 0 !important; }
  .rt-list-cards li:has(.rt-card-md) .rt-card-body { padding: 8px 10px 10px !important; }
  .rt-list-cards .rt-li-main { display: block !important; }
  .rt-list-cards .rt-li-name { display: block; font-family: var(--serif); font-weight: 700; font-size: 1rem; color: var(--d-ink); }
  .rt-list-cards .rt-li-meta { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-size: .7rem !important; line-height: 1.4 !important; color: var(--d-mute) !important; }
  .rt-list-cards .rt-li-price { display: block; margin-top: 4px; font-size: .95rem !important; color: var(--d-ink); text-align: left !important; }
  .rt-list-cards .rt-li-price small { display: none !important; }
  .rt-buy { margin-top: 22px !important; padding: 16px !important; gap: 10px !important; background: var(--d-card) !important; border: 1.5px dashed var(--d-dash) !important; border-radius: 10px !important; }
  .rt-buy strong { font-family: var(--serif); color: var(--d-ink); }
  .rt-free { border: 1.5px solid var(--d-rule) !important; border-radius: 8px !important; padding: 12px !important; }
  .rt-free p, .rt-buy p, .rt-buy .rt-fine, .rt-or, .rt-was { font-size: var(--ph-meta) !important; line-height: 1.5 !important; color: var(--d-mute) !important; }
  .rt-price { font-size: 1.7rem !important; color: var(--d-ink); }
  .rt-price small { color: var(--d-gold) !important; }
  .rt-bar { bottom: calc(var(--d-tabh) + var(--d-safe)) !important; padding: 9px 16px !important; background: var(--d-paper) !important;
    border-top: 1px solid var(--d-line) !important; box-shadow: 0 -6px 16px rgba(14,42,74,.08) !important; }
  .rt-bar .rt-bar-price { color: var(--d-ink) !important; font-size: 1.15rem !important; }
  .rt-bar .rt-bar-price small { color: var(--d-gold) !important; }
  .rt-bar .btn { padding: 10px 16px !important; }
  html.has-dtabs .rt-page { padding-bottom: 76px !important; }

  /* ================= Shop ================= */
  .find-page { padding-top: 16px !important; }
  .find-page .section-head p { display: none !important; }
  .fy-controls { display: grid !important; gap: 10px !important; margin: 0 0 18px !important; padding: 10px 0 !important; border: 0 !important; }
  .fy-controls:not(.open) .fy-row:not([data-filter="trail"]) { display: none !important; }
  .fy-row[data-filter="trail"] { order: 1; }
  .fy-more { display: inline-flex; order: 2; justify-self: start; align-items: center; gap: 6px; font: 600 .78rem var(--sans, sans-serif); color: var(--d-gold);
    background: transparent; border: 1px solid var(--d-dash); border-radius: 999px; padding: 6px 12px; cursor: pointer; }
  .fy-more::after { content: "+"; font-weight: 700; }
  .fy-controls.open .fy-more::after { content: "\2212"; }
  .fy-controls .fy-row { order: 3; flex-wrap: nowrap !important; overflow-x: auto; scrollbar-width: none; margin-right: -18px !important; padding-right: 18px !important; }
  .fy-controls .fy-row::-webkit-scrollbar { display: none; }
  .fy-row > .fy-label { display: none !important; }
  .fy-chip { white-space: nowrap; padding: 6px 12px !important; font-size: .8rem !important; background: var(--d-card) !important; border-color: var(--d-line) !important; color: var(--d-ink) !important; }
  .fy-chip.on { background: var(--d-ticket) !important; border-color: var(--d-ticket) !important; color: var(--d-ticket-fg) !important; }
  .fy-pace .fy-pace-val { color: var(--d-gold) !important; }
  .fy-sec { margin: 0 0 8px !important; padding: 0 !important; }
  .fy-sec-head { position: static !important; display: flex !important; justify-content: space-between; align-items: baseline; margin: 0 !important; padding: 14px 0 10px !important;
    background: transparent !important; border: 0 !important; border-top: 3px double var(--d-rule) !important; }
  .fy-sec-head span { display: none !important; }
  .fy-sec-india .fy-sec-head { display: none !important; }
  .fy-card { box-shadow: none !important; }
  /* All of India as a ticket */
  .fy-card.fy-wide { display: block !important; background: var(--d-ticket) !important; color: var(--d-ticket-fg) !important; border: 0 !important; border-radius: 12px !important;
    padding: 14px 16px !important; outline: 1.5px dashed var(--d-ticket-dash); outline-offset: -7px; }
  .fy-card.fy-wide .fy-trail { color: var(--d-ticket-k) !important; }
  .fy-card.fy-wide h3, .fy-card.fy-wide h3 a, .fy-card.fy-wide .fy-price { color: var(--d-ticket-fg) !important; }
  .fy-card.fy-wide .fy-tag, .fy-card.fy-wide .fy-price small, .fy-card.fy-wide .fy-buy span { color: var(--d-ticket-sub) !important; }
  .fy-card.fy-wide .fy-stats { color: var(--d-ticket-k) !important; font-size: .72rem !important; }
  .fy-card.fy-wide .btn { background: var(--d-cta) !important; color: var(--d-cta-fg) !important; border-color: var(--d-cta) !important; margin-top: 10px; }
  /* Trails: a swipe row of photo cards with their medallions */
  .fy-sec-trails .fy-grid, .fy-sec-longroad .fy-grid { display: flex !important; overflow-x: auto; gap: 10px !important; margin: 0 calc(50% - 50vw) !important; padding: 0 18px 8px !important; scroll-snap-type: x mandatory; scrollbar-width: none; }
  .fy-sec-trails .fy-grid::-webkit-scrollbar, .fy-sec-longroad .fy-grid::-webkit-scrollbar { display: none; }
  .fy-lr-tag { background: var(--d-ticket) !important; color: var(--d-ticket-fg) !important; }
  .fy-trail-card { flex: 0 0 210px; display: block !important; padding: 0 !important; background: transparent !important; border: 0 !important; scroll-snap-align: start; }
  .fy-trail-card .fy-photo { position: relative; width: 100% !important; height: 140px !important; margin: 0 !important; border-radius: 12px !important; aspect-ratio: auto !important; }
  .fy-trail-card .fy-md { display: block !important; position: absolute; left: 8px; top: 8px; width: 40px; height: 40px; z-index: 2; filter: drop-shadow(0 3px 6px rgba(0,0,0,.35)); }
  .fy-trail-card .fy-credit, .fy-trail-card .fy-tag, .fy-trail-card .btn { display: none !important; }
  .fy-trail-card .fy-trail { display: block; margin-top: 8px; font-size: .6rem !important; }
  .fy-trail-card h3 { margin: 2px 0 2px !important; }
  .fy-trail-card .fy-stats { font-size: .7rem !important; gap: 2px 8px !important; color: var(--d-mute) !important; }
  .fy-trail-card .fy-stats > :nth-child(n+3) { display: none !important; }
  .fy-trail-card .fy-meta { font-size: .7rem !important; border: 0 !important; padding: 2px 0 0 !important; color: var(--d-mute) !important; }
  /* Cities: a two-column grid of stamps */
  .fy-sec-cities .fy-grid { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 10px !important; }
  .fy-city-card { display: block !important; padding: 10px !important; background: var(--d-card) !important; border: 1.5px dashed var(--d-dash) !important; border-radius: 8px !important; min-width: 0; }
  .fy-city-card .fy-photo, .fy-city-card .fy-tag, .fy-city-card .fy-blurb, .fy-city-card .btn, .fy-city-card .fy-meta, .fy-city-card .fy-free, .fy-city-card .fy-price small { display: none !important; }
  .fy-city-card .fy-stamp { display: block; width: 100%; aspect-ratio: 880 / 586; object-fit: contain; filter: drop-shadow(0 3px 3px rgba(55,43,28,.18)); }
  .fy-city-card .fy-trail { display: block; margin-top: 6px; font-size: .56rem !important; letter-spacing: .14em !important; }
  .fy-city-card h3 { margin: 2px 0 2px !important; font-size: .98rem !important; }
  .fy-city-card .fy-stats { font-size: .68rem !important; gap: 0 6px !important; color: var(--d-mute) !important; }
  .fy-city-card .fy-stats > :nth-child(n+3) { display: none !important; }
  .fy-city-card .fy-buy { margin-top: 2px; }
  .fy-city-card .fy-price { font-size: .98rem !important; color: var(--d-ink) !important; }
  .fy-credits-phone { display: block !important; font-size: 10px !important; color: var(--d-mute) !important; }

  /* ================= Stories, trail pages, help, FAQ, essays ================= */
  .si-wrap, .story-wrap, .essay-wrap { padding-left: 18px !important; padding-right: 18px !important; }
  .si-picker select { background-color: var(--d-card) !important; color: var(--d-ink) !important; border-color: var(--d-line) !important; }
  .si-featured { background: var(--d-ticket) !important; color: var(--d-ticket-fg) !important; box-shadow: none !important; }
  .si-featured .si-f-img { background: linear-gradient(150deg, #173C63, #0E2A4A) !important; }
  .si-featured .si-f-img span { color: #E9C77B !important; }
  .si-featured h2, .si-featured .si-meta, .si-featured p { color: var(--d-ticket-fg) !important; }
  .si-featured .si-f-tag { color: var(--d-ticket-k) !important; }
  .si-card { background: var(--d-card) !important; border: 1px solid var(--d-line); box-shadow: none !important; }
  .si-card h3 { color: var(--d-ink); }
  .story-tag { background: transparent !important; padding: 0 !important; }
  .mon-acc { background: var(--d-card) !important; border-color: var(--d-line) !important; border-radius: 10px !important; }
  .mon-acc .ma-n, .mon-acc .ma-chev, .mon-tools button { color: var(--d-gold) !important; }
  .mon-acc .ma-chev { border-color: var(--d-line) !important; }
  .story-cta { background: var(--d-ticket) !important; color: var(--d-ticket-fg) !important; border-radius: 12px !important; }
  .story-cta > div, :root[data-theme="dark"] .story-cta > div { color: var(--d-ticket-sub) !important; }
  .story-cta a { color: var(--d-ticket-k) !important; }
  .trail-hero { border-radius: 12px; }
  .trail-stats > div { background: var(--d-card) !important; border-color: var(--d-line) !important; }
  .trail-stats b { color: var(--d-gold) !important; }
  .trail-city { display: grid !important; grid-template-columns: 76px 1fr !important; gap: 12px !important; align-items: start; padding: 14px 0 !important; border-bottom: 1px solid var(--d-line); }
  .trail-city img { width: 76px !important; height: 76px !important; object-fit: cover; border-radius: 10px; }
  .trail-city h2 { font-size: 1.02rem !important; margin: 0 0 2px !important; }
  .trail-city p { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-size: var(--ph-meta) !important; margin: 4px 0 !important; }
  .trail-city .mon-meta { font-size: .72rem !important; }
  .trail-city a { font-size: .8rem; color: var(--d-gold) !important; }
  .doc details.hq, .faq-item, .faq details { background: var(--d-card) !important; border-color: var(--d-line) !important; }
  .doc details.hq > summary::after { color: var(--d-gold) !important; }
  .essay-wrap .path li, .essay-wrap .fact { background: var(--d-card) !important; border-color: var(--d-line) !important; }
  .essay-wrap .path b, .essay-wrap .fact small { color: var(--d-gold) !important; }
  .essay-wrap .pull { border-left-color: var(--d-rule) !important; }

  /* long single-word names (Thiruvananthapuram) break with a hyphen in narrow cards, never push the page wider */
  .fy-city-card h3, .fy-trail-card h3, .rt-li-name, .st b, .trail-city h2, .si-card h3, .mon-acc .ma-name { -webkit-hyphens: auto; hyphens: auto; overflow-wrap: break-word; min-width: 0; }
  .si-picker { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important; }
  .si-picker label, .si-picker select { min-width: 0 !important; width: 100%; }
}
