/* ─────────────────────────────────────────────
   Cruisin' with the Colemans — Inner page styles
   Wireframe layouts, repainted with the homepage palette.
   Relies on the tokens declared in homepage.css.
   ───────────────────────────────────────────── */

.pg {
  background: var(--cc-cream);
  color: var(--cc-ink);
  font-family: 'Inter Tight', system-ui, sans-serif;
  -webkit-font-smoothing: antialiased;
}
.pg *, .pg *::before, .pg *::after { box-sizing: border-box; }
.pg img { display: block; max-width: 100%; }
.pg p { margin: 0 0 1em; }
.pg h1, .pg h2, .pg h3, .pg h4 { margin: 0; font-family: 'Fraunces', Georgia, serif; font-weight: 400; color: var(--cc-ink); }
.pg h2 { margin-bottom: 32px; }
/* Card titles promoted from h3 to h2 for the heading outline keep the h3 spacing. */
.pg h2.pg-h3,
.pg h2.cc-post__title { margin-bottom: 0; }
.pg ul { padding: 0; margin: 0; list-style: none; }

/* Editor-authored rich text (trip "Is It For Me?", navigation notes, FAQ
   answers). The blanket reset above strips markers from every list inside .pg,
   including these, so lists authored in the editor rendered without bullets. */
.pg-prose ul,
.pg-prose ol { padding-left: 1.4em; margin: 0 0 1em; }
.pg-prose ul { list-style: disc; }
.pg-prose ol { list-style: decimal; }
.pg-prose li { margin: 0 0 .4em; }
.pg-prose li::marker { color: var(--cc-red); }
.pg-prose p { margin: 0 0 1em; }
.pg-prose > :last-child { margin-bottom: 0; }

/* Page-template reading column (page.php): 760px measure and the typography
   for whatever the editor produces. Scoped so single posts keep their own. */
.pg-prose--page { max-width: 760px; margin: 0 auto; font-size: 17px; line-height: 1.72; color: var(--cc-ink-soft); overflow-wrap: break-word; }
.pg-prose--page .pg-prose__thumb { margin: 0 0 32px; }
.pg-prose--page .pg-prose__thumb img { max-width: 100%; height: auto; }
.pg-prose--page .entry-content > :first-child { margin-top: 0; }
.pg-prose--page .entry-content p:empty { display: none; }
.pg-prose--page h2,
.pg-prose--page h3,
.pg-prose--page h4 { font-family: 'Fraunces', Georgia, serif; color: var(--cc-ink); line-height: 1.2; margin: 1.8em 0 .5em; }
.pg-prose--page h2 { font-size: 32px; }
.pg-prose--page h3 { font-size: 25px; }
.pg-prose--page h4 { font-size: 20px; }
.pg-prose--page a { color: var(--cc-red-dark); text-decoration: underline; }
.pg-prose--page a:hover { color: var(--cc-red); }
.pg-prose--page img,
.pg-prose--page iframe,
.pg-prose--page video { max-width: 100%; height: auto; }
.pg-prose--page figure { margin: 1.8em 0; max-width: 100%; }
.pg-prose--page figcaption { font-size: 13.5px; opacity: .8; margin-top: 8px; text-align: center; }
.pg-prose--page blockquote {
  margin: 1.8em 0; padding: 4px 0 4px 22px;
  border-left: 3px solid var(--cc-red);
  font-family: 'Fraunces', Georgia, serif; font-size: 20px; font-style: italic;
}
.pg-prose--page blockquote cite { display: block; font-size: 14px; font-style: normal; margin-top: 8px; }
.pg-prose--page table { display: block; max-width: 100%; overflow-x: auto; border-collapse: collapse; }
.pg-prose--page th,
.pg-prose--page td { padding: 8px 12px; border: 1px solid rgba(42,38,34,.14); text-align: left; }
.pg-prose--page pre { max-width: 100%; overflow-x: auto; }

/* ─── Section wrapper ─── */
.pg-section {
  position: relative;
  padding: 80px 64px;
}

/* #29 — in-page jumps (e.g. the trips hero "See the trips") glide instead of
   snapping, and land clear of the fixed masthead. */
@media (prefers-reduced-motion: no-preference) {
  html { scroll-behavior: smooth; }
}
[id] { scroll-margin-top: 96px; }
.pg-section--white { background: #fff; }
.pg-section--ink { background: var(--cc-ink); color: var(--cc-cream); }
.pg-section--hero {
  position: relative;
  background: var(--cc-ink);
  color: var(--cc-cream);
  overflow: hidden;
  isolation: isolate;
  margin: 20px 24px 0;
  padding: 0;
  /* Keeps the original 16/3.9 letterbox proportion as a floor, but lets the
     band grow when the heading and lede need more room instead of clipping. */
  min-height: max(260px, 24.4vw);
  display: flex;
}
.pg-hero__bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
  animation: pg-kenburns 24s ease-in-out infinite alternate;
}
.pg-hero__overlay { display: none; }
.pg-section--hero::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,.20) 0%, rgba(0,0,0,.80) 100%);
  z-index: 1;
  pointer-events: none;
}
.pg-section--hero .pg-section__inner {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 76px 64px 48px;
  max-width: none;
  width: 100%;
}
/* Inside the hero, drop the 880px narrow cap so the title can breathe like the homepage hero. */
.pg-section--hero .pg-section__narrow { max-width: none; margin: 0; }
/* Homepage-style Caveat handwritten kicker in place of the mono eyebrow */
.pg-section--hero .pg-eyebrow {
  font-family: 'Caveat', cursive;
  font-size: 28px;
  font-weight: 400;
  font-style: italic;
  letter-spacing: 0;
  text-transform: none;
  color: #fff;
  opacity: .92;
  margin-bottom: -10px;
}
.pg-section--hero .pg-h1 {
  font-family: 'Fraunces', serif;
  font-size: 64px;
  font-weight: 300;
  line-height: .92;
  letter-spacing: -0.035em;
  font-style: italic;
  color: #fff;
  max-width: 1100px;
  margin: 0;
}
.pg-section--hero .pg-h1 em { font-style: italic; font-weight: 400; }
.pg-section--hero .pg-p {
  color: rgba(255,255,255,.92);
  font-size: 17px;
  line-height: 1.55;
  max-width: 620px;
  margin: 16px 0;
}
.pg-section--hero .pg-row { gap: 14px; }
/* Hero contact line (email / phone): plain readable text, not script. */
.pg-section--hero .pg-row > .pg-eyebrow {
  color: var(--cc-cream);
  font-family: 'Inter Tight', sans-serif;
  font-size: 14px;
  font-style: normal;
  letter-spacing: 0;
  opacity: 1;
}
.pg-section--hero .cc-btn { padding: 16px 28px; }
.pg-section--hero .pg-note,
.pg-section--hero .pg-badge {
  color: #fff;
  border-color: rgba(255,255,255,.5);
  background: rgba(0,0,0,.18);
}
.pg-section--hero .pg-badge--solid {
  background: var(--cc-red);
  border-color: var(--cc-red);
}
.pg-section--hero .cc-btn:not(.cc-btn--red) {
  color: #fff;
  border-color: rgba(255,255,255,.85);
  background: rgba(0,0,0,.4);
  backdrop-filter: blur(4px);
  text-shadow: 0 1px 2px rgba(0,0,0,.45);
}
.pg-section--hero .cc-btn:not(.cc-btn--red):hover {
  background: rgba(0,0,0,.6);
}
@keyframes pg-kenburns {
  0%   { transform: scale(1.0) translate(0, 0); }
  100% { transform: scale(1.10) translate(-1%, -1.5%); }
}
@media (prefers-reduced-motion: reduce) {
  .pg-hero__bg { animation: none; }
}
/* Opt-in padding trims — used where two stacked sections would otherwise
   double up the global 80px block padding into ~160px of dead space. */
.pg-section--tight-top { padding-top: 40px; }
.pg-section--tight-bottom { padding-bottom: 40px; }
.pg-section--bordered { border-top: 1px solid rgba(42,38,34,.12); border-bottom: 1px solid rgba(42,38,34,.12); }
.pg-section--bordered-top { border-top: 1px solid rgba(42,38,34,.12); }
.pg-section--bordered-bottom { border-bottom: 1px solid rgba(42,38,34,.12); }
.pg-section__inner { max-width: 1180px; margin: 0 auto; }
.pg-section__narrow { max-width: 880px; margin: 0 auto; }
.pg-section__center { text-align: center; max-width: 640px; margin: 0 auto; }

/* ─── Typography ─── */
.pg-eyebrow {
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 11px;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--cc-red);
  font-weight: 700;
  margin-bottom: 16px;
}
.pg-eyebrow--ink { color: var(--cc-ink-soft); }

/* Hand-written kicker, matches the homepage Caveat treatment */
.pg-hand {
  font-family: 'Caveat', cursive;
  font-size: 28px;
  line-height: 1;
  color: var(--cc-red);
  margin-bottom: 6px;
  display: block;
}
.pg-section--hero .pg-hand,
.pg-section--ink .pg-hand { color: var(--cc-orange); }

