/* ============================================================
   Champions for Religious Liberty
   2027 National March for Life — 8-Page Planning Guide (PRINT)
   Modern visual language matching the website + brochures.
   Trim 8.5×11 + 0.125" bleed = 8.75×11.25 page size.
     1 Cover · 2 Invitation · 3 Schedule · 4 Lodging & March-Day
     5 Travel & Meals · 6 Costs & Galas · 7 DC, Attire & Conduct
     8 Back cover / Call to action
   ============================================================ */

@page { size: 8.75in 11.25in; margin: 0; }
* { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --gold: #BB8C3A;
  --gold-light: #d4a854;
  --gold-dark: #9a7230;
  --gold-pale: #f1e2c2;
  --blue: #0876A9;
  --navy: #055A81;
  --navy-deep: #033f5c;
  --navy-ink: #021e2e;
  --light: #ECF4F9;
  --white: #FFFFFF;
  --ink: #14202d;
  --ink-mid: #3d5166;
  --ink-soft: #6b8099;
}

html, body {
  background: #fff;
  color: var(--ink);
  font-family: 'Poppins', system-ui, -apple-system, sans-serif;
  font-weight: 300;
  line-height: 1.55;
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
}

.page {
  width: 8.75in;
  height: 11.25in;
  position: relative;
  overflow: hidden;
  page-break-after: always;
  break-after: page;
  background: #fff;
}
.page:last-child { page-break-after: auto; break-after: auto; }

.frame {
  position: absolute;
  inset: 0.625in;
  display: flex;
  flex-direction: column;
}

/* Crop marks */
.crops i { position: absolute; background: #000; z-index: 999; }
.crops .tl-h, .crops .tr-h, .crops .bl-h, .crops .br-h { width: 0.1in; height: 0.5pt; }
.crops .tl-v, .crops .tr-v, .crops .bl-v, .crops .br-v { width: 0.5pt; height: 0.1in; }
.crops .tl-h { top: 0.125in; left: 0; }
.crops .tl-v { top: 0; left: 0.125in; }
.crops .tr-h { top: 0.125in; right: 0; }
.crops .tr-v { top: 0; right: 0.125in; }
.crops .bl-h { bottom: 0.125in; left: 0; }
.crops .bl-v { bottom: 0; left: 0.125in; }
.crops .br-h { bottom: 0.125in; right: 0; }
.crops .br-v { bottom: 0; right: 0.125in; }
body.no-crops .crops { display: none; }

/* ----- Shared tokens ----- */
.bg-grid::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(187,140,58,0.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(187,140,58,0.06) 1px, transparent 1px);
  background-size: 0.4in 0.4in;
  pointer-events: none;
}
.eyebrow {
  font-family: 'Poppins', sans-serif;
  font-weight: 600;
  font-size: 8.5pt;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--gold);
  display: block;
}
.gold-rule {
  width: 0.45in; height: 2pt;
  background: var(--gold);
  border-radius: 1pt;
  display: block;
  margin: 0.1in 0 0.16in;
}
h1, h2, h3, h4 {
  font-family: 'Bebas Neue', 'Arial Narrow', sans-serif;
  font-weight: 400;
  letter-spacing: 0.025em;
  line-height: 0.96;
  color: var(--ink);
}
p { font-size: 10pt; line-height: 1.6; color: var(--ink-mid); }
strong { font-weight: 600; color: var(--navy); }
em { font-style: italic; }
.accent {
  font-family: 'Playfair Display', serif;
  font-style: italic;
  font-weight: 700;
  color: var(--gold);
}
.section-hdr h2 { font-size: 30pt; color: var(--navy); }
.section-hdr { margin-bottom: 0.18in; }

/* page header with number */
.phead {
  display: flex; align-items: flex-end; justify-content: space-between;
  border-bottom: 1.5pt solid var(--gold);
  padding-bottom: 0.1in; margin-bottom: 0.22in;
}
.phead .pnum {
  font-family: 'Bebas Neue', sans-serif; font-size: 13pt;
  color: var(--gold); letter-spacing: 0.08em;
}
.icon { width: 13pt; height: 13pt; stroke: var(--gold); fill: none;
  stroke-width: 1.8; vertical-align: -1.5pt; }

