/* =============================================================================
   CFT public chrome (02 §7, D29 light only, D30 A): the header offset and the
   footer, from the approved mockups' public.css. The rest of that file (hero
   carousel, tour cards, tour page, booking page) arrives with the pages that
   use it in Phase 2, so today's page bodies keep their own styles meanwhile.
   ============================================================================= */

.pub-top { top: var(--cft-offset, 0px); }
.wrap { max-width: var(--cft-content); margin: 0 auto; padding: 0 var(--cft-gutter); }
.untranslated { display: flex; gap: 10px; align-items: center; max-width: var(--cft-content); margin: 12px auto 0; padding: 10px var(--cft-gutter); font-size: var(--cft-fs-sm); color: var(--cft-info); background: var(--cft-info-bg); border-radius: var(--cft-r-md); }
.pub-flashes { max-width: var(--cft-content); margin: 12px auto 0; padding: 0 var(--cft-gutter); display: grid; gap: 8px; }

/* ── Footer ─────────────────────────────────────────────────────────────── */
.pub-foot { background: var(--cft-footer-bg); color: var(--cft-footer-ink); margin-top: 0; }
.pub-foot-in { max-width: var(--cft-content); margin: 0 auto; padding: 44px var(--cft-gutter) 28px; display: grid; grid-template-columns: 1.3fr 1fr 1fr 1.2fr 1.6fr; gap: 24px; }
@container app (max-width: 991.98px) { .pub-foot-in { grid-template-columns: 1fr 1fr; } .pub-foot-in .nl { grid-column: 1 / -1; } }
@container app (max-width: 480px) { .pub-foot-in { grid-template-columns: 1fr; } }
.pub-foot h6 { font: 700 11px var(--cft-sans); text-transform: uppercase; letter-spacing: .12em; color: var(--cft-footer-accent); margin: 0 0 10px; }
.pub-foot a { display: block; color: var(--cft-footer-ink); opacity: .85; text-decoration: none; padding: 3px 0; font-size: var(--cft-fs-sm); }
.pub-foot a:hover { opacity: 1; text-decoration: underline; }
.pub-foot .brand-f { font-family: var(--cft-serif); font-size: var(--cft-fs-lg); }
.pub-foot .small { color: color-mix(in srgb, var(--cft-footer-ink) 80%, transparent); }
.pub-foot .nl-row { display: flex; gap: 6px; } .pub-foot .nl-row .form-control { min-height: 40px; }
.pub-foot-base { border-top: 1px solid color-mix(in srgb, var(--cft-footer-ink) 15%, transparent); text-align: center; padding: 14px; font-size: var(--cft-fs-xs); color: color-mix(in srgb, var(--cft-footer-ink) 75%, transparent); }

/* P3 (Phase 2): the photos notice in Good to know and the "charged in" line under the price. */
.tour-photos-note { display: flex; gap: 8px; align-items: flex-start; flex-wrap: wrap; background: var(--cft-surface-2); padding: 8px 10px; border-radius: var(--cft-r-sm); margin: 10px 0 0; font-size: var(--cft-fs-sm); }
.charged-in { margin: 6px 0 0; color: var(--cft-muted); }
.charged-in a { margin-left: 4px; }