/* Botanical decoration accents — sit absolutely inside a relatively-positioned section */
.pg-deco-img {
  position: absolute;
  pointer-events: none;
  z-index: 0;
  opacity: .7;
}
.pg-deco-img--branch-tl { top: -30px; left: -80px; width: 280px; }
.pg-deco-img--palm-tr   { top: 20px; right: -100px; width: 320px; opacity: .55; }
.pg-deco-img--rock-br   { bottom: 20px; right: -60px; width: 240px; opacity: .85; }
.pg-deco-img--ivy-bl    { bottom: -40px; left: -60px; width: 280px; opacity: .6; }
.pg-h1 {
  font-family: 'Fraunces', serif;
  font-size: 64px;
  font-weight: 400;
  line-height: 1.02;
  letter-spacing: -0.025em;
  margin: 0;
}
.pg-h1 em { font-weight: 500; font-style: italic; }
.pg-h2 {
  font-family: 'Fraunces', serif;
  font-size: 42px;
  font-weight: 400;
  line-height: 1.05;
  letter-spacing: -0.02em;
  margin: 0;
}
.pg-h2--lg { font-size: 56px; }
.pg-h2 em { font-weight: 500; font-style: italic; }
.pg-h3 {
  font-family: 'Fraunces', serif;
  font-size: 22px;
  font-weight: 500;
  line-height: 1.2;
  margin: 0;
}
.pg-h3--lg { font-size: 28px; }
.pg-h3 em { font-style: italic; }
.pg-p {
  font-family: 'Inter Tight', sans-serif;
  font-size: 15px;
  line-height: 1.65;
  color: var(--cc-ink-soft);
  margin: 0 0 1em;
}
.pg-p--lead { font-size: 17px; line-height: 1.55; }
.pg-p--sm { font-size: 13.5px; }
/* In-copy links were falling back to browser blue (seen in the Speaking page's
   "no upcoming events" line). Put them in the brand red. */
.pg-p a {
  color: var(--cc-red);
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
}
.pg-p a:hover { color: var(--cc-red-dark); }
.pg-section--ink .pg-p a { color: var(--cc-orange); }
.pg-section--ink .pg-h1,
.pg-section--ink .pg-h2,
.pg-section--ink .pg-h3 { color: var(--cc-cream); }
.pg-section--ink .pg-p { color: rgba(240,232,213,.78); }
.pg-section--ink .pg-eyebrow { color: var(--cc-orange); }

/* ─── Layout helpers ─── */
.pg-grid { display: grid; gap: 28px; }
.pg-grid > * { min-width: 0; }
.pg-grid--2 { grid-template-columns: 1fr 1fr; }
.pg-grid--3 { grid-template-columns: repeat(3, 1fr); }
.pg-grid--4 { grid-template-columns: repeat(4, 1fr); }
.pg-grid--asym { grid-template-columns: 1fr 1.4fr; gap: 60px; }
.pg-grid--asym-rev { grid-template-columns: 1.4fr 1fr; gap: 60px; }
/* The short "Based & bookable" card shouldn't stretch to the 5-step list beside it. */
.pg-grid--asym > .pg-card--featured { align-self: start; }
/* Contact: form column + direct-contact column (was an inline style that beat the mobile collapse). */
.pg-grid--contact { grid-template-columns: 1.2fr 1fr; gap: 56px; }
.pg-grid--hero { grid-template-columns: 1.1fr 1fr; gap: 64px; align-items: center; }
.pg-row { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; }

/* About: "Our story" two-column (photo left, text right) */
.pg-story { align-items: stretch; padding-top: 0; }
.pg-story__media { position: relative; }
.pg-story__media img {
  width: 100%;
  height: 100%;
  min-height: 360px;
  max-height: 560px;
  object-fit: cover;
  border-radius: 4px;
  display: block;
  box-shadow: 0 18px 44px rgba(40,30,15,.16);
}
.pg-story__copy { padding-top: 0; }
@media (max-width: 880px) {
  .pg-story__media img { min-height: 0; max-height: 420px; }
  .pg-grid--contact { grid-template-columns: 1fr; gap: 40px; }
}
.pg-row--lg { gap: 24px; }
.pg-mt-sm { margin-top: 16px; }
.pg-mt-md { margin-top: 24px; }
.pg-mt-lg { margin-top: 32px; }
.pg-mb-sm { margin-bottom: 16px; }
.pg-mb-md { margin-bottom: 24px; }
.pg-mb-lg { margin-bottom: 36px; }
.pg-stack { display: grid; gap: 18px; }

/* ─── Cards ─── */
.pg-card {
  background: #fff;
  border: 1px solid rgba(42,38,34,.12);
  padding: 28px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.pg-card--lg { padding: 32px; }
.pg-card--featured { background: var(--cc-cream-warm); }
.pg-card__link {
  font-family: 'Inter Tight', sans-serif;
  font-size: 13px;
  color: var(--cc-red);
  font-weight: 600;
  text-decoration: none;
  margin-top: auto;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.pg-card__link:hover { color: var(--cc-red-dark); }

/* ─── Image placeholder (until real photography lands) ─── */
.pg-imgbox {
  position: relative;
  background: var(--cc-cream-warm);
  overflow: hidden;
  border: 1px solid rgba(42,38,34,.12);
  aspect-ratio: 4 / 3;
}
.pg-imgbox--ratio-square { aspect-ratio: 1 / 1; }
.pg-imgbox--ratio-photo { aspect-ratio: 4 / 5; }
.pg-imgbox--ratio-wide { aspect-ratio: 16 / 9; }
.pg-imgbox::before,
.pg-imgbox::after {
  content: '';
  position: absolute;
  inset: 0;
  background:
    linear-gradient(45deg, transparent 49.5%, rgba(42,38,34,.06) 49.5%, rgba(42,38,34,.06) 50.5%, transparent 50.5%);
}
.pg-imgbox::after {
  background:
    linear-gradient(-45deg, transparent 49.5%, rgba(42,38,34,.06) 49.5%, rgba(42,38,34,.06) 50.5%, transparent 50.5%);
}
.pg-imgbox__label {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--cc-ink-soft);
  z-index: 2;
}
.pg-imgbox__label span {
  background: rgba(245, 239, 226, .94);
  padding: 4px 10px;
  border: 1px solid rgba(42,38,34,.1);
}
.pg-imgbox img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 3;
}

/* ─── Responsive 16:9 video embed ─── */
.pg-video {
  position: relative;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border: 1px solid rgba(42,38,34,.12);
  background: var(--cc-ink);
}
.pg-video iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}

