/* Amtrak Part 1 Post Styles */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root {
  --ink: #1a1714;
  --ink-mid: #3d3830;
  --ink-muted: #7a7065;
  --paper: #faf8f4;
  --paper-warm: #f2ede4;
  --rule: #ddd8ce;
  --accent: #b5500a;
  --accent-light: #f5e9df;
  --rail-blue: #1b4b8a;
}
body { background: var(--paper); color: var(--ink); font-family: 'Source Serif 4', Georgia, serif; font-size: 18px; line-height: 1.85; font-weight: 300; }
/* ── MASTHEAD ── */
.masthead { background: var(--ink); color: var(--paper); text-align: center; padding: 3.5rem 2rem 3rem; position: relative; overflow: hidden; }
.masthead::before { content: ''; position: absolute; inset: 0; background: repeating-linear-gradient(90deg, transparent, transparent 40px, rgba(255,255,255,0.03) 40px, rgba(255,255,255,0.03) 41px); }
.blog-label { font-family: 'Source Serif 4', serif; font-size: 11px; letter-spacing: 0.25em; text-transform: uppercase; color: rgba(255,255,255,0.5); margin-bottom: 1.2rem; }
.masthead h1 { font-family: 'Playfair Display', serif; font-size: clamp(2.2rem, 5vw, 3.8rem); font-weight: 700; line-height: 1.15; letter-spacing: -0.01em; color: #fff; margin-bottom: 0.5rem; }
.masthead .subtitle { font-family: 'Playfair Display', serif; font-style: italic; font-size: clamp(1rem, 2.5vw, 1.4rem); color: rgba(255,255,255,0.65); margin-bottom: 2rem; }
.part-badge { display: inline-block; border: 1px solid rgba(255,255,255,0.3); color: rgba(255,255,255,0.7); font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase; padding: 6px 18px; }
/* ── HERO ROUTE STRIP ── */
.route-strip { background: var(--rail-blue); color: #fff; display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 0; padding: 0.85rem 1rem; font-size: 12px; letter-spacing: 0.06em; }
.route-city { opacity: 0.9; white-space: nowrap; }
.route-sep { margin: 0 10px; opacity: 0.4; font-size: 14px; }
/* ── FULL-WIDTH MAP ── */
.map-hero { width: 100%; max-height: 420px; object-fit: cover; object-position: center 40%; display: block; }
.map-caption { background: var(--ink-mid); color: rgba(255,255,255,0.65); font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; text-align: center; padding: 0.6rem 1rem; }
/* ── ARTICLE LAYOUT ── */
article { max-width: 740px; margin: 0 auto; padding: 0 1.5rem; }
/* ── INTRO DECK ── */
.intro-deck { border-left: 3px solid var(--accent); padding: 2.5rem 0 2.5rem 2rem; margin: 3rem 0 2.5rem; }
.intro-deck p { font-family: 'Playfair Display', serif; font-style: italic; font-size: 1.35rem; line-height: 1.65; color: var(--ink-mid); }
/* ── SECTION HEADERS ── */
.section-marker { display: flex; align-items: center; gap: 1rem; margin: 3.5rem 0 1.5rem; }
.section-marker .date-pill { background: var(--accent); color: #fff; font-size: 11px; letter-spacing: 0.15em; text-transform: uppercase; padding: 5px 14px; white-space: nowrap; flex-shrink: 0; }
.section-marker .route-line { font-family: 'Source Serif 4', serif; font-size: 13px; color: var(--ink-muted); letter-spacing: 0.05em; }
.section-marker hr { flex: 1; border: none; border-top: 1px solid var(--rule); }
h2 { font-family: 'Playfair Display', serif; font-size: 1.9rem; font-weight: 700; line-height: 1.2; color: var(--ink); margin-bottom: 1.2rem; }
h3 { font-family: 'Playfair Display', serif; font-size: 1.2rem; font-weight: 400; font-style: italic; color: var(--ink-muted); margin: 2rem 0 0.8rem; }
p { margin-bottom: 1.4rem; }
/* ── PHOTOS ── */
.photo-full { width: calc(100% + 3rem); margin-left: -1.5rem; margin-right: -1.5rem; margin-top: 2rem; margin-bottom: 0; display: block; }
.photo-full img { width: 100%; display: block; max-height: 500px; object-fit: cover; }
.photo-caption { background: var(--paper-warm); border-left: 3px solid var(--rule); font-size: 13px; color: var(--ink-muted); font-style: italic; padding: 0.6rem 1rem 0.6rem 1.5rem; margin-bottom: 2rem; width: calc(100% + 3rem); margin-left: -1.5rem; }
.photo-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 3px; width: calc(100% + 3rem); margin-left: -1.5rem; margin-top: 2rem; }
.photo-pair img { width: 100%; height: 260px; object-fit: cover; display: block; }
.photo-pair-caption { grid-column: 1 / -1; background: var(--paper-warm); border-left: 3px solid var(--rule); font-size: 13px; color: var(--ink-muted); font-style: italic; padding: 0.6rem 1rem 0.6rem 1.5rem; margin-bottom: 2rem; width: calc(100% + 3rem); margin-left: -1.5rem; }
/* ── PULLQUOTE ── */
.pullquote { margin: 2.5rem 0; padding: 1.8rem 2rem; background: var(--accent-light); border-left: 4px solid var(--accent); }
.pullquote p { font-family: 'Playfair Display', serif; font-size: 1.25rem; font-style: italic; color: var(--ink-mid); margin: 0; line-height: 1.6; }
/* ── PRACTICAL BOX ── */
.practical-box { border: 1px solid var(--rule); background: var(--paper-warm); padding: 1.5rem 1.75rem; margin: 2rem 0; }
.practical-box .box-title { font-family: 'Source Serif 4', serif; font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--accent); margin-bottom: 1rem; }
.practical-box ul { list-style: none; padding: 0; }
.practical-box ul li { padding: 0.35rem 0; padding-left: 1.2rem; position: relative; font-size: 15px; color: var(--ink-mid); border-bottom: 1px solid var(--rule); line-height: 1.5; }
.practical-box ul li:last-child { border-bottom: none; }
.practical-box ul li::before { content: '→'; position: absolute; left: 0; color: var(--accent); font-size: 12px; top: 0.45rem; }
/* ── TRAIN INFO STRIP ── */
.train-info { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 1px; background: var(--rule); border: 1px solid var(--rule); margin: 1.5rem 0 2rem; font-size: 13px; }
.train-info-cell { background: var(--paper-warm); padding: 0.75rem 1rem; }
.train-info-cell .label { font-size: 10px; letter-spacing: 0.15em; text-transform: uppercase; color: var(--ink-muted); margin-bottom: 3px; }
.train-info-cell .value { color: var(--ink); font-weight: 400; line-height: 1.3; }
/* ── DIVIDER ── */
.ornament { text-align: center; color: var(--rule); font-size: 1.5rem; letter-spacing: 0.5rem; margin: 3rem 0; }
/* ── FOOTER ── */
.blog-footer { background: var(--ink); color: rgba(255,255,255,0.5); text-align: center; padding: 3rem 2rem; margin-top: 5rem; font-size: 13px; letter-spacing: 0.05em; }
.blog-footer .coming-next { font-family: 'Playfair Display', serif; font-style: italic; font-size: 1.1rem; color: rgba(255,255,255,0.8); margin-bottom: 0.5rem; }
@media (max-width: 600px) { .photo-pair { grid-template-columns: 1fr; } .photo-pair img { height: 220px; } .intro-deck p { font-size: 1.15rem; } h2 { font-size: 1.55rem; } }