/* ============================================================
   PAGE 1 — COVER
   ============================================================ */
.page--cover { background: var(--navy-ink); color: #fff; }
.cover__photo { position: absolute; top: 0; left: 0; right: 0; height: 7.2in; overflow: hidden; }
.cover__photo img { width: 100%; height: 100%; object-fit: cover; object-position: center 38%; }
.cover__photo::after {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(2,30,46,0.10) 0%, rgba(2,30,46,0.20) 45%, rgba(2,30,46,0.86) 82%, var(--navy-ink) 100%);
}
.cover__topbar {
  position: absolute; top: 0.55in; left: 0.7in; right: 0.7in; z-index: 3;
  display: flex; align-items: center; justify-content: space-between;
}
.cover__topbar .eyebrow { color: #f1e2c2; text-shadow: 0 1px 6px rgba(0,0,0,.5); }
.cover__datebadge {
  font-family: 'Bebas Neue', sans-serif; font-size: 11pt; letter-spacing: 0.06em;
  color: var(--navy-ink); background: var(--gold);
  padding: 0.05in 0.16in; border-radius: 2pt;
}
.cover__lower { position: absolute; left: 0.7in; right: 0.7in; bottom: 1.15in; z-index: 3; }
.cover__lower h1 {
  font-size: 78pt; line-height: 0.86; color: #fff; letter-spacing: 0.01em;
  text-shadow: 0 2px 18px rgba(0,0,0,.4);
}
.cover__lower h1 .accent { color: var(--gold-light); display: block; font-size: 40pt; line-height: 1; }
.cover__sub {
  color: #dce9f1; font-size: 11.5pt; line-height: 1.5; max-width: 5.6in;
  margin-top: 0.16in; font-weight: 300;
}
.cover__footer {
  position: absolute; left: 0.7in; right: 0.7in; bottom: 0.5in; z-index: 3;
  display: flex; align-items: center; justify-content: space-between;
  border-top: 1pt solid rgba(255,255,255,0.18); padding-top: 0.16in;
}
.lockup { display: flex; align-items: center; gap: 0.16in; }
.lockup img { height: 0.34in; }
.lockup__tag { font-size: 7.5pt; letter-spacing: 0.14em; text-transform: uppercase; color: #9fc0d2; }
.lockup__lcrl { height: 0.3in; opacity: 0.92; }
.cover__footer .url { font-family: 'Bebas Neue', sans-serif; font-size: 12pt; letter-spacing: 0.06em; color: var(--gold-light); }

/* ============================================================
   PAGE 2 — INVITATION
   ============================================================ */
.invite__lede {
  font-family: 'Playfair Display', serif; font-style: italic; font-weight: 700;
  font-size: 16pt; line-height: 1.32; color: var(--navy); margin-bottom: 0.16in;
}
.invite__cols { display: grid; grid-template-columns: 1fr 1fr; gap: 0.3in; margin-top: 0.05in; }
.invite__cols p + p { margin-top: 0.1in; }
.datecard {
  margin-top: 0.22in; background: linear-gradient(135deg, var(--navy), var(--navy-deep));
  color: #fff; border-radius: 6pt; padding: 0.22in 0.26in; display: flex; align-items: center; gap: 0.26in;
}
.datecard .dc-day { font-family: 'Bebas Neue', sans-serif; font-size: 34pt; line-height: 0.9; color: var(--gold-light); }
.datecard .dc-meta strong { color: #fff; font-size: 12pt; display: block; font-weight: 600; }
.datecard .dc-meta span { font-size: 9pt; color: #cfe2ee; }

.plan7 { margin-top: 0.26in; }
.plan7 h3 { font-size: 16pt; color: var(--navy); margin-bottom: 0.12in; }
.plan7__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0.12in 0.3in; }
.plan7__item { display: flex; align-items: center; gap: 0.12in; padding: 0.1in 0; border-bottom: 0.75pt dashed rgba(5,90,129,0.18); }
.plan7__item .n { font-family: 'Bebas Neue', sans-serif; color: var(--gold); font-size: 15pt; width: 0.34in; flex: none; }
.plan7__item .t { font-size: 10.5pt; color: var(--ink); font-weight: 400; }
.plan7__item .t small { display: block; font-size: 8pt; color: var(--ink-soft); font-weight: 300; letter-spacing: 0.01em; }

.callout {
  margin-top: auto; background: var(--light); border-left: 3pt solid var(--gold);
  border-radius: 0 6pt 6pt 0; padding: 0.18in 0.22in;
}
.callout .accent2 { font-family: 'Playfair Display', serif; font-style: italic; font-weight: 700; color: var(--navy); font-size: 11pt; }
.callout p { font-size: 9.5pt; margin-top: 0.04in; }

/* ============================================================
   PAGE 3 — SCHEDULE (timeline)
   ============================================================ */
.timeline { position: relative; margin-top: 0.05in; padding-left: 0.34in; }
.timeline::before { content: ''; position: absolute; left: 0.08in; top: 0.08in; bottom: 0.08in; width: 2pt; background: linear-gradient(var(--gold), var(--gold-pale)); }
.tl-item { position: relative; padding: 0 0 0.2in 0; }
.tl-item::before {
  content: ''; position: absolute; left: -0.335in; top: 0.02in;
  width: 0.16in; height: 0.16in; border-radius: 50%;
  background: var(--white); border: 2.5pt solid var(--gold);
}
.tl-day { font-family: 'Bebas Neue', sans-serif; font-size: 14pt; color: var(--navy); letter-spacing: 0.04em; }
.tl-day .time { color: var(--gold-dark); font-size: 11pt; margin-left: 0.08in; }
.tl-item h4 { font-size: 13pt; color: var(--ink); margin: 0.02in 0 0.03in; }
.tl-item p { font-size: 9.5pt; }
.tl-item ul { margin: 0.04in 0 0 0.18in; }
.tl-item li { font-size: 9.5pt; color: var(--ink-mid); line-height: 1.5; }
.tl-opt { display: inline-block; font-size: 7.5pt; letter-spacing: 0.12em; text-transform: uppercase; color: var(--gold-dark); background: var(--gold-pale); padding: 0.02in 0.08in; border-radius: 2pt; margin-left: 0.08in; vertical-align: 1.5pt; }

/* ============================================================
   Shared cards (lodging, travel, meals, costs)
   ============================================================ */
.card {
  background: #fff; border: 1pt solid rgba(5,90,129,0.16); border-radius: 6pt;
  padding: 0.2in 0.22in; box-shadow: 0 2pt 10pt rgba(5,90,129,0.06);
}
.card h3 { font-size: 15pt; color: var(--navy); margin-bottom: 0.06in; }
.card h4 { font-size: 12pt; color: var(--ink); margin: 0.1in 0 0.04in; }
.card p, .card li { font-size: 9.5pt; line-height: 1.5; color: var(--ink-mid); }
.card ul { list-style: none; }
.card ul li { position: relative; padding-left: 0.18in; margin: 0.05in 0; }
.card ul li::before { content: ''; position: absolute; left: 0.02in; top: 0.07in; width: 5pt; height: 5pt; border: 1.2pt solid var(--gold); border-radius: 50%; }
.two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 0.22in; }
.lead-card { background: linear-gradient(135deg, var(--navy), var(--navy-deep)); color: #fff; border: none; }
.lead-card h3, .lead-card h4 { color: #fff; }
.lead-card p, .lead-card li { color: #d7e6ef; }
.lead-card ul li::before { border-color: var(--gold-light); }
.lead-card .badge { color: var(--gold-light); }
.ratebox { margin-top: 0.1in; background: rgba(255,255,255,0.08); border-radius: 4pt; padding: 0.12in 0.14in; }
.ratebox .row { display: flex; justify-content: space-between; font-size: 9.5pt; color: #cfe2ee; padding: 0.02in 0; }
.ratebox .row.total { border-top: 0.75pt solid rgba(255,255,255,0.25); margin-top: 0.04in; padding-top: 0.06in; font-weight: 600; color: #fff; }
.ratebox .row.total .v { color: var(--gold-light); }
.note { font-size: 8.5pt; color: var(--ink-soft); font-style: italic; margin-top: 0.08in; }

.imgstrip { height: 1.9in; border-radius: 6pt; overflow: hidden; margin-top: 0.18in; position: relative; }
.imgstrip img { width: 100%; height: 100%; object-fit: cover; }
.imgstrip .cap { position: absolute; left: 0.14in; bottom: 0.1in; color: #fff; font-family: 'Bebas Neue', sans-serif; font-size: 12pt; letter-spacing: 0.04em; text-shadow: 0 1px 8px rgba(0,0,0,.6); }

/* costs table */
.budget { width: 100%; border-collapse: collapse; margin-top: 0.05in; }
.budget th { text-align: left; font-family: 'Bebas Neue', sans-serif; font-size: 11pt; letter-spacing: 0.06em; color: var(--gold-dark); border-bottom: 1.5pt solid var(--gold); padding: 0.08in 0.04in; }
.budget td { font-size: 10pt; color: var(--ink-mid); padding: 0.09in 0.04in; border-bottom: 0.75pt solid rgba(5,90,129,0.12); }
.budget td.amt { text-align: right; font-weight: 600; color: var(--navy); white-space: nowrap; }
.budget tr:last-child td { border-bottom: none; }
.budget td .sub { display: block; font-size: 8pt; color: var(--ink-soft); font-weight: 300; }

/* attractions chips */
.chips { display: flex; flex-wrap: wrap; gap: 0.08in; margin-top: 0.06in; }
.chip { font-size: 9pt; color: var(--navy); background: var(--light); border: 0.75pt solid rgba(8,118,169,0.2); border-radius: 20pt; padding: 0.05in 0.13in; }
.chip.star { background: var(--gold-pale); border-color: var(--gold); color: var(--gold-dark); font-weight: 600; }

.expect li { font-size: 9.5pt; }
.attire-list { columns: 2; column-gap: 0.24in; }
.attire-list li { break-inside: avoid; }

/* ============================================================
   PAGE 8 — BACK COVER
   ============================================================ */
.page--back { background: linear-gradient(160deg, var(--navy), var(--navy-ink)); color: #fff; }
.back__inner { position: absolute; inset: 0.625in; display: flex; flex-direction: column; }
.back__photo { height: 3.3in; border-radius: 8pt; overflow: hidden; position: relative; }
.back__photo img { width: 100%; height: 100%; object-fit: cover; }
.back__photo::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(2,30,46,0) 30%, rgba(2,30,46,0.5) 100%); }
.back__body { flex: 1; display: flex; flex-direction: column; justify-content: center; }
.back__body .eyebrow { color: var(--gold-light); }
.back__body h2 { font-size: 46pt; color: #fff; line-height: 0.92; margin: 0.08in 0 0.14in; }
.back__body h2 .accent { color: var(--gold-light); }
.back__body p { color: #d7e6ef; font-size: 11pt; max-width: 5.6in; }
.back__cta { display: flex; gap: 0.5in; margin-top: 0.26in; }
.back__cta .blk .lbl { font-size: 7.5pt; letter-spacing: 0.16em; text-transform: uppercase; color: var(--gold-light); display: block; margin-bottom: 0.03in; }
.back__cta .blk .val { font-family: 'Bebas Neue', sans-serif; font-size: 15pt; letter-spacing: 0.03em; color: #fff; }
.back__scripture { font-family: 'Playfair Display', serif; font-style: italic; font-weight: 700; font-size: 13pt; color: var(--gold-pale); margin-top: 0.28in; }
.back__scripture span { display: block; font-size: 8.5pt; font-style: normal; font-family: 'Poppins', sans-serif; letter-spacing: 0.16em; text-transform: uppercase; color: #9fc0d2; margin-top: 0.06in; }
.back__footer { border-top: 1pt solid rgba(255,255,255,0.18); padding-top: 0.16in; display: flex; align-items: center; justify-content: space-between; }
.back__footer .url { font-family: 'Bebas Neue', sans-serif; font-size: 13pt; color: var(--gold-light); letter-spacing: 0.05em; }
.disclaim { font-size: 7.5pt; color: #7fa3b6; margin-top: 0.12in; line-height: 1.4; font-style: italic; }