/* ─── Badges ─── */
.pg-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 12px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--cc-red);
  background: transparent;
  border: 1px solid var(--cc-red);
  border-radius: 2px;
  font-weight: 700;
}
.pg-badge--solid { color: #fff; background: var(--cc-red); border-color: var(--cc-red); }
/* Solid, high-contrast status badges so they stay legible over photos. */
.pg-badge--limited { color: var(--cc-ink); background: var(--cc-orange); border-color: var(--cc-orange); }
.pg-badge--sold { color: #fff; background: var(--cc-ink); border-color: var(--cc-ink); }
.pg-badge--past { color: #fff; background: var(--cc-ink-soft); border-color: var(--cc-ink-soft); }
.pg-badge--scouting { color: #fff; background: var(--cc-ink-soft); border-color: var(--cc-ink-soft); }

/* ─── Note tag ─── */
.pg-note {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 3px 8px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 9.5px;
  letter-spacing: .14em;
  text-transform: uppercase;
  background: #fff;
  color: var(--cc-ink-soft);
  border: 1px dashed rgba(42,38,34,.25);
  border-radius: 2px;
  line-height: 1.4;
}

/* ─── Numbered list (services / inclusions) ─── */
.pg-list { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 40px; padding: 0; margin: 0; list-style: none; }
.pg-list li {
  display: flex;
  gap: 14px;
  font-family: 'Inter Tight', sans-serif;
  font-size: 14px;
  color: var(--cc-ink-soft);
  line-height: 1.55;
}
.pg-list__num {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  color: var(--cc-red);
  letter-spacing: .14em;
  padding-top: 4px;
  flex-shrink: 0;
}
.pg-list--boxed li {
  background: #fff;
  border: 1px solid rgba(42,38,34,.12);
  padding: 18px 20px;
  font-size: 14.5px;
  color: var(--cc-ink);
  align-items: flex-start;
}
.pg-list--lined { grid-template-columns: 1fr; gap: 0; }
.pg-list--lined li {
  border-bottom: 1px dashed rgba(42,38,34,.18);
  padding: 14px 0;
  font-family: 'Fraunces', serif;
  font-size: 20px;
  color: var(--cc-ink);
  justify-content: space-between;
  align-items: baseline;
}
.pg-list--lined li:last-child { border-bottom: none; }

/* ─── Route list (cards w/ items) ─── */
.pg-routes { background: #fff; border: 1px solid rgba(42,38,34,.12); padding: 28px; }
.pg-routes ul li {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 14px 0;
  border-bottom: 1px dashed rgba(42,38,34,.18);
  font-family: 'Fraunces', serif;
  font-size: 19px;
  color: var(--cc-ink);
}
.pg-routes ul li:last-child { border-bottom: none; }

/* ─── Table ─── */
.pg-table {
  background: #fff;
  border: 1px solid rgba(42,38,34,.12);
}
.pg-table__head,
.pg-table__row {
  display: grid;
  padding: 14px 20px;
  align-items: center;
}
.pg-table__head {
  background: var(--cc-cream-warm);
  border-bottom: 1px solid rgba(42,38,34,.12);
  font-family: 'JetBrains Mono', monospace;
  font-size: 10.5px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--cc-ink-soft);
}
.pg-table__row {
  padding: 18px 20px;
  border-bottom: 1px solid rgba(42,38,34,.08);
  font-family: 'Inter Tight', sans-serif;
  font-size: 14px;
}
.pg-table__row:last-child { border-bottom: none; }
.pg-table__row .pg-year {
  font-family: 'JetBrains Mono', monospace;
  color: var(--cc-ink-soft);
  font-size: 13px;
  letter-spacing: .04em;
}
.pg-table__row .pg-action {
  text-align: right;
  font-family: 'Inter Tight', sans-serif;
}
.pg-table__row a {
  color: var(--cc-red);
  font-weight: 600;
  font-size: 12px;
  text-decoration: none;
}

/* ─── Disclaimer box ─── */
.pg-disclaimer {
  background: var(--cc-cream-warm);
  border: 1px dashed rgba(42,38,34,.22);
  padding: 20px 24px;
  display: flex;
  gap: 16px;
  align-items: flex-start;
}
.pg-disclaimer p {
  font-family: 'Inter Tight', sans-serif;
  font-style: italic;
  font-size: 13px;
  color: var(--cc-ink-soft);
  line-height: 1.6;
  margin: 0;
}

/* ─── Stat tiles ─── */
.pg-stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 20px;
}
.pg-stat {
  background: #fff;
  border: 1px solid rgba(42,38,34,.12);
  padding: 28px;
}
.pg-stat__num {
  font-family: 'Fraunces', serif;
  font-size: 44px;
  font-weight: 400;
  font-style: italic;
  color: var(--cc-red);
  line-height: 1;
  margin-bottom: 14px;
}
.pg-stat__label {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--cc-ink-soft);
}

/* ─── Filter pills (blog) ─── */
.pg-filter {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  padding: 20px 0;
  border-top: 1px solid rgba(42,38,34,.12);
  border-bottom: 1px solid rgba(42,38,34,.12);
}
.pg-pill {
  padding: 6px 14px;
  font-family: 'Inter Tight', sans-serif;
  font-size: 13px;
  border: 1px solid rgba(42,38,34,.18);
  background: transparent;
  color: var(--cc-ink);
  border-radius: 999px;
  text-decoration: none;
  cursor: pointer;
}
.pg-pill:hover { border-color: var(--cc-red); color: var(--cc-red); }
.pg-pill.is-active { background: var(--cc-red); color: #fff; border-color: var(--cc-red); }

/* ─── Form ─── */
.pg-form { background: #fff; border: 1px solid rgba(42,38,34,.12); padding: 28px; display: grid; gap: 18px; }
.pg-form label { display: grid; gap: 6px; }
.pg-form label > span {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10.5px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--cc-ink-soft);
}
.pg-form input,
.pg-form select,
.pg-form textarea {
  height: 42px;
  background: #fffdf9;
  border: 1px solid rgba(42,38,34,.12);
  padding: 0 14px;
  font-family: 'Inter Tight', sans-serif;
  font-size: 14px;
  color: var(--cc-ink);
  outline: none;
}
.pg-form textarea { height: 110px; padding: 12px 14px; resize: vertical; }
.pg-form input:focus,
.pg-form select:focus,
.pg-form textarea:focus { border-color: var(--cc-red); background: #fff; }
.pg-form__row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 8px;
  flex-wrap: wrap;
  gap: 12px;
}
.pg-form__note { font-family: 'Inter Tight', sans-serif; font-size: 12px; font-style: italic; color: var(--cc-ink-soft); }

/* Newsletter inline */
.pg-newsletter-inline {
  display: flex;
  border: 1px solid var(--cc-ink);
  padding: 4px;
}
.pg-newsletter-inline input {
  flex: 1;
  border: none;
  background: transparent;
  padding: 14px 16px;
  font-family: 'Inter Tight', sans-serif;
  font-size: 14px;
  color: var(--cc-ink);
  outline: none;
}
.pg-newsletter-inline button {
  padding: 14px 22px;
  background: var(--cc-red);
  color: #fff;
  border: none;
  cursor: pointer;
  font-family: 'Inter Tight', sans-serif;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .04em;
}

/* ─── Process / step grid ─── */
.pg-steps {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border: 1px solid rgba(42,38,34,.12);
  background: #fff;
}
.pg-steps__item { padding: 28px; border-right: 1px solid rgba(42,38,34,.1); }
.pg-steps__item:last-child { border-right: none; }
.pg-steps__num {
  font-family: 'Fraunces', serif;
  font-size: 48px;
  font-style: italic;
  color: var(--cc-red);
  line-height: 1;
  margin-bottom: 16px;
}

/* ─── Accordion ─── */
.pg-accordion { border-top: 1px solid rgba(42,38,34,.12); }
.pg-accordion details {
  border-bottom: 1px solid rgba(42,38,34,.12);
  padding: 20px 0;
}
.pg-accordion summary {
  list-style: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
  cursor: pointer;
  font-family: 'Fraunces', serif;
  font-size: 20px;
  color: var(--cc-ink);
  font-weight: 500;
}
.pg-accordion summary::-webkit-details-marker { display: none; }
.pg-accordion summary::after {
  content: '+';
  font-family: 'JetBrains Mono', monospace;
  font-size: 22px;
  color: var(--cc-red);
  font-weight: 400;
  margin-left: 18px;
  transition: transform .2s ease;
}
.pg-accordion details[open] summary::after { content: '–'; }
.pg-accordion__body { padding-top: 16px; }
.pg-accordion__body p {
  font-family: 'Inter Tight', sans-serif;
  font-size: 14.5px;
  line-height: 1.65;
  color: var(--cc-ink-soft);
}

/* Presentation-topics flavour: larger summaries, meta strip in body */
.pg-accordion--topics summary {
  font-size: 22px;
  padding-right: 28px;
  gap: 18px;
  align-items: flex-start;
  line-height: 1.25;
}
.pg-accordion--topics summary > span:first-child { flex: 1; min-width: 0; }
.pg-accordion--topics summary::after { margin-top: 4px; }
.pg-accordion--topics .pg-accordion__body {
  display: flex;
  flex-direction: column;
  gap: 14px;
  max-width: 880px;
}
.pg-accordion--topics .pg-accordion__body p {
  font-size: 15px;
  margin: 0;
}
.pg-topic-meta {
  margin-top: 4px;
  border-top: 1px dashed rgba(42,38,34,.16);
  padding-top: 14px;
  display: grid;
  gap: 8px;
}
.pg-topic-meta__row {
  display: grid;
  grid-template-columns: 100px 1fr;
  gap: 16px;
  align-items: baseline;
  font-family: 'Inter Tight', sans-serif;
  font-size: 14px;
  color: var(--cc-ink);
}
@media (max-width: 720px) {
  .pg-accordion--topics summary { font-size: 18px; }
  .pg-topic-meta__row { grid-template-columns: 1fr; gap: 2px; }
}

/* ─── Closing CTA cards (paired) ─── */
/* Section that contains the cta-pair gets the same camino-credentials texture as .cc-trips. */
.pg-section:has(.pg-cta-pair) {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}
.pg-section:has(.pg-cta-pair)::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: url('../images/photo-camino-credentials.jpg');
  background-size: cover;
  background-position: center;
  opacity: .12;
  mix-blend-mode: multiply;
  pointer-events: none;
  z-index: 0;
}
.pg-section:has(.pg-cta-pair) > * { position: relative; z-index: 1; }

.pg-cta-pair {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  max-width: 980px;
  margin: 0 auto;
  padding: 12px 0;
}
.pg-cta-card {
  position: relative;
  background: #fff;
  padding: 38px 34px 34px;
  box-shadow: 0 22px 50px rgba(40,30,15,.16);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  isolation: isolate;
  transition: transform .25s ease, box-shadow .25s ease;
}
.pg-cta-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: url('../images/photo-camino-credentials.jpg');
  background-size: cover;
  background-position: center;
  opacity: .14;
  mix-blend-mode: multiply;
  pointer-events: none;
  z-index: 0;
}
.pg-cta-card > * { position: relative; z-index: 1; }
.pg-cta-card:nth-child(1) { transform: rotate(-0.8deg); }
.pg-cta-card:nth-child(2) { transform: rotate(0.8deg); }
.pg-cta-card:hover {
  transform: translateY(-3px) rotate(0deg);
  box-shadow: 0 28px 60px rgba(40,30,15,.22);
}
.pg-cta-card__num {
  position: absolute;
  top: 16px;
  right: 18px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: .22em;
  color: var(--cc-red);
  font-weight: 700;
  opacity: .75;
}
.pg-cta-card__kicker {
  font-family: 'Caveat', cursive;
  font-size: 26px;
  line-height: 1;
  color: var(--cc-red);
  font-style: italic;
  margin-bottom: 6px;
  display: block;
}
.pg-cta-card .pg-h3 { letter-spacing: -0.015em; }
.pg-cta-card .cc-btn {
  align-self: flex-start;
  margin-top: 8px;
  font-size: 13px;
  padding: 12px 20px;
}

/* Ink variant — dashed-outline ribbon treatment lifted from .cc-ribbon / .cc-tile */
.pg-cta-card--ink {
  background: var(--cc-ink);
  color: var(--cc-cream);
  border: 2px solid var(--cc-ink);
  outline: 1px dashed rgba(240,232,213,.28);
  outline-offset: -8px;
}
.pg-cta-card--ink::before { opacity: .18; mix-blend-mode: overlay; }
.pg-cta-card--ink .pg-h3 { color: var(--cc-cream); }
.pg-cta-card--ink .pg-p { color: rgba(240,232,213,.72); }
.pg-cta-card--ink .pg-cta-card__num { color: var(--cc-orange); opacity: .85; }
.pg-cta-card--ink .pg-cta-card__kicker { color: var(--cc-orange); }
.pg-cta-card--ink .cc-btn:not(.cc-btn--red) {
  border-color: rgba(240,232,213,.85);
  color: var(--cc-cream);
}
.pg-cta-card--ink .cc-btn:not(.cc-btn--red):hover {
  background: var(--cc-cream);
  color: var(--cc-ink);
  border-color: var(--cc-cream);
}

/* ─── Logo grid ─── */
/* #111: flex-wrap rather than grid so a short last row sits centred, whatever
   the logo count (14 logos = 4 + 4 + 4 + 2). */
.pg-logogrid {
  --pg-logo-cols: 4;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 16px;
}
.pg-logogrid__cell {
  flex: 0 0 calc((100% - (var(--pg-logo-cols) - 1) * 16px) / var(--pg-logo-cols));
  aspect-ratio: 3 / 2;
  background: #fff;
  border: 1px solid rgba(42,38,34,.12);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Fraunces', serif;
  font-style: italic;
  font-size: 16px;
  color: var(--cc-ink-soft);
}
.pg-logogrid__cell img { max-width: 60%; max-height: 60%; object-fit: contain; filter: grayscale(.2); }

/* ─── Platform tiles (partner) ─── */
.pg-platforms {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 18px;
}
.pg-platform {
  background: #fff;
  border: 1px solid rgba(42,38,34,.12);
  padding: 22px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  text-decoration: none;
  color: inherit;
}
.pg-platform__icon {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 1px solid var(--cc-red);
  color: var(--cc-red);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  font-weight: 700;
}

/* ─── Services stack (partner) ─── */
.pg-services-row {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
}
.pg-services-row a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 20px 24px;
  background: #fff;
  border: 1px solid rgba(42,38,34,.12);
  font-family: 'Fraunces', serif;
  font-size: 22px;
  color: var(--cc-ink);
  text-decoration: none;
  transition: border-color .15s ease;
}
.pg-services-row a:hover { border-color: var(--cc-red); }
.pg-services-row .pg-services-row__num {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  color: var(--cc-red);
  letter-spacing: .16em;
  margin-right: 0;
}
/* Number and label sit in their own two columns so a wrapped title lines up
   under itself, not under the number; the arrow keeps its size. */
.pg-services-row a > span:first-child {
  display: grid;
  grid-template-columns: 28px 1fr;
  column-gap: 12px;
  align-items: baseline;
}
.pg-services-row a > svg { flex: 0 0 14px; width: 14px; height: 14px; }

/* ─── Sticky jump-link bar (FAQ) ─── */
.pg-sticky-jumps {
  position: sticky;
  top: 0;
  z-index: 3;
  background: #fff;
  border-top: 1px solid rgba(42,38,34,.12);
  border-bottom: 1px solid rgba(42,38,34,.12);
  padding: 18px 64px;
}
.pg-sticky-jumps__inner {
  max-width: 1180px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  gap: 28px;
  flex-wrap: wrap;
}
.pg-sticky-jumps a {
  font-family: 'Inter Tight', sans-serif;
  font-size: 13.5px;
  color: var(--cc-ink-soft);
  text-decoration: none;
}
.pg-sticky-jumps a:hover { color: var(--cc-red); }

.pg-section { z-index: 1; }
.pg-section > * { position: relative; z-index: 1; }
/* Botanical decos must stay absolute (out of flow) — the rule above would otherwise
   force them back into flow and reserve ~280px of empty space above the content. */
.pg-section > .pg-deco-img { position: absolute; z-index: 0; }
/* Same trap for the hero background image: left in flow it becomes a flex item
   beside the hero copy, squeezing the heading into a narrow column and pushing
   the rest out of the clipped band. */
.pg-section--hero > .pg-hero__bg { position: absolute; z-index: 0; }

/* ─── Testimonials page grid ─── */
.cc-testi-grid {
  columns: 2;
  column-gap: 28px;
}
.cc-testi-card {
  break-inside: avoid;
  -webkit-column-break-inside: avoid;
  margin: 0 0 28px;
  background: #fff;
  border: 1px solid rgba(42,38,34,.10);
  border-radius: 4px;
  padding: 26px 28px;
  box-shadow: 0 12px 30px rgba(40,30,15,.06);
}
.cc-testi-card__stars { color: var(--cc-red); letter-spacing: 3px; font-size: 15px; margin-bottom: 12px; }
.cc-testi-card__body { margin: 0 0 16px; }
.cc-testi-card__body p {
  font-family: 'Fraunces', serif;
  font-size: 16px;
  line-height: 1.62;
  font-style: italic;
  margin: 0 0 12px;
}
.cc-testi-card__body p:last-child { margin-bottom: 0; }
.cc-testi-card__name {
  font-family: 'Caveat', cursive;
  font-size: 22px;
  color: var(--cc-red);
  display: block;
  line-height: 1.1;
}
.cc-testi-card__role {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: .12em;
  text-transform: uppercase;
  opacity: .55;
}
@media (max-width: 720px) {
  .cc-testi-grid { columns: 1; }
}

/* ─── Quote / testimonial card ─── */
.pg-quote {
  position: relative;
  background: #fff;
  border: 1px solid rgba(42,38,34,.12);
  padding: 32px;
}
.pg-quote__body {
  font-family: 'Fraunces', serif;
  font-style: italic;
  font-size: 18px;
  line-height: 1.55;
  color: var(--cc-ink);
  margin: 24px 0 16px;
}
.pg-quote__author {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--cc-red);
}

/* ─── Dots (carousel) ─── */
.pg-dots { display: flex; gap: 6px; justify-content: center; align-items: center; }
.pg-dots span {
  width: 8px;
  height: 8px;
  border-radius: 4px;
  background: rgba(42,38,34,.2);
  display: block;
}
.pg-dots span.is-active {
  width: 22px;
  background: var(--cc-red);
}

/* ─── Donut / chart placeholder ─── */
.pg-donut {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}
.pg-donut svg { display: block; }
.pg-donut--legend {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 24px;
  align-items: center;
  flex-direction: row;
  background: #fff;
  border: 1px solid rgba(42,38,34,.12);
  padding: 24px 28px;
}
.pg-donut__head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
}
.pg-donut__legend {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 10px;
  font-family: 'Inter Tight', sans-serif;
  font-size: 14px;
  color: var(--cc-ink);
}
.pg-donut__legend li {
  display: grid;
  grid-template-columns: 14px 1fr auto;
  align-items: center;
  gap: 12px;
}
.pg-donut__swatch {
  display: inline-block;
  width: 12px;
  height: 12px;
  border-radius: 2px;
}
.pg-donut__row-val {
  font-family: 'JetBrains Mono', monospace;
  font-size: 13px;
  color: var(--cc-red);
  font-weight: 600;
}

/* SVG variant of platform icon (vs text initial) */
.pg-platform__icon--svg {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 1px solid var(--cc-red);
  color: var(--cc-red);
}
.pg-platform__icon--svg svg { width: 20px; height: 20px; }

/* ─── Festival callout ─── */
.pg-festival {
  display: flex;
  gap: 14px;
  align-items: center;
  padding: 14px 18px;
  background: var(--cc-cream-warm);
  border: 1px dashed rgba(42,38,34,.22);
}
.pg-festival__label {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: .18em;
  color: var(--cc-red);
  font-weight: 700;
}
.pg-festival__body {
  font-family: 'Fraunces', serif;
  font-style: italic;
  font-size: 16px;
  color: var(--cc-ink);
}

/* ─── Responsive scaling ─── */
@media (max-width: 1100px) {
  .pg-section { padding: 60px 32px; }
  .pg-section--hero { margin: 16px 16px 0; padding: 0; min-height: 230px; }
  .pg-section--hero .pg-hero__bg,
  .pg-section--hero .pg-hero__overlay { inset: 0; }
  .pg-section--hero .pg-section__inner { padding: 60px 40px 40px; }
  .pg-section--hero .pg-h1 { font-size: 52px; }
  .pg-section--hero .pg-eyebrow { font-size: 24px; }
  .pg-sticky-jumps { padding: 16px 32px; }
  .pg-h1 { font-size: 52px; }
  .pg-h2 { font-size: 36px; }
  .pg-h2--lg { font-size: 44px; }
  .pg-grid--hero { grid-template-columns: 1fr; gap: 40px; }
  .pg-grid--asym,
  .pg-grid--asym-rev { grid-template-columns: 1fr; gap: 36px; }
  .pg-grid--4 { grid-template-columns: repeat(2, 1fr); }
  .pg-stats { grid-template-columns: repeat(2, 1fr); }
  .pg-services-row { grid-template-columns: 1fr; }
  .pg-donut--legend { grid-template-columns: 1fr; justify-items: center; }
  .pg-cta-pair { grid-template-columns: 1fr; gap: 28px; }
  .pg-cta-card { transform: none !important; }
  .pg-platforms { grid-template-columns: repeat(3, 1fr); }
  .pg-logogrid { --pg-logo-cols: 3; }
}
@media (max-width: 720px) {
  .pg-section { padding: 48px 20px; }
  .pg-section--hero { margin: 12px 12px 0; padding: 0; min-height: 240px; }
  .pg-section--hero .pg-hero__bg,
  .pg-section--hero .pg-hero__overlay { inset: 0; }
  .pg-section--hero .pg-section__inner { padding: 52px 24px 28px; }
  .pg-section--hero .pg-h1 { font-size: 36px; letter-spacing: -0.02em; }
  .pg-section--hero .pg-eyebrow { font-size: 22px; }
  .pg-section--hero .pg-p { font-size: 15px; margin: 18px 0; }
  .pg-section--hero .cc-btn { padding: 12px 18px; font-size: 13px; }
  .pg-h1 { font-size: 40px; }
  .pg-h2 { font-size: 30px; }
  .pg-h2--lg { font-size: 36px; }
  .pg-grid--2,
  .pg-grid--3 { grid-template-columns: 1fr; }
  .pg-list { grid-template-columns: 1fr; }
  .pg-steps { grid-template-columns: 1fr; }
  .pg-steps__item { border-right: none; border-bottom: 1px solid rgba(42,38,34,.1); }
  .pg-steps__item:last-child { border-bottom: none; }
  .pg-table__head,
  .pg-table__row { grid-template-columns: 1fr !important; gap: 6px; }
  .pg-table__head { display: none; }
  .pg-platforms { grid-template-columns: repeat(2, 1fr); }
  .pg-logogrid { --pg-logo-cols: 2; }
}

/* ─────────────────────────────────────────────────────────────
   Single Trip — reference (MACS-style) layout. All trip-page
   classes live here. Reuses brand tokens defined in homepage.css.
   ───────────────────────────────────────────────────────────── */

/* Intro row: body + booking panel */
.pg-trip-intro {
  display: grid;
  grid-template-columns: 1.5fr 1fr;
  gap: 56px;
  align-items: start;
}
.pg-trip-intro__main {}
.pg-trip-highlights li {
  font-family: 'Fraunces', Georgia, serif;
  font-size: 17px;
  color: var(--cc-ink);
}

/* Booking panel */
.pg-trip-book {
  position: sticky;
  top: 24px;
  background: #fff;
  border: 1px solid rgba(42,38,34,.14);
  border-radius: 4px;
  padding: 28px;
  box-shadow: 0 18px 44px rgba(40,30,15,.08);
}
.pg-trip-book__price {
  display: flex;
  align-items: baseline;
  gap: 8px;
  padding-bottom: 18px;
  margin-bottom: 18px;
  border-bottom: 1px solid rgba(42,38,34,.12);
}
.pg-trip-book__from {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--cc-ink-soft);
}
.pg-trip-book__amount {
  font-family: 'Fraunces', Georgia, serif;
  font-size: 34px;
  color: var(--cc-ink);
  line-height: 1;
}
.pg-trip-book__row {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin-bottom: 16px;
}
.pg-trip-book__val {
  font-family: 'Fraunces', Georgia, serif;
  font-size: 17px;
  color: var(--cc-ink);
}
.pg-trip-book__actions {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 22px;
}
.pg-trip-book__actions .cc-btn { justify-content: center; }
.pg-trip-book__ghost {
  color: var(--cc-red);
  background: transparent;
  border-color: var(--cc-red);
}
.pg-trip-book__ghost:hover {
  background: var(--cc-red);
  color: #fff;
  border-color: var(--cc-red);
}

/* Gallery: large hero + thumbnail strip */
.pg-trip-gallery {
  display: grid;
  grid-template-columns: 1.8fr 1fr;
  gap: 16px;
}
.pg-trip-gallery__main { height: 100%; }
.pg-trip-gallery__thumbs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  align-content: start;
}

/* Accordion (itinerary + other info) using <details>/<summary> */
.pg-accordion {
  display: flex;
  flex-direction: column;
  border-top: 1px solid rgba(42,38,34,.12);
}
.pg-accordion__item {
  border-bottom: 1px solid rgba(42,38,34,.12);
}
.pg-accordion__summary {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 18px 4px;
  cursor: pointer;
  list-style: none;
  font-family: 'Fraunces', Georgia, serif;
}
.pg-accordion__summary::-webkit-details-marker { display: none; }
.pg-accordion__title {
  flex: 1;
  font-size: 19px;
  color: var(--cc-ink);
}
.pg-accordion__meta {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}
.pg-trip-stat {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--cc-red);
  border: 1px solid rgba(162,68,56,.4);
  border-radius: 999px;
  padding: 4px 10px;
}
.pg-accordion__chevron {
  position: relative;
  width: 12px;
  height: 12px;
  flex-shrink: 0;
  transition: transform .2s ease;
}
.pg-accordion__chevron::before,
.pg-accordion__chevron::after {
  content: '';
  position: absolute;
  top: 50%;
  width: 8px;
  height: 1.4px;
  background: var(--cc-red);
}
.pg-accordion__chevron::before { left: 0; transform: rotate(45deg); }
.pg-accordion__chevron::after { right: 0; transform: rotate(-45deg); }
.pg-accordion__item[open] .pg-accordion__chevron { transform: rotate(180deg); }
/* Chevron removed — the +/- indicator (summary::after) is the expand affordance. */
.pg-accordion__chevron { display: none; }
.pg-accordion__body {
  padding: 0 4px 22px;
}
.pg-accordion__body .pg-list { margin-top: 0; }

/* Route map */
.pg-trip-map {
  position: relative;
  border: 1px solid rgba(42,38,34,.12);
  overflow: hidden;
  background: var(--cc-cream-warm);
}
.pg-trip-map img { display: block; width: 100%; height: auto; }
.pg-trip-map--embed { aspect-ratio: 16 / 9; }
.pg-trip-map--embed iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

@media (max-width: 1100px) {
  .pg-trip-intro { grid-template-columns: 1fr; gap: 36px; }
  .pg-trip-book { position: static; }
}
@media (max-width: 720px) {
  .pg-trip-gallery { grid-template-columns: 1fr; }
  .pg-trip-gallery__thumbs { grid-template-columns: 1fr 1fr; }
  .pg-accordion__summary { flex-wrap: wrap; }
}

/* ─── Trip listing container (horizontal cards stack in one column) ─── */
.pg-trip-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 28px;
}
.pg-trip-list--2 { grid-template-columns: 1fr 1fr; }

/* ─── Trip card — horizontal (image left, content right) ─── */
.pg-trip-card {
  flex-direction: row;
  align-items: stretch;
  padding: 0;
  gap: 0;
  overflow: hidden;
  box-shadow: 0 1px 2px rgba(42,38,34,.04), 0 12px 28px rgba(42,38,34,.06);
}
.pg-trip-card__media {
  position: relative;
  flex: 0 0 45%;
  max-width: 45%;
  display: block;
  background: var(--cc-cream-warm);
  border-right: 1px solid rgba(42,38,34,.12);
  overflow: hidden;
}
.pg-trip-card__media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.pg-trip-card__badge {
  position: absolute;
  top: 14px;
  left: 14px;
  z-index: 2;
  /* Holds the status badge and, when the trip is featured, "Most Popular"
     stacked beneath it. */
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
}
.pg-badge--popular {
  color: var(--cc-ink);
  background: var(--cc-orange);
  border-color: var(--cc-orange);
}
.pg-trip-card__body {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 26px 28px;
}
.pg-trip-card__duration {
  align-self: flex-start;
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--cc-ink-soft);
  border: 1px solid rgba(42,38,34,.28);
  border-radius: 999px;
  padding: 5px 13px;
}
.pg-trip-card__title { margin: 0; }
.pg-trip-card__title a {
  text-decoration: none;
  color: inherit;
}
.pg-trip-card__title a:hover { color: var(--cc-red); }
.pg-trip-card__desc { margin: 0; }
.pg-trip-card__highlights {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.pg-trip-card__hl-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 6px;
}
.pg-trip-card__hl-list li {
  position: relative;
  padding-left: 18px;
  font-family: 'Inter Tight', sans-serif;
  font-size: 14px;
  line-height: 1.45;
  color: var(--cc-ink-soft);
}
.pg-trip-card__hl-list li::before {
  content: '';
  position: absolute;
  left: 2px;
  top: 8px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--cc-red);
}
.pg-trip-card__divider {
  height: 1px;
  background: rgba(42,38,34,.12);
  margin-top: auto;
}
.pg-trip-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 28px;
}
.pg-trip-card__meta-item {
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--cc-red);
}
.pg-trip-card__icon {
  flex: 0 0 auto;
  width: 22px;
  height: 22px;
}
.pg-trip-card__meta-item > span {
  display: flex;
  flex-direction: column;
  line-height: 1.3;
}
.pg-trip-card__meta-label {
  font-family: 'JetBrains Mono', monospace;
  font-size: 9.5px;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--cc-ink-soft);
}
.pg-trip-card__meta-val {
  font-family: 'Inter Tight', sans-serif;
  font-size: 14px;
  font-weight: 600;
  color: var(--cc-ink);
}

@media (max-width: 980px) {
  .pg-trip-list--2 { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
  .pg-trip-card { flex-direction: column; }
  .pg-trip-card__media {
    flex-basis: auto;
    max-width: none;
    aspect-ratio: 16 / 10;
    border-right: none;
    border-bottom: 1px solid rgba(42,38,34,.12);
  }
  .pg-trip-card__meta { gap: 20px; }
}

/* ─────────────────────────────────────────────────────────────
   Single Trip — MACS-style top section, facts panel, accordions.
   Brand adaptation of the reference:
     reference navy hero/title  → brand cream section + ink title
     reference green primary btn → .cc-btn--red (brand red)
     reference blue/navy labels  → brand red (mono) / ink-soft
     reference yellow accents    → brand orange
   ───────────────────────────────────────────────────────────── */

/* Trip hero is a compact image band (title lives in the white section below) */
.pg-section--hero-trip { min-height: 46vh; }

/* Big uppercase title above the two-column top section */
.pg-trip-title {
  text-transform: uppercase;
  letter-spacing: -0.01em;
  margin-bottom: 36px;
}
/* The `.pg h1` / `.pg p` resets (0,1,1) beat the single-class spacing above on
   single trips (the page shell is .pg, not .cc-home), so these two are scoped
   to match. Targeted: not a site-wide specificity change. */
.pg .pg-trip-title { margin-bottom: 36px; }
.pg .pg-trip-top .pg-p--lead { margin-top: 24px; }

/* Two-column top: highlights + body (left) · facts panel (right) */
.pg-trip-top {
  display: grid;
  grid-template-columns: 1.55fr 1fr;
  gap: 56px;
  align-items: start;
}
.pg-trip-top__main {}

/* Checkmark highlights list */
.pg-checklist {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 12px;
}
.pg-checklist li {
  position: relative;
  padding-left: 32px;
  font-family: 'Fraunces', Georgia, serif;
  font-size: 17px;
  line-height: 1.4;
  color: var(--cc-ink);
}
.pg-checklist li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 2px;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: var(--cc-red);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M9.55 17.05 4.5 12l1.4-1.4 3.65 3.6 8.15-8.15L19.1 7.5z'/%3E%3C/svg%3E") center / 18px no-repeat,
            linear-gradient(#000, #000);
  -webkit-mask-composite: destination-out;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M9.55 17.05 4.5 12l1.4-1.4 3.65 3.6 8.15-8.15L19.1 7.5z'/%3E%3C/svg%3E") center / 18px no-repeat,
                linear-gradient(#000, #000);
          mask-composite: exclude;
}

/* Facts panel (bordered card on the right) */
.pg-facts {
  position: sticky;
  top: 24px;
  background: #fff;
  border: 1px solid rgba(42,38,34,.16);
  border-radius: 4px;
  padding: 26px 28px;
  box-shadow: 0 18px 44px rgba(40,30,15,.08);
}
.pg-facts__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 12px 0;
  border-bottom: 1px solid rgba(42,38,34,.1);
}
.pg-facts__row:first-child { padding-top: 0; }
.pg-facts__label {
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 10.5px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--cc-ink-soft);
  flex: 0 0 auto;
  max-width: 52%;
}
.pg-facts__val {
  font-family: 'Fraunces', Georgia, serif;
  font-size: 15px;
  color: var(--cc-ink);
  text-align: right;
}

/* 1–3 dot/pip rating */
.pg-facts__dots {
  display: inline-flex;
  gap: 6px;
  align-items: center;
}
.pg-facts__dot {
  width: 11px;
  height: 11px;
  border-radius: 50%;
  border: 1.5px solid var(--cc-red);
  background: transparent;
}
.pg-facts__dot.is-on { background: var(--cc-red); }

/* Price block + actions */
.pg-facts__price {
  display: flex;
  align-items: baseline;
  gap: 8px;
  padding: 18px 0 4px;
}
.pg-facts__from {
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 11px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--cc-ink-soft);
}
.pg-facts__amount {
  font-family: 'Fraunces', Georgia, serif;
  font-size: 32px;
  line-height: 1;
  color: var(--cc-ink);
}
.pg-facts__price-note {
  margin: 4px 0 0;
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 10.5px;
  letter-spacing: .06em;
  color: var(--cc-ink-soft);
}

/* Deposit / balance terms, sat under the price */
.pg-facts__terms {
  margin: 16px 0 0;
  padding: 14px 0 0;
  border-top: 1px solid rgba(42,38,34,.1);
  display: grid;
  gap: 8px;
}
.pg-facts__term {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 14px;
}
.pg-facts__term dt {
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 10.5px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--cc-ink-soft);
}
.pg-facts__term dd {
  margin: 0;
  font-family: 'Fraunces', Georgia, serif;
  font-size: 14px;
  color: var(--cc-ink);
  text-align: right;
}

/* Collapsed "Discounts & add-ons" drawer — keeps the fine print out of the way */
.pg-facts__extras {
  margin-top: 12px;
  border-top: 1px solid rgba(42,38,34,.1);
}
.pg-facts__extras > summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 0 2px;
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 10.5px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--cc-red);
}
.pg-facts__extras > summary::-webkit-details-marker { display: none; }
.pg-facts__extras-chevron {
  width: 8px;
  height: 8px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg) translate(-2px, -2px);
  transition: transform .18s ease;
}
.pg-facts__extras[open] .pg-facts__extras-chevron {
  transform: rotate(225deg) translate(-2px, -2px);
}
.pg-facts__extras-body { padding-bottom: 4px; }
.pg-facts__fine {
  margin: 8px 0 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 7px;
}
.pg-facts__fine li {
  font-size: 12.5px;
  line-height: 1.45;
  color: var(--cc-ink-soft);
}
.pg-facts__fine li strong {
  display: block;
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 500;
  font-size: 13.5px;
  color: var(--cc-ink);
}
.pg-facts__fine--addons {
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px dotted rgba(42,38,34,.22);
}
.pg-facts__fineprint {
  margin: 12px 0 0;
  font-size: 11.5px;
  line-height: 1.5;
  color: var(--cc-ink-soft);
}

@media (prefers-reduced-motion: reduce) {
  .pg-facts__extras-chevron { transition: none; }
}

.pg-facts__actions {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 20px;
}
.pg-facts__actions .cc-btn { justify-content: center; }
.pg-facts__ghost {
  color: var(--cc-red);
  background: transparent;
  border-color: var(--cc-red);
}
.pg-facts__ghost:hover {
  background: var(--cc-red);
  color: #fff;
  border-color: var(--cc-red);
}

/* Centered accordion heading + Expand-all toggle */
.pg-accordion-head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  margin-bottom: 28px;
  text-align: center;
}
.pg-accordion-head__title {
  text-transform: uppercase;
  letter-spacing: 0.01em;
}
.pg-expand-all {
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 11px;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--cc-red);
  background: transparent;
  border: 1px solid var(--cc-red);
  border-radius: 999px;
  padding: 8px 18px;
  cursor: pointer;
  transition: background .18s ease, color .18s ease;
}
.pg-expand-all:hover {
  background: var(--cc-red);
  color: #fff;
}

/* Accordion rows variant: light cream rows, generous padding */
.pg-accordion--rows {
  border-top: none;
  gap: 8px;
}
.pg-accordion--rows .pg-accordion__item {
  border: 1px solid rgba(42,38,34,.1);
  border-radius: 4px;
  background: var(--cc-cream);
  overflow: hidden;
}
.pg-accordion--rows .pg-accordion__summary {
  padding: 18px 22px;
}
.pg-accordion--rows .pg-accordion__item[open] {
  background: var(--cc-cream-warm);
}
.pg-accordion--rows .pg-accordion__body {
  padding: 0 22px 22px;
}

/* Itinerary: "Day n:" red mono label + right-aligned mileage */
.pg-day-label {
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--cc-red);
  margin-right: 10px;
}
.pg-day-meta {
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 11px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--cc-ink-soft);
  white-space: nowrap;
}

/* "What's Not Included" — neutral marker (no red dot from default lined list) */
.pg-list--excl li { color: var(--cc-ink-soft); }

@media (max-width: 1100px) {
  .pg-trip-top { grid-template-columns: 1fr; gap: 36px; }
  .pg-facts { position: static; }
}
@media (max-width: 720px) {
  .pg-trip-title { font-size: 34px; }
  .pg-accordion--rows .pg-accordion__summary { padding: 16px; flex-wrap: wrap; }
  .pg-facts__label { max-width: none; }
}

/* ─────────────────────────────────────────────────────────────
   Level pips + ⓘ info button (activity / accommodations).
   Brand red filled pips on a faint ink track; "mixed" = half-filled.
   ───────────────────────────────────────────────────────────── */
.pg-level-pips {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  vertical-align: middle;
}
.pg-level-pips__pip {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: rgba(162, 68, 56, .22);
  flex: 0 0 auto;
}
.pg-level-pips__pip.is-on { background: var(--cc-red); }
/* "Mixed" — each pip rendered half-filled (red left, faint right). */
.pg-level-pips__pip.is-half {
  background: linear-gradient(90deg, var(--cc-red) 0 50%, rgba(162, 68, 56, .22) 50% 100%);
}

.pg-level-info {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  padding: 0;
  margin-left: 5px;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: var(--cc-red);
  cursor: pointer;
  vertical-align: middle;
  line-height: 0;
  transition: color .15s ease, transform .15s ease;
}
.pg-level-info svg { width: 15px; height: 15px; display: block; }
.pg-level-info:hover { color: var(--cc-red-dark); transform: scale(1.08); }
.pg-level-info:focus-visible {
  outline: 2px solid var(--cc-red);
  outline-offset: 2px;
}

/* Facts-panel level label sits inline with its ⓘ button. */
.pg-facts__label--level {
  display: inline-flex;
  align-items: center;
}

/* ─── Horizontal trip card: levels + chevron CTA ─── */
.pg-trip-card__levels {
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
  margin-top: 14px;
}
.pg-trip-card__level {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.pg-trip-card__level-label {
  display: inline-flex;
  align-items: center;
  font-family: 'JetBrains Mono', monospace;
  font-size: 9.5px;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--cc-ink-soft);
}
.pg-trip-card__cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  align-self: flex-start;
  margin-top: 16px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--cc-red);
  text-decoration: none;
  transition: gap .15s ease, color .15s ease;
}
.pg-trip-card__cta:hover { color: var(--cc-red-dark); gap: 12px; }
.pg-trip-card__chevron {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  border: 1px solid var(--cc-red);
  color: var(--cc-red);
  flex: 0 0 auto;
  transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.pg-trip-card__chevron svg { width: 14px; height: 9px; display: block; }
.pg-trip-card__cta:hover .pg-trip-card__chevron {
  background: var(--cc-red);
  border-color: var(--cc-red);
  color: #fff;
}

/* ─────────────────────────────────────────────────────────────
   Vertical trip card (compact, 3-up). Image top → body below.
   ───────────────────────────────────────────────────────────── */
.pg-trip-grid-v { align-items: stretch; }
.pg-trip-card-v {
  display: flex;
  flex-direction: column;
  padding: 0;
  gap: 0;
  overflow: hidden;
  height: 100%;
  box-shadow: 0 1px 2px rgba(42, 38, 34, .04), 0 12px 28px rgba(42, 38, 34, .06);
}
.pg-trip-card-v__media {
  position: relative;
  display: block;
  aspect-ratio: 16 / 10;
  background: var(--cc-cream-warm);
  border-bottom: 1px solid rgba(42, 38, 34, .12);
  overflow: hidden;
}
.pg-trip-card-v__media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.pg-trip-card-v__badge {
  position: absolute;
  top: 12px;
  left: 12px;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
}
.pg-trip-card-v__body {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 20px 20px 22px;
}
.pg-trip-card-v__duration {
  align-self: flex-start;
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--cc-ink-soft);
  border: 1px solid rgba(42, 38, 34, .28);
  border-radius: 999px;
  padding: 4px 11px;
}
.pg-trip-card-v__title { margin: 0; font-size: 22px; }
.pg-trip-card-v__title a { text-decoration: none; color: inherit; }
.pg-trip-card-v__title a:hover { color: var(--cc-red); }
.pg-trip-card-v__levels {
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
  margin-top: 2px;
}
.pg-trip-card-v__level {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.pg-trip-card-v__level-label {
  display: inline-flex;
  align-items: center;
  font-family: 'JetBrains Mono', monospace;
  font-size: 9.5px;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--cc-ink-soft);
}
.pg-trip-card-v__cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  align-self: flex-start;
  margin-top: auto;
  padding-top: 14px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--cc-red);
  text-decoration: none;
  transition: gap .15s ease, color .15s ease;
}
.pg-trip-card-v__cta:hover { color: var(--cc-red-dark); gap: 12px; }
.pg-trip-card-v__chevron {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  border: 1px solid var(--cc-red);
  color: var(--cc-red);
  flex: 0 0 auto;
  transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.pg-trip-card-v__chevron svg { width: 14px; height: 9px; display: block; }
.pg-trip-card-v__cta:hover .pg-trip-card-v__chevron {
  background: var(--cc-red);
  border-color: var(--cc-red);
  color: #fff;
}
@media (max-width: 860px) {
  .pg-trip-grid-v.pg-grid--3 { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 560px) {
  .pg-trip-grid-v.pg-grid--3 { grid-template-columns: 1fr; }
}

/* ─────────────────────────────────────────────────────────────
   Level-guide modals (reuse .cc-modal). Wider, scrollable list.
   ───────────────────────────────────────────────────────────── */
.cc-modal__dialog--guide { max-width: 680px; }
.cc-level-guide__heading {
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--cc-red);
  margin: 22px 0 10px;
}
.cc-level-guide {
  list-style: none;
  margin: 0 0 4px;
  padding: 0;
}
.cc-level-guide__row {
  padding: 14px 0;
  border-top: 1px solid rgba(42, 38, 34, .14);
}
.cc-level-guide__row:first-child { border-top: 0; }
.cc-level-guide__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 5px;
}
.cc-level-guide__name {
  font-family: 'Fraunces', Georgia, serif;
  font-size: 18px;
  color: var(--cc-ink);
}
.cc-level-guide__dist {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: .06em;
  color: var(--cc-red);
  white-space: nowrap;
}
.cc-level-guide__desc {
  margin: 0;
  font-family: 'Inter Tight', sans-serif;
  font-size: 14px;
  line-height: 1.55;
  color: var(--cc-ink-soft);
}
@media (max-width: 720px) {
  .pg-trip-card__levels { gap: 18px; }
  .cc-level-guide__top { flex-direction: column; align-items: flex-start; gap: 4px; }
}

/* ---------------------------------------------------------------------------
 * Breadcrumbs — slim trail bar under the hero (Trips / Group Travel section).
 * Fresh `.pg-breadcrumbs` (plural); a prior cleanup removed an old singular rule.
 * ------------------------------------------------------------------------- */
/*
 * The trail bar sits between the hero and the first content section, so it
 * carries its own breathing room: air above it separates it from the hero, and
 * the space below it stacks with the following section's full 80px top padding
 * to match the hero → content gap used on every other page.
 */
.pg-breadcrumbs {
  padding: 28px 0 16px;
  background: var(--cc-cream);
}
.pg-breadcrumbs__list {
  list-style: none;
  margin: 0 auto;
  padding: 0 24px;
  max-width: 1180px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 8px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--cc-ink-soft);
}
.pg-breadcrumbs__item {
  display: flex;
  align-items: center;
  gap: 8px;
}
.pg-breadcrumbs__item + .pg-breadcrumbs__item::before {
  content: '›';
  color: var(--cc-ink-soft);
  opacity: .55;
  font-size: 13px;
}
.pg-breadcrumbs__link {
  color: var(--cc-ink-soft);
  text-decoration: none;
  transition: color .15s ease;
}
.pg-breadcrumbs__link:hover,
.pg-breadcrumbs__link:focus-visible {
  color: var(--cc-red);
}
.pg-breadcrumbs__current {
  color: var(--cc-ink);
}
@media (max-width: 720px) {
  .pg-breadcrumbs { padding: 20px 0 12px; }
  .pg-breadcrumbs__list { padding: 0 18px; font-size: 10px; }
}

/* ==========================================================================
   Events — card, list, archive + single facts (uses brand tokens only).
   ========================================================================== */

.pg-event-list {
  display: grid;
  gap: 18px;
}

/* Event card: date block | body | action. */
.pg-event-card {
  display: grid;
  grid-template-columns: 92px 1fr auto;
  align-items: center;
  gap: 24px;
  padding: 22px 26px;
  background: #fff;
  border: 1px solid rgba(42, 38, 34, .14);
  border-radius: 4px;
  transition: border-color .18s ease, box-shadow .18s ease;
}
.pg-event-card:hover {
  border-color: var(--cc-red);
  box-shadow: 0 6px 24px -16px rgba(162, 68, 56, .55);
}

/* Date block. */
.pg-event-card__date {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 10px 6px;
  background: var(--cc-cream-warm);
  border-radius: 4px;
  line-height: 1;
}
.pg-event-card__month {
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--cc-red);
}
.pg-event-card__day {
  font-family: 'Fraunces', serif;
  font-size: 34px;
  font-weight: 600;
  color: var(--cc-ink);
  margin: 4px 0 2px;
}
.pg-event-card__year {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: .1em;
  color: var(--cc-ink-soft);
}
.pg-event-card__range {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: .08em;
  color: var(--cc-ink-soft);
  margin-top: 4px;
  padding-top: 4px;
  border-top: 1px dashed rgba(42, 38, 34, .25);
}

/* Body. */
.pg-event-card__body { min-width: 0; }
.pg-event-card__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 8px;
}
.pg-event-chip {
  display: inline-block;
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: .12em;
  text-transform: uppercase;
  padding: 4px 10px;
  border: 1px solid var(--cc-red);
  border-radius: 999px;
  color: var(--cc-red);
}
.pg-event-chip--virtual {
  border-color: var(--cc-orange);
  color: var(--cc-orange);
}
.pg-event-card__title {
  margin: 0 0 6px;
  font-size: 22px;
  line-height: 1.2;
}
.pg-event-card__title a {
  color: var(--cc-ink);
  text-decoration: none;
  transition: color .15s ease;
}
.pg-event-card__title a:hover,
.pg-event-card__title a:focus-visible {
  color: var(--cc-red);
}
.pg-event-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 16px;
  font-family: 'Inter Tight', sans-serif;
  font-size: 14px;
  color: var(--cc-ink-soft);
}
.pg-event-card__meta-date {
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px;
  letter-spacing: .04em;
}

/* Action. */
.pg-event-card__action { flex-shrink: 0; }
.pg-event-card__btn { white-space: nowrap; }

/* Past appearances. */
.pg-event-past { border-top: none; }
.pg-event-past__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0;
}
.pg-event-past__row {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 6px 16px;
  padding: 14px 0;
  border-bottom: 1px dashed rgba(42, 38, 34, .18);
}
.pg-event-past__row:last-child { border-bottom: none; }
.pg-event-past__row a {
  font-family: 'Fraunces', serif;
  font-size: 18px;
  color: var(--cc-ink);
  text-decoration: none;
}
.pg-event-past__row a:hover { color: var(--cc-red); }
.pg-event-past__meta {
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px;
  letter-spacing: .04em;
  color: var(--cc-ink-soft);
}

/* Single-event facts panel reuses .pg-facts; small tweaks. */
.pg-event-facts .pg-facts__actions { margin-top: 22px; }

@media (max-width: 720px) {
  .pg-event-card {
    grid-template-columns: 64px 1fr;
    gap: 16px;
    padding: 18px;
  }
  .pg-event-card__day { font-size: 26px; }
  .pg-event-card__action {
    grid-column: 1 / -1;
  }
  .pg-event-card__btn {
    display: inline-flex;
    width: 100%;
    justify-content: center;
  }
}

/* The accents sit at fixed offsets from the section edge, while the content
   column is capped at 1180px and centred. Below ~1580px the column reaches out
   far enough that the branch and ivy crossed the headings and made them hard to
   read. Tie each accent to the column edge so it bleeds off-page instead. */
@media (max-width: 1580px) {
  .pg-deco-img--branch-tl { left:  calc((100vw - 1180px) / 2 - 260px); width: 260px; }
  .pg-deco-img--ivy-bl    { left:  calc((100vw - 1180px) / 2 - 260px); width: 260px; }
  .pg-deco-img--palm-tr   { right: calc((100vw - 1180px) / 2 - 300px); width: 300px; }
  .pg-deco-img--rock-br   { right: calc((100vw - 1180px) / 2 - 220px); width: 220px; }
}

/* Hide purely decorative flourishes (branch, palm, rock, ivy) on mobile. */
@media (max-width: 720px) {
  .pg-deco-img {
    display: none;
  }
}

/* ─── Single blog post ───
   These pages used to render with no container at all. Sections and the 880px
   narrow measure come from the shared scaffolding; this is the typography. */
.pg-post__head { padding-bottom: 0; }
/* scoped: .pg p and .pg h1 above are 0,1,1 and would otherwise win */
.pg-post .pg-post__title { margin: 10px 0 0; }
.pg-post .pg-post__meta {
  margin: 18px 0 0;
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--cc-ink-soft);
}
.pg-post .pg-post__meta span { margin: 0 6px; opacity: .5; }
.pg-post__head .pg-eyebrow a { color: var(--cc-red); text-decoration: none; }
.pg-post__head .pg-eyebrow a:hover { text-decoration: underline; }

.pg-post__media { padding-top: 36px; padding-bottom: 0; }
.pg-post__thumb { width: 100%; height: auto; display: block; }

.pg-post__body { padding-top: 36px; padding-bottom: 40px; }
.pg-post__body .entry-content { font-size: 17px; line-height: 1.72; color: var(--cc-ink-soft); }
.pg-post__body .entry-content > :first-child { margin-top: 0; }
.pg-post__body .entry-content > :last-child { margin-bottom: 0; }
.pg-post__body .entry-content p:empty { display: none; }
.pg-post__body .entry-content h2,
.pg-post__body .entry-content h3,
.pg-post__body .entry-content h4 {
  font-family: 'Fraunces', Georgia, serif;
  color: var(--cc-ink);
  line-height: 1.2;
  margin: 1.8em 0 .5em;
}
.pg-post__body .entry-content h2 { font-size: 32px; }
.pg-post__body .entry-content h3 { font-size: 25px; }
.pg-post__body .entry-content h4 { font-size: 20px; }
.pg-post__body .entry-content img,
.pg-post__body .entry-content iframe { max-width: 100%; height: auto; }
.pg-post__body .entry-content figure { margin: 1.8em 0; }
/* Legacy [caption] figures carry an inline pixel width (633px+); cap them to the column. */
.pg-post__body .entry-content .wp-caption { max-width: 100%; }
.pg-post__body .entry-content figcaption {
  font-size: 13.5px; color: var(--cc-ink-soft); opacity: .8; margin-top: 8px; text-align: center;
}
.pg-post__body .entry-content blockquote {
  margin: 1.8em 0; padding: 4px 0 4px 22px;
  border-left: 3px solid var(--cc-red);
  font-family: 'Fraunces', Georgia, serif; font-size: 20px; font-style: italic;
}
.pg-post__body .entry-content blockquote cite { display: block; font-size: 14px; font-style: normal; margin-top: 8px; }
.pg-post .pg-post__tags { margin: 40px 0 0; font-size: 13px; line-height: 2; }
.pg-post__tags a { color: var(--cc-red); }

.pg-post__nav { padding-top: 0; padding-bottom: 96px; }
.pg-post__nav .pg-section__inner {
  display: flex;
  gap: 24px;
  justify-content: space-between;
  border-top: 1px solid rgba(42, 38, 34, .14);
  padding-top: 32px;
}
.pg-post__nav-item { flex: 1 1 0; min-width: 0; }
.pg-post__nav-item--next { text-align: right; }
.pg-post__nav a { text-decoration: none; color: inherit; display: block; }
.pg-post__nav a:hover .pg-post__nav-title { color: var(--cc-red); }
.pg-post__nav-label {
  display: block; font-family: 'JetBrains Mono', monospace; font-size: 10.5px;
  letter-spacing: .14em; text-transform: uppercase; color: var(--cc-red); margin-bottom: 5px;
}
.pg-post__nav-title { font-family: 'Fraunces', Georgia, serif; font-size: 18px; line-height: 1.3; }
.pg-post__comments { padding-top: 0; padding-bottom: 96px; }

@media (max-width: 720px) {
  .pg-post__nav .pg-section__inner { flex-direction: column; gap: 20px; }
  .pg-post__nav-item--next { text-align: left; }
  .pg-post__body .entry-content { font-size: 16px; }
}

/* Stories hub: AJAX feed loading state. */
#cc-blog-results { transition: opacity .2s ease; }
#cc-blog-results.is-loading { opacity: .45; pointer-events: none; }

/* ─────────────────────────────────────────────
   Comment round 2026-10
   ───────────────────────────────────────────── */

/* #107 — the free-hour offer sat flush under the boxed list; give it air and centre it. */
.pg-section__narrow .pg-offer {
  margin: 56px auto 0;
  text-align: center;
  max-width: 640px;
}

/* #108 — "A day on the trail": one body size throughout. */
.pg-day__p { font-size: 16px; line-height: 1.65; }

/* #118 — quote email sits between the heading and the deliverable cards. */
.pg-services-quote { margin: 20px 0 32px; }

/* #119 — pillar cards carry a photo instead of the placeholder glyph. */
.pg-pillar {
  padding: 0;
  gap: 0;
  text-decoration: none;
  color: inherit;
  overflow: hidden;
}
.pg-pillar__img {
  display: block;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: var(--cc-cream-warm);
}
.pg-pillar__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .4s ease;
}
.pg-pillar:hover .pg-pillar__img img { transform: scale(1.03); }
.pg-pillar__body {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 24px 28px 28px;
  flex: 1;
}
.pg-pillar__body .pg-card__link { margin-top: auto; }
@media (prefers-reduced-motion: reduce) {
  .pg-pillar__img img { transition: none; }
  .pg-pillar:hover .pg-pillar__img img { transform: none; }
}

/* 375px floor: the credential grid (about) and stat/donut tiles (partner) ran
   up to 134px past the viewport on phones. */
@media (max-width: 720px) {
  .pg-creds { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .pg-creds > div { padding: 20px !important; border: 0 !important; border-bottom: 1px solid rgba(42,38,34,.08) !important; }
  .pg-creds > div:nth-child(odd) { border-right: 1px solid rgba(42,38,34,.08) !important; }
  .pg-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .pg-stat { padding: 20px; min-width: 0; }
  .pg-stat__num,
  .pg-creds .pg-stat__num { font-size: 32px; }
  .pg-stat__label { overflow-wrap: anywhere; }
  .pg-donut--legend { grid-template-columns: 1fr; justify-items: center; padding: 20px; min-width: 0; }
  .pg-services-row a { font-size: 18px; padding: 16px 18px; }
}
