/* ================================================================
   Packzup v14 — Motion Design System
   Apple easing · Stripe interaction · Editorial feel
   ================================================================ */
@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,100..900;1,9..144,100..900&family=Inter:wght@300;400;500;600&display=swap');

/* ── Tokens ────────────────────────────────────────────── */
:root {
  /* Easing */
  --e1: cubic-bezier(0.25, 0.46, 0.45, 0.94); /* Apple standard */
  --e2: cubic-bezier(0.4,  0.0,  0.2,  1);     /* Sharp / state */
  --e3: cubic-bezier(0.34, 1.22, 0.64, 1);     /* Lift spring   */
  /* Durations */
  --t1: 120ms; --t2: 220ms; --t3: 350ms; --t4: 560ms; --t5: 740ms;
  /* Palette */
  --cream:   #F4F0E8;
  --warm:    #EAE5DC;
  --ink:     #111318;
  --ink2:    #3C3C45;
  --muted:   #78787F;
  --dark:    #0C0E13;
  --forest:  #0D2016;
  --accent:  #D85F28;
  --gold:    #C4A043;
  --line:    rgba(0,0,0,.07);
  /* Type */
  --serif: 'Fraunces', Georgia, serif;
  --sans:  'Inter', system-ui, sans-serif;
  /* Layout */
  --max: 1280px; --col: 720px;
  --gx:  clamp(20px, 5vw, 80px);
  --gy:  clamp(80px, 10vw, 140px);
  --r:   8px; --rl: 16px; --rxl: 24px;
}

/* ── Reset ─────────────────────────────────────────────── */
*,*::before,*::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
html,body { overflow-x: hidden; }
body {
  font-family: var(--sans); font-size: 16px; line-height: 1.6;
  color: var(--ink); background: var(--cream);
  -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
}
img { display: block; max-width: 100%; }
a { text-decoration: none; color: inherit; }
ul,ol { list-style: none; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; border-radius: 3px; }
.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}

/* ── Astra full-bleed escape (CRITICAL) ────────────────── */
/* Strip ALL width/overflow constraints so 100vw sections work */
body.page .entry-header,
body.page .entry-title,
body.page .ast-breadcrumbs-wrapper { display: none !important; }

body.page #content.site-content,
body.page .ast-container,
body.page #primary,
body.page #primary.content-area,
body.page .site-main,
body.page .ast-article-single,
body.page article.type-page,
body.page .entry-content,
body.page .entry-content.clear {
  max-width: 100% !important;
  width: 100% !important;
  padding: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  overflow: visible !important;
}
body.page .entry-content > p:empty { display: none !important; }
body.page .entry-content::before,
body.page .entry-content::after { display: none !important; }

/* Kill Astra's default content background so our sections show correctly */
body.page .site-content { background: transparent !important; padding-top: 0 !important; }
body.page .ast-container { padding-left: 0 !important; padding-right: 0 !important; }

/* ── Keyframes ─────────────────────────────────────────── */
@keyframes fadeUp   { from { opacity:0; transform:translateY(20px); } to { opacity:1; transform:none; } }
@keyframes fadeIn   { from { opacity:0; } to { opacity:1; } }
@keyframes kenBurns { from { transform:scale(1.0) translate(0,0); } to { transform:scale(1.08) translate(-1%,-.5%); } }
@keyframes marquee  { from { transform:translateX(0); } to { transform:translateX(-50%); } }
@keyframes pulse    { 0%,100% { box-shadow:0 0 0 0 rgba(216,95,40,.4); } 50% { box-shadow:0 0 0 6px rgba(216,95,40,0); } }
@keyframes scrollDot { 0% { cy:7; opacity:1; } 100% { cy:15; opacity:0; } }

/* ── Layout ────────────────────────────────────────────── */
.pz-wrap { width:100vw; margin-left:calc(50% - 50vw); }
.pz-inner { max-width:var(--max); margin:0 auto; padding:0 var(--gx); }
.pz-inner--narrow { max-width:600px; }

.pz-section { width:100vw; margin-left:calc(50% - 50vw); padding:var(--gy) var(--gx); }
.pz-section--cream  { background:var(--cream); }
.pz-section--warm   { background:var(--warm);  }
.pz-section--dark   { background:var(--dark);  color:#fff; }
.pz-section--forest { background:var(--forest); color:#fff; }
.pz-section__in  { max-width:var(--max); margin:0 auto; }
.pz-section__in--narrow { max-width:600px; }

/* ── Section header ────────────────────────────────────── */
.pz-sh {
  display:flex; align-items:flex-end; justify-content:space-between;
  gap:16px; margin-bottom:clamp(40px,5vw,64px);
}
.pz-sh__eye {
  font-size:10px; font-weight:700; letter-spacing:.22em; text-transform:uppercase;
  color:var(--accent); margin-bottom:10px; display:flex; align-items:center; gap:10px;
}
.pz-sh__eye::before { content:''; width:20px; height:1.5px; background:var(--accent); flex-shrink:0; }
.pz-sh__title {
  font-family:var(--serif); font-size:clamp(28px,4vw,52px); font-weight:200;
  font-variation-settings:'opsz' 72; line-height:1.04; letter-spacing:-.03em;
}
.pz-section--dark .pz-sh__title, .pz-section--forest .pz-sh__title { color:#fff; }
.pz-sh__link {
  font-size:13px; font-weight:500; letter-spacing:.04em; color:var(--accent);
  white-space:nowrap; flex-shrink:0; padding-bottom:2px;
  border-bottom:1px solid rgba(216,95,40,.3);
  transition:border-color var(--t2) var(--e1);
}
.pz-sh__link:hover { border-color:var(--accent); }

/* ── Buttons ───────────────────────────────────────────── */
.btn {
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:15px 30px; border-radius:var(--r);
  font-family:var(--sans); font-size:14px; font-weight:500; letter-spacing:.01em;
  line-height:1; cursor:pointer; -webkit-user-select:none; user-select:none;
  will-change:transform;
  transition:
    background var(--t2) var(--e1),
    color      var(--t2) var(--e1),
    border-color var(--t2) var(--e1),
    transform  var(--t2) var(--e3),
    box-shadow var(--t2) var(--e1);
}
.btn:hover  { transform:translateY(-2px); box-shadow:0 8px 28px rgba(0,0,0,.16); }
.btn:active { transform:translateY(0); box-shadow:none; transition-duration:80ms; }
.btn--fill  { background:var(--accent); color:#fff; border:1.5px solid var(--accent); }
.btn--fill:hover { background:#c2511f; border-color:#c2511f; }
.btn--line  { background:transparent; color:var(--ink); border:1.5px solid rgba(0,0,0,.18); }
.btn--line:hover { border-color:var(--ink); background:rgba(0,0,0,.03); }
.btn--ghost {
  background:rgba(255,255,255,.1); color:#fff; border:1.5px solid rgba(255,255,255,.22);
  backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
}
.btn--ghost:hover { background:rgba(255,255,255,.18); border-color:rgba(255,255,255,.48); }

/* ================================================================
   HERO
   ================================================================ */
.pz-hero {
  position:relative; width:100vw; margin-left:calc(50% - 50vw);
  height:100svh; min-height:620px; max-height:1000px;
  display:flex; align-items:flex-end; overflow:hidden; background:var(--dark);
}
.pz-hero__bg-wrap { position:absolute; inset:-20% 0; z-index:0; will-change:transform; }
.pz-hero__bg {
  width:100%; height:100%;
  background:url('https://packzup.com/wp-content/uploads/2024/10/pexels-visitalmaty-848612-scaled.jpg') center/cover no-repeat;
  animation:kenBurns 30s ease-in-out infinite alternate; will-change:transform;
}
.pz-hero__veil {
  position:absolute; inset:0; z-index:1;
  background:
    linear-gradient(105deg, rgba(12,14,19,.92) 0%, rgba(12,14,19,.45) 50%, rgba(12,14,19,.15) 100%),
    linear-gradient(to bottom, rgba(12,14,19,.08) 0%, rgba(12,14,19,.55) 65%, rgba(12,14,19,.98) 100%);
}
.pz-hero__body {
  position:relative; z-index:2; width:100%; max-width:var(--max);
  margin:0 auto; padding:var(--gy) var(--gx) clamp(72px,9vw,120px);
  display:flex; flex-direction:column; align-items:flex-start;
}

/* Staggered page-load animations */
.pz-hero__badge {
  display:inline-flex; align-items:center; gap:9px;
  background:rgba(255,255,255,.09); backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px); border:1px solid rgba(255,255,255,.14);
  border-radius:100px; padding:9px 18px;
  font-size:12px; font-weight:500; color:rgba(255,255,255,.7); letter-spacing:.05em;
  margin-bottom:32px;
  animation:fadeUp var(--t4) var(--e1) both;
}
.pz-hero__badge::before {
  content:''; width:7px; height:7px; background:var(--accent);
  border-radius:50%; flex-shrink:0; animation:pulse 2.4s linear infinite;
}
.pz-hero__h1 {
  font-family:var(--serif); font-size:clamp(54px,10vw,136px); font-weight:200;
  font-variation-settings:'opsz' 144,'wght' 200; line-height:.9;
  letter-spacing:-.045em; color:#fff; max-width:860px;
  animation:fadeUp var(--t5) var(--e1) 80ms both;
}
.pz-hero__h1 em { font-style:italic; color:var(--gold); }
.pz-hero__sub {
  font-size:clamp(15px,1.6vw,19px); line-height:1.72; color:rgba(255,255,255,.48);
  max-width:460px; margin-top:24px;
  animation:fadeUp var(--t4) var(--e1) 200ms both;
}
.pz-hero__ctas {
  display:flex; gap:12px; flex-wrap:wrap; margin-top:40px;
  animation:fadeUp var(--t4) var(--e1) 340ms both;
}
.pz-hero__scroll {
  position:absolute; bottom:40px; right:var(--gx); z-index:2;
  display:flex; flex-direction:column; align-items:center; gap:8px;
  font-size:9px; font-weight:600; letter-spacing:.2em; text-transform:uppercase;
  color:rgba(255,255,255,.25);
  animation:fadeIn var(--t4) var(--e1) 600ms both;
}
.pz-hero__scroll-dot { animation:scrollDot 1.8s ease-in-out infinite; }

/* ================================================================
   TICKER
   ================================================================ */
.pz-ticker {
  width:100vw; margin-left:calc(50% - 50vw); overflow:hidden;
  background:var(--dark); padding:14px 0;
  border-top:1px solid rgba(255,255,255,.06);
  border-bottom:1px solid rgba(255,255,255,.06);
}
.pz-ticker__rail {
  display:flex; width:max-content; will-change:transform;
  animation:marquee 40s linear infinite;
}
.pz-ticker:hover .pz-ticker__rail { animation-play-state:paused; }
.pz-ticker__item {
  font-size:11px; font-weight:500; letter-spacing:.18em; text-transform:uppercase;
  color:rgba(255,255,255,.26); padding:0 40px; white-space:nowrap;
  transition:color var(--t2) var(--e1);
}
.pz-ticker__item::after { content:'·'; position:relative; left:40px; color:rgba(255,255,255,.1); }
.pz-ticker__item:hover { color:rgba(255,255,255,.7); }

/* ================================================================
   MOOD PANELS  (gethapply signature element)
   ================================================================ */
.pz-moods {
  width:100vw; margin-left:calc(50% - 50vw);
  display:grid; grid-template-columns:repeat(3,1fr);
}
.pz-mood {
  position:relative; overflow:hidden;
  padding:clamp(64px,7vw,112px) clamp(40px,4.5vw,72px);
  min-height:clamp(600px,74vh,800px);
  display:flex; flex-direction:column; justify-content:flex-end;
  text-decoration:none; color:inherit;
  transition:filter var(--t4) var(--e1);
}
.pz-moods:hover .pz-mood:not(:hover) { filter:brightness(.72) saturate(.45); }
.pz-mood--a { background:#BF4D1B; }
.pz-mood--b { background:#0D2016; }
.pz-mood--c { background:#0D2347; }

/* Ghost number — moves subtly on hover */
.pz-mood__ghost {
  position:absolute; top:-8px; right:-20px;
  font-family:var(--serif); font-size:clamp(180px,27vw,300px);
  font-weight:200; font-variation-settings:'opsz' 144;
  line-height:.88; letter-spacing:-.07em;
  color:rgba(255,255,255,.05); user-select:none; pointer-events:none;
  transition:color var(--t5) var(--e1), transform var(--t5) var(--e1);
}
.pz-mood:hover .pz-mood__ghost { color:rgba(255,255,255,.1); transform:translate(-10px,8px) scale(1.04); }

/* Label line */
.pz-mood__label {
  display:inline-flex; align-items:center; gap:10px;
  font-size:10px; font-weight:700; letter-spacing:.22em; text-transform:uppercase;
  color:rgba(255,255,255,.32); margin-bottom:20px;
  transition:color var(--t3) var(--e1);
}
.pz-mood:hover .pz-mood__label { color:rgba(255,255,255,.65); }
.pz-mood__label::before {
  content:''; width:22px; height:1.5px; background:rgba(255,255,255,.28); flex-shrink:0;
  transition:width var(--t3) var(--e1), background var(--t3) var(--e1);
}
.pz-mood:hover .pz-mood__label::before { width:40px; background:rgba(255,255,255,.65); }

/* Title */
.pz-mood__title {
  font-family:var(--serif); font-size:clamp(38px,4vw,62px);
  font-weight:200; font-variation-settings:'opsz' 72;
  color:#fff; line-height:1.06; letter-spacing:-.03em;
  transition:transform var(--t3) var(--e1);
}
.pz-mood:hover .pz-mood__title { transform:translateY(-4px); }

/* Body text */
.pz-mood__body {
  font-size:14px; line-height:1.8; color:rgba(255,255,255,.36);
  margin-top:14px; max-width:310px;
  transition:color var(--t3) var(--e1);
}
.pz-mood:hover .pz-mood__body { color:rgba(255,255,255,.55); }

/* Destination pills */
.pz-mood__pills {
  list-style:none; display:flex; flex-wrap:wrap;
  gap:6px; margin:24px 0 0; padding:0;
}
.pz-mood__pill {
  font-size:11px; letter-spacing:.04em; color:rgba(255,255,255,.46);
  background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.12);
  border-radius:100px; padding:5px 14px; white-space:nowrap;
  transition:background var(--t2) var(--e1), color var(--t2) var(--e1), border-color var(--t2) var(--e1);
}
.pz-mood:hover .pz-mood__pill { background:rgba(255,255,255,.16); color:rgba(255,255,255,.82); border-color:rgba(255,255,255,.28); }
.pz-mood:hover .pz-mood__pill:nth-child(2) { transition-delay:25ms; }
.pz-mood:hover .pz-mood__pill:nth-child(3) { transition-delay:50ms; }
.pz-mood:hover .pz-mood__pill:nth-child(4) { transition-delay:75ms; }

/* CTA */
.pz-mood__cta {
  display:inline-flex; align-items:center; gap:8px; margin-top:30px;
  font-size:13px; font-weight:500; color:rgba(255,255,255,.38);
  transition:color var(--t2) var(--e1), gap var(--t3) var(--e1);
}
.pz-mood:hover .pz-mood__cta { color:#fff; gap:18px; }

/* Bottom line */
.pz-mood::after {
  content:''; position:absolute; bottom:0; left:0; right:0; height:3px;
  background:rgba(255,255,255,.2); transform:scaleX(0); transform-origin:left;
  transition:transform var(--t5) var(--e1);
}
.pz-mood:hover::after { transform:scaleX(1); }

/* ================================================================
   STATS ROW
   ================================================================ */
.pz-stats {
  width:100vw; margin-left:calc(50% - 50vw);
  background:#060810; padding:clamp(60px,8vw,100px) var(--gx);
}
.pz-stats__grid {
  max-width:var(--max); margin:0 auto;
  display:grid; grid-template-columns:repeat(4,1fr);
  gap:1px; background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.05); border-radius:var(--rxl); overflow:hidden;
}
.pz-stat {
  background:#060810; padding:clamp(40px,5vw,64px) clamp(24px,3vw,48px);
  position:relative; overflow:hidden;
  transition:background var(--t3) var(--e1);
}
.pz-stat:hover { background:rgba(255,255,255,.018); }
.pz-stat::before {
  content:''; position:absolute; top:0; left:0; right:0; height:2px;
  background:linear-gradient(to right, var(--gold), var(--accent));
  transform:scaleX(0); transform-origin:left;
  transition:transform var(--t5) var(--e1);
}
.pz-stat:hover::before { transform:scaleX(1); }
.pz-stat__n {
  font-family:var(--serif); font-size:clamp(56px,7.5vw,100px);
  font-weight:200; font-variation-settings:'opsz' 144;
  color:var(--gold); letter-spacing:-.04em; line-height:1; display:block;
  transition:transform var(--t3) var(--e1);
}
.pz-stat:hover .pz-stat__n { transform:translateY(-3px); }
.pz-stat__l {
  font-size:10px; font-weight:700; letter-spacing:.22em; text-transform:uppercase;
  color:rgba(255,255,255,.24); margin-top:10px; display:block;
  transition:color var(--t2) var(--e1);
}
.pz-stat:hover .pz-stat__l { color:rgba(255,255,255,.46); }
.pz-stat__note { font-size:13px; line-height:1.65; color:rgba(255,255,255,.24); margin-top:10px; }

/* ================================================================
   EDITORIAL FEATURE
   ================================================================ */
.pz-ed { width:100vw; margin-left:calc(50% - 50vw); background:var(--dark); }
.pz-ed__inner {
  max-width:var(--max); margin:0 auto;
  display:grid; grid-template-columns:1fr 1fr;
  min-height:clamp(480px,62vh,720px); text-decoration:none; overflow:hidden;
}
.pz-ed__img { position:relative; overflow:hidden; }
.pz-ed__img img {
  width:100%; height:100%; object-fit:cover;
  transition:transform var(--t5) var(--e1);
}
.pz-ed__inner:hover .pz-ed__img img { transform:scale(1.06); }
.pz-ed__badge {
  position:absolute; top:28px; left:28px; z-index:2;
  font-size:9px; font-weight:700; letter-spacing:.18em; text-transform:uppercase;
  color:var(--dark); background:var(--gold); padding:7px 15px; border-radius:100px;
}
.pz-ed__copy {
  display:flex; flex-direction:column; justify-content:center;
  padding:clamp(48px,6vw,88px) clamp(48px,5.5vw,88px); position:relative;
}
.pz-ed__copy::before {
  content:''; position:absolute; left:0; top:15%; bottom:15%; width:2px;
  background:linear-gradient(to bottom, transparent, rgba(196,160,67,.3), transparent);
}
.pz-ed__eye {
  font-size:10px; font-weight:700; letter-spacing:.2em; text-transform:uppercase;
  color:var(--gold); opacity:.6; margin-bottom:20px;
}
.pz-ed__title {
  font-family:var(--serif); font-size:clamp(26px,3vw,44px);
  font-weight:200; font-variation-settings:'opsz' 72;
  line-height:1.1; letter-spacing:-.025em; color:#fff;
  transition:color var(--t2) var(--e1);
}
.pz-ed__title em { font-style:italic; }
.pz-ed__inner:hover .pz-ed__title { color:var(--gold); }
.pz-ed__excerpt { font-size:15px; line-height:1.78; color:rgba(255,255,255,.38); margin-top:16px; }
.pz-ed__meta {
  display:flex; align-items:center; gap:10px; margin-top:28px;
  font-size:12px; color:rgba(255,255,255,.26); letter-spacing:.04em;
}
.pz-ed__cta {
  display:inline-flex; align-items:center; gap:8px; margin-top:26px;
  font-size:13px; font-weight:500; color:var(--gold);
  transition:gap var(--t3) var(--e1);
}
.pz-ed__inner:hover .pz-ed__cta { gap:15px; }

/* ================================================================
   JOURNAL GRID (post cards)
   ================================================================ */
.pz-grid {
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:clamp(16px,2.5vw,28px);
}
.pz-card {
  position:relative; border-radius:var(--rxl); overflow:hidden;
  background:#fff; will-change:transform;
  box-shadow:0 2px 10px rgba(0,0,0,.05),0 1px 3px rgba(0,0,0,.04);
  transition:transform var(--t3) var(--e1), box-shadow var(--t3) var(--e1);
}
.pz-card:hover {
  transform:translateY(-6px);
  box-shadow:0 28px 60px rgba(0,0,0,.12),0 8px 20px rgba(0,0,0,.06);
}
.pz-card::after {
  content:''; position:absolute; bottom:0; left:0; right:0; height:2px;
  background:linear-gradient(to right, var(--gold), var(--accent));
  transform:scaleX(0); transform-origin:left;
  transition:transform var(--t3) var(--e1);
  border-radius:0 0 var(--rxl) var(--rxl);
}
.pz-card:hover::after { transform:scaleX(1); }
.pz-card__link { display:flex; flex-direction:column; height:100%; text-decoration:none; color:inherit; }
.pz-card__fig { position:relative; overflow:hidden; aspect-ratio:16/10; }
.pz-card__fig img {
  width:100%; height:100%; object-fit:cover;
  transition:transform var(--t5) var(--e1);
}
.pz-card:hover .pz-card__fig img { transform:scale(1.06); }
.pz-card__num {
  position:absolute; bottom:12px; right:14px;
  font-family:var(--serif); font-size:11px; font-weight:300;
  font-variation-settings:'opsz' 9; color:rgba(255,255,255,.5);
}
.pz-card__body { display:flex; flex-direction:column; gap:10px; padding:22px 22px 26px; flex:1; }
.pz-card__meta { display:flex; align-items:center; gap:10px; font-size:11px; font-weight:500; color:var(--muted); letter-spacing:.04em; }
.pz-card__cat {
  font-size:9px; font-weight:700; letter-spacing:.16em; text-transform:uppercase;
  color:var(--accent); background:rgba(216,95,40,.07); padding:3px 10px; border-radius:100px;
}
.pz-card__title {
  font-family:var(--serif); font-size:clamp(17px,1.8vw,21px); font-weight:300;
  font-variation-settings:'opsz' 48; line-height:1.28; letter-spacing:-.018em; color:var(--ink);
  transition:color var(--t2) var(--e1);
}
.pz-card:hover .pz-card__title { color:var(--accent); }
.pz-card__exc { font-size:13px; line-height:1.72; color:var(--muted); }
.pz-card__read {
  display:inline-flex; align-items:center; gap:6px; margin-top:auto;
  font-size:12px; font-weight:500; color:var(--accent); letter-spacing:.04em;
  transition:gap var(--t3) var(--e1);
}
.pz-card:hover .pz-card__read { gap:10px; }

/* ================================================================
   PHOTO GALLERY (drag-scroll)
   ================================================================ */
.pz-gallery {
  width:100vw; margin-left:calc(50% - 50vw); overflow-x:auto;
  overscroll-behavior-x:contain; scrollbar-width:none;
  background:var(--warm); padding:clamp(48px,6vw,80px) 0;
  cursor:grab; user-select:none;
}
.pz-gallery::-webkit-scrollbar { display:none; }
.pz-gallery.grabbing { cursor:grabbing; }
.pz-gallery__rail { display:flex; gap:14px; padding:0 var(--gx); width:max-content; }
.pz-gallery__item { flex:0 0 auto; width:clamp(200px,22vw,286px); height:clamp(270px,30vw,400px); border-radius:var(--rl); overflow:hidden; position:relative; }
.pz-gallery__item img { width:100%; height:100%; object-fit:cover; pointer-events:none; transition:transform var(--t5) var(--e1); }
.pz-gallery__item:hover img { transform:scale(1.07); }
.pz-gallery__cap {
  position:absolute; bottom:0; left:0; right:0; padding:22px 14px 14px;
  background:linear-gradient(to top,rgba(0,0,0,.72) 0%,transparent 100%);
  font-size:10px; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  color:rgba(255,255,255,.78); opacity:0; transform:translateY(6px);
  transition:opacity var(--t3) var(--e1), transform var(--t3) var(--e1);
}
.pz-gallery__item:hover .pz-gallery__cap { opacity:1; transform:none; }
.pz-gallery__hint {
  display:flex; align-items:center; justify-content:center; gap:10px;
  font-size:10px; font-weight:600; letter-spacing:.16em; text-transform:uppercase;
  color:var(--muted); opacity:.4; margin-top:18px; padding:0 var(--gx);
}
.pz-gallery__hint::before, .pz-gallery__hint::after { content:''; height:1px; width:36px; background:currentColor; opacity:.5; }

/* ================================================================
   ABOUT
   ================================================================ */
.pz-about { display:grid; grid-template-columns:5fr 6fr; gap:clamp(48px,7vw,96px); align-items:center; }
.pz-about__fig {
  position:relative; border-radius:var(--rxl); overflow:hidden; aspect-ratio:4/5;
  box-shadow:0 32px 80px rgba(0,0,0,.12);
  transition:transform var(--t5) var(--e1), box-shadow var(--t5) var(--e1);
}
.pz-about__fig:hover { transform:translateY(-5px); box-shadow:0 48px 100px rgba(0,0,0,.16); }
.pz-about__fig img { width:100%; height:100%; object-fit:cover; transition:transform 1.1s var(--e1); }
.pz-about__fig:hover img { transform:scale(1.04); }
.pz-about__fig::after {
  content:''; position:absolute; inset:0; border-radius:inherit;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.06); pointer-events:none;
}
.pz-about__accent {
  position:absolute; bottom:-10px; left:24px; right:24px;
  height:4px; background:linear-gradient(to right, var(--accent), var(--gold));
  border-radius:2px; z-index:2; opacity:0; transform:scaleX(.6);
  transition:opacity var(--t3) var(--e1), transform var(--t3) var(--e1);
}
.pz-about__fig:hover .pz-about__accent { opacity:1; transform:scaleX(1); }
.pz-about__copy { display:flex; flex-direction:column; gap:20px; }
.pz-about__eye {
  display:inline-flex; align-items:center; gap:10px;
  font-size:10px; font-weight:700; letter-spacing:.22em; text-transform:uppercase; color:var(--accent);
}
.pz-about__eye::before { content:''; width:24px; height:1.5px; background:var(--accent); flex-shrink:0; }
.pz-about__title {
  font-family:var(--serif); font-size:clamp(30px,4.5vw,58px);
  font-weight:200; font-variation-settings:'opsz' 72;
  line-height:1.06; letter-spacing:-.03em; color:var(--ink);
}
.pz-about__title em { font-style:italic; color:var(--accent); }
.pz-about__text { font-size:17px; line-height:1.8; color:var(--ink2); }
.pz-about__acts { display:flex; gap:12px; flex-wrap:wrap; margin-top:4px; }

/* ================================================================
   NEWSLETTER
   ================================================================ */
.pz-nl { display:flex; flex-direction:column; align-items:center; text-align:center; gap:18px; }
.pz-nl__title {
  font-family:var(--serif); font-size:clamp(36px,5.5vw,74px);
  font-weight:200; font-variation-settings:'opsz' 72;
  line-height:1.05; letter-spacing:-.035em; color:#fff;
}
.pz-nl__title em { font-style:italic; color:var(--gold); }
.pz-nl__sub { font-size:16px; line-height:1.72; color:rgba(255,255,255,.38); max-width:400px; }
.pz-nl__form {
  display:flex; gap:10px; flex-wrap:wrap; justify-content:center;
  width:100%; max-width:500px; margin-top:6px;
}
.pz-nl__input {
  flex:1; min-width:210px; padding:16px 20px; font-family:var(--sans); font-size:15px;
  background:rgba(255,255,255,.07); border:1.5px solid rgba(255,255,255,.12);
  border-radius:var(--r); color:#fff;
  transition:border-color var(--t2) var(--e1), background var(--t2) var(--e1), box-shadow var(--t2) var(--e1);
}
.pz-nl__input::placeholder { color:rgba(255,255,255,.22); }
.pz-nl__input:focus {
  outline:none; border-color:var(--accent); background:rgba(255,255,255,.1);
  box-shadow:0 0 0 3px rgba(216,95,40,.15);
}
.pz-nl__perks { display:flex; gap:24px; justify-content:center; flex-wrap:wrap; margin-top:4px; }
.pz-nl__perk { display:flex; align-items:center; gap:7px; font-size:12px; color:rgba(255,255,255,.26); }
.pz-nl__perk::before { content:'✓'; color:var(--gold); font-weight:700; font-size:11px; }

/* ================================================================
   DESTINATIONS HERO
   ================================================================ */
.pz-dest-hero {
  position:relative; width:100vw; margin-left:calc(50% - 50vw);
  height:clamp(500px,70vh,840px); display:flex; align-items:flex-end; overflow:hidden; background:var(--dark);
}
.pz-dest-hero__bw { position:absolute; inset:-22% 0; z-index:0; will-change:transform; }
.pz-dest-hero__bg {
  width:100%; height:100%;
  background:url('https://packzup.com/wp-content/uploads/2025/01/brazil-jericoacoara-lagoon-beach.jpg') center/cover no-repeat;
  animation:kenBurns 32s ease-in-out infinite alternate; will-change:transform;
}
.pz-dest-hero__veil {
  position:absolute; inset:0; z-index:1;
  background:linear-gradient(to bottom, rgba(12,14,19,.1) 0%, rgba(12,14,19,.62) 55%, rgba(12,14,19,.98) 100%);
}
.pz-dest-hero__copy {
  position:relative; z-index:2; width:100%; max-width:var(--max);
  margin:0 auto; padding:var(--gy) var(--gx);
  display:flex; flex-direction:column; gap:12px;
}
.pz-dest-hero__eye { font-size:10px; font-weight:700; letter-spacing:.22em; text-transform:uppercase; color:var(--gold); opacity:.7; }
.pz-dest-hero__h1 {
  font-family:var(--serif); font-size:clamp(60px,10vw,140px);
  font-weight:200; font-variation-settings:'opsz' 144,'wght' 200;
  line-height:.9; letter-spacing:-.045em; color:#fff;
}
.pz-dest-hero__sub { font-size:17px; color:rgba(255,255,255,.48); max-width:460px; line-height:1.72; margin-top:4px; }

/* ================================================================
   CONTINENT GRID
   ================================================================ */
.pz-conts { padding-top:clamp(48px,7vw,88px); }
.pz-cont-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(12px,2vw,20px); }
.pz-cont {
  position:relative; display:block; border-radius:var(--rxl); overflow:hidden;
  aspect-ratio:4/3; background:var(--dark); outline:none;
  transition:transform var(--t3) var(--e1), box-shadow var(--t3) var(--e1);
}
.pz-cont:hover { transform:translateY(-5px); box-shadow:0 28px 64px rgba(0,0,0,.2); }
.pz-cont__img { position:absolute; inset:0; }
.pz-cont__img img { width:100%; height:100%; object-fit:cover; opacity:.88; transition:transform var(--t5) var(--e1), opacity var(--t3) var(--e1); }
.pz-cont:hover .pz-cont__img img { transform:scale(1.07); opacity:1; }
.pz-cont::after { content:''; position:absolute; inset:0; z-index:1; background:linear-gradient(to top, rgba(0,0,0,.92) 0%, rgba(0,0,0,.3) 50%, rgba(0,0,0,.04) 100%); }
.pz-cont__body { position:absolute; bottom:0; left:0; right:0; z-index:2; padding:20px 24px 26px; display:flex; flex-direction:column; gap:3px; }
.pz-cont__region { font-size:9px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:rgba(255,255,255,.34); }
.pz-cont__name {
  font-family:var(--serif); font-size:clamp(22px,2.6vw,34px); font-weight:300;
  font-variation-settings:'opsz' 48; color:#fff; letter-spacing:-.025em; line-height:1.08;
  transition:color var(--t2) var(--e1);
}
.pz-cont:hover .pz-cont__name { color:var(--gold); }
.pz-cont__countries {
  display:flex; flex-wrap:wrap; gap:5px; margin-top:12px;
  opacity:0; transform:translateY(10px);
  transition:opacity var(--t3) var(--e1), transform var(--t3) var(--e1);
}
.pz-cont:hover .pz-cont__countries { opacity:1; transform:none; }
.pz-cont__countries li {
  font-size:10px; color:rgba(255,255,255,.72);
  background:rgba(255,255,255,.1); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
  padding:3px 10px; border-radius:20px; border:1px solid rgba(255,255,255,.15); white-space:nowrap;
}
.pz-cont__cta {
  display:inline-flex; align-items:center; gap:6px; font-size:13px; font-weight:500;
  color:rgba(255,255,255,0); margin-top:12px; letter-spacing:.04em; transform:translateY(8px);
  transition:color var(--t3) var(--e1), transform var(--t3) var(--e1), gap var(--t3) var(--e1);
}
.pz-cont:hover .pz-cont__cta { color:var(--gold); transform:none; gap:10px; }

/* ================================================================
   SCROLL REVEAL
   ================================================================ */
[data-r] {
  opacity:0; transform:translateY(24px);
  transition:opacity var(--t4) var(--e1), transform var(--t4) var(--e1);
}
[data-r][data-v] { opacity:1; transform:none; }
[data-d="1"] { transition-delay:100ms; }
[data-d="2"] { transition-delay:200ms; }
[data-d="3"] { transition-delay:300ms; }
[data-d="4"] { transition-delay:400ms; }
[data-d="5"] { transition-delay:500ms; }

/* ================================================================
   SINGLE POST
   ================================================================ */
body.single .entry-content, body.single-post .entry-content {
  max-width:var(--col) !important; margin:0 auto !important;
  padding:48px 24px 88px !important; font-size:18px; line-height:1.85; color:var(--ink2);
}
body.single .entry-content h2, body.single .entry-content h3 {
  font-family:var(--serif); font-weight:300; font-variation-settings:'opsz' 72;
  letter-spacing:-.025em; color:var(--ink); margin:2.2em 0 .5em;
}
body.single .entry-content h2 { font-size:clamp(24px,3vw,36px); }
body.single .entry-content h3 { font-size:clamp(20px,2.2vw,28px); }
body.single .entry-content p  { margin-bottom:1.5em; }
body.single .entry-content blockquote {
  border-left:3px solid var(--accent); padding:12px 0 12px 28px; margin:2.2em 0;
  font-family:var(--serif); font-size:1.25em; font-style:italic; color:var(--ink); line-height:1.55;
}
body.single .entry-content img { border-radius:var(--r); margin:2em 0; width:100%; }
body.single .entry-content a { color:var(--accent); text-decoration:underline; text-underline-offset:3px; text-decoration-thickness:1px; }

/* ================================================================
   RESPONSIVE
   ================================================================ */
@media (max-width:1100px) {
  .pz-ed__inner { grid-template-columns:1fr; }
  .pz-ed__img { height:400px; }
  .pz-ed__copy { padding:clamp(36px,5vw,64px); }
}
@media (max-width:1024px) {
  .pz-cont-grid { grid-template-columns:repeat(2,1fr); }
  .pz-about { grid-template-columns:1fr; }
  .pz-about__fig { aspect-ratio:16/9; }
}
@media (max-width:960px) {
  .pz-grid { grid-template-columns:repeat(2,1fr); }
  .pz-moods { grid-template-columns:1fr; }
  .pz-mood { min-height:380px; padding:clamp(48px,6vw,72px) clamp(28px,5vw,52px); }
  .pz-moods:hover .pz-mood:not(:hover) { filter:none; }
  .pz-stats__grid { grid-template-columns:repeat(2,1fr); border-radius:var(--rl); }
}
@media (max-width:768px) {
  .pz-hero__scroll { display:none; }
  .pz-sh { flex-direction:column; align-items:flex-start; gap:8px; }
  .pz-nl__form { flex-direction:column; align-items:stretch; }
  .pz-nl__input { min-width:0; }
  .pz-cont-grid { grid-template-columns:1fr; }
  .pz-cont__countries { opacity:1; transform:none; }
  .pz-cont__cta { color:rgba(255,255,255,.55); transform:none; }
  .pz-about__acts { flex-direction:column; align-items:flex-start; }
}
@media (max-width:560px) {
  .pz-grid { grid-template-columns:1fr; }
  .pz-stats__grid { grid-template-columns:1fr; }
  .pz-hero__h1 { letter-spacing:-.025em; }
  .pz-hero__ctas { flex-direction:column; align-items:flex-start; }
  .pz-hero__ctas .btn { width:100%; justify-content:center; }
}

/* ================================================================
   REDUCED MOTION
   ================================================================ */
@media (prefers-reduced-motion:reduce) {
  .pz-hero__bg, .pz-dest-hero__bg { animation:none !important; }
  .pz-ticker__rail { animation:none !important; }
  .pz-hero__badge::before { animation:none !important; }
  .pz-hero__badge, .pz-hero__h1, .pz-hero__sub,
  .pz-hero__ctas, .pz-hero__scroll { animation:none !important; opacity:1; transform:none; }
  [data-r] { opacity:1 !important; transform:none !important; transition:none !important; }
  * { transition-duration:.01ms !important; animation-duration:.01ms !important; }
}

/* ── Destinations Mega-Menu overlay ───────────────────────────────
   #pz-megamenu is appended to <body> by packzup-megamenu.js.
   Hidden by default; shown via .pz-megamenu--open on hover/click.
   ─────────────────────────────────────────────────────────────── */
#pz-megamenu {
  display: none;
  position: fixed;
  left: 0;
  right: 0;
  top: var(--pz-header-h, 70px);
  background: var(--cream);
  border-top: 1px solid var(--line);
  box-shadow: 0 16px 56px rgba(0,0,0,.14);
  z-index: 9000;
  padding: clamp(20px,3vw,40px) var(--gx);
}
#pz-megamenu.pz-megamenu--open {
  display: flex;
  align-items: flex-start;
}
.pz-mm-inner {
  display: grid;
  grid-template-columns: 1fr 1fr 260px;
  gap: 0 48px;
  max-width: var(--max);
  margin: 0 auto;
  width: 100%;
}
#pz-megamenu h4 {
  font: 600 10px/1 var(--sans);
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--muted);
  margin: 0 0 14px;
}
#pz-megamenu ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
#pz-megamenu ul li {
  padding: 5px 0;
}
#pz-megamenu ul a {
  font: 500 15px/1.4 var(--sans);
  color: var(--ink);
  text-decoration: none;
  transition: color var(--t2) var(--e1);
}
#pz-megamenu ul a:hover { color: var(--accent); }
.pz-mm-soon a   { color: var(--muted) !important; cursor: default; pointer-events: none; }
.pz-mm-meta     { font-size: 11px; color: var(--muted); margin-left: 6px; }
.pz-mm-preview  {
  display: block;
  text-decoration: none;
  border-radius: var(--r);
  overflow: hidden;
  background: var(--dark);
}
.pz-mm-preview img {
  width: 100%;
  height: 150px;
  object-fit: cover;
  display: block;
  transition: transform var(--t3) var(--e1);
}
.pz-mm-preview:hover img { transform: scale(1.04); }
.pz-mm-preview figcaption {
  padding: 14px 16px 16px;
}
.pz-mm-preview strong {
  display: block;
  font: 600 14px/1.3 var(--sans);
  color: white;
  margin-bottom: 5px;
}
.pz-mm-preview span {
  font: 400 12px/1.5 var(--sans);
  color: rgba(255,255,255,.6);
}
@media (max-width: 768px) {
  .pz-mm-inner { grid-template-columns: 1fr; gap: 24px; }
}


/* ================================================================
   DESTINATIONS PAGE — missing component styles
   ================================================================ */

/* ── Hero (HTML uses different suffixes than homepage hero) ─── */
.pz-dest-hero__bg-wrap {
  position: absolute;
  inset: -10% 0;
  z-index: 0;
  will-change: transform;
}
.pz-dest-hero__bg {
  width: 100%;
  height: 100%;
  background: url('https://packzup.com/wp-content/uploads/2025/01/brazil-jericoacoara-lagoon-beach.jpg')
              center / cover no-repeat;
  animation: kenBurns 32s ease-in-out infinite alternate;
}
.pz-dest-hero__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(
    to bottom,
    rgba(12,14,19,.05) 0%,
    rgba(12,14,19,.55) 50%,
    rgba(12,14,19,.97) 100%
  );
}
.pz-dest-hero__content {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: var(--max);
  margin: 0 auto;
  padding: var(--gy) var(--gx);
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.pz-dest-hero__eyebrow {
  font: 700 10px/1 var(--sans);
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--gold);
  opacity: .8;
  margin: 0;
}
.pz-dest-hero__title {
  font-family: var(--serif);
  font-size: clamp(60px, 10vw, 140px);
  font-weight: 200;
  font-variation-settings: 'opsz' 144, 'wght' 200;
  line-height: .9;
  letter-spacing: -.045em;
  color: #fff;
  margin: 0;
}
.pz-dest-hero__sub {
  font: 400 17px/1.72 var(--sans);
  color: rgba(255,255,255,.5);
  max-width: 460px;
  margin: 4px 0 0;
}

/* ── Section header (pz-sh) ─────────────────────────────────── */
.pz-sh        { margin-bottom: clamp(32px,5vw,56px); }
.pz-sh__kicker {
  font: 700 10px/1 var(--sans);
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--accent);
  margin: 0 0 10px;
}
.pz-sh__title {
  font-family: var(--serif);
  font-size: clamp(28px,4vw,48px);
  font-weight: 300;
  font-variation-settings: 'opsz' 72, 'wght' 300;
  line-height: 1.1;
  letter-spacing: -.025em;
  color: var(--ink);
  margin: 0;
}

/* ── Continent grid ─────────────────────────────────────────── */
.pz-continents { background: var(--cream); }

.pz-cont-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
@media (max-width: 900px)  { .pz-cont-grid { grid-template-columns: repeat(2,1fr); } }
@media (max-width: 540px)  { .pz-cont-grid { grid-template-columns: 1fr; } }

/* ── Continent card ─────────────────────────────────────────── */
.pz-cont-card {
  position: relative;
  display: flex;
  flex-direction: column;
  border-radius: var(--rl);
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  background: var(--dark);
  aspect-ratio: 3/4;
  transition:
    transform var(--t3) var(--e3),
    box-shadow var(--t3) var(--e1);
}
.pz-cont-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 24px 64px rgba(0,0,0,.28);
}

/* Image */
.pz-cont-card__img-wrap {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.pz-cont-card__img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform var(--t4) var(--e1);
}
.pz-cont-card:hover .pz-cont-card__img-wrap img {
  transform: scale(1.06);
}

/* Gradient overlay */
.pz-cont-card::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(
    to bottom,
    rgba(0,0,0,.06) 0%,
    rgba(0,0,0,.12) 35%,
    rgba(0,0,0,.72) 70%,
    rgba(0,0,0,.92) 100%
  );
  transition: background var(--t3) var(--e1);
}
.pz-cont-card:hover::after {
  background: linear-gradient(
    to bottom,
    rgba(0,0,0,.1) 0%,
    rgba(0,0,0,.18) 35%,
    rgba(0,0,0,.78) 68%,
    rgba(0,0,0,.95) 100%
  );
}

/* Body — pinned to bottom over the gradient */
.pz-cont-card__body {
  position: relative;
  z-index: 2;
  margin-top: auto;
  padding: 24px 24px 28px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.pz-cont-card__region {
  font: 700 9px/1 var(--sans);
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(255,255,255,.45);
}
.pz-cont-card__name {
  font-family: var(--serif);
  font-size: clamp(26px, 3.5vw, 38px);
  font-weight: 300;
  font-variation-settings: 'opsz' 72, 'wght' 300;
  line-height: 1;
  letter-spacing: -.02em;
  color: #fff;
}
.pz-cont-card__countries {
  list-style: none;
  margin: 4px 0 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 4px 10px;
}
.pz-cont-card__countries li {
  font: 400 12px/1.4 var(--sans);
  color: rgba(255,255,255,.55);
}
.pz-cont-card__countries li:not(:last-child)::after {
  content: '·';
  margin-left: 10px;
  color: rgba(255,255,255,.25);
}
.pz-cont-card__cta {
  display: inline-block;
  margin-top: 12px;
  font: 600 13px/1 var(--sans);
  color: rgba(255,255,255,.85);
  letter-spacing: .01em;
  transition: color var(--t2) var(--e1), gap var(--t2);
}
.pz-cont-card:hover .pz-cont-card__cta {
  color: #fff;
}

/* ── Newsletter on destinations page ───────────────────────── */
.pz-nl__title {
  font-family: var(--serif);
  font-size: clamp(28px, 4vw, 52px);
  font-weight: 300;
  font-variation-settings: 'opsz' 72, 'wght' 300;
  letter-spacing: -.025em;
  line-height: 1.15;
  color: #fff;
  margin: 0 0 14px;
}
.pz-nl__title em { font-style: italic; color: var(--gold); }
.pz-nl__sub {
  font: 400 16px/1.65 var(--sans);
  color: rgba(255,255,255,.5);
  margin: 0 0 28px;
}
.pz-nl__form {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}
.pz-nl__form input[type="email"] {
  flex: 1;
  min-width: 220px;
  padding: 14px 18px;
  border: 1.5px solid rgba(255,255,255,.18);
  border-radius: var(--r);
  background: rgba(255,255,255,.07);
  color: #fff;
  font: 400 15px/1 var(--sans);
  outline: none;
  transition: border-color var(--t2);
}
.pz-nl__form input[type="email"]::placeholder { color: rgba(255,255,255,.3); }
.pz-nl__form input[type="email"]:focus { border-color: rgba(255,255,255,.5); }
.pz-btn { cursor: pointer; border: none; border-radius: var(--r); font: 600 14px/1 var(--sans); transition: all var(--t2) var(--e1); }
.pz-btn--primary {
  padding: 14px 28px;
  background: var(--accent);
  color: #fff;
}
.pz-btn--primary:hover { background: #c25520; transform: translateY(-2px); box-shadow: 0 8px 24px rgba(216,95,40,.4); }

/* ── Newsletter form states ─────────────────────────────── */
.pz-nl__success {
  font: 500 17px/1.5 var(--sans);
  color: var(--gold);
  text-align: center;
  padding: 8px 0;
  letter-spacing: .01em;
}
.pz-nl__err {
  font: 400 13px/1.4 var(--sans);
  color: #ff7a7a;
  margin-top: 8px;
  text-align: center;
  width: 100%;
}

/* ── In-post form: light background overrides ───────────── */
.entry-content .pz-nl__form {
  align-items: center;
  margin-top: 12px;
}
.entry-content .pz-nl__form input[type="email"] {
  border: 1.5px solid rgba(0,0,0,.22);
  background: #fff;
  color: var(--ink);
  box-shadow: 0 1px 4px rgba(0,0,0,.06);
}
.entry-content .pz-nl__form input[type="email"]::placeholder {
  color: rgba(0,0,0,.35);
}
.entry-content .pz-nl__form input[type="email"]:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(216,95,40,.12);
}
.entry-content .pz-nl__success {
  color: var(--accent);
}
.entry-content .pz-nl__err {
  color: #c00;
}

/* ─── Post hero image ────────────────────────────────────── */
.pz-post-hero {
  margin: 0 0 40px;
  border-radius: 10px;
  overflow: hidden;
  line-height: 0;
}
.pz-post-hero img {
  width: 100%;
  height: 420px;
  object-fit: cover;
  display: block;
  border-radius: 10px;
}
@media (max-width: 768px) { .pz-post-hero img { height: 260px; } }
@media (max-width: 480px) {
  .pz-post-hero { border-radius: 0; margin-left: -20px; margin-right: -20px; }
  .pz-post-hero img { height: 200px; border-radius: 0; }
}

/* ─── Related Guides ─────────────────────────────────────── */
.pz-related {
  margin: 52px 0 40px;
  padding: 28px 28px 24px;
  background: var(--sand);
  border-radius: 12px;
}
.pz-related__label {
  font: 700 10px/1 var(--sans);
  text-transform: uppercase;
  letter-spacing: .1em;
  color: var(--accent);
  margin: 0 0 6px;
}
.pz-related__heading {
  font: 700 20px/1.2 var(--serif);
  color: var(--ink);
  margin: 0 0 20px;
  letter-spacing: -.25px;
}
.pz-related-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 12px;
}
.pz-related-card {
  display: block;
  padding: 16px 16px 14px;
  border: 1.5px solid rgba(0,0,0,.07);
  border-left: 3px solid var(--accent);
  border-radius: 8px;
  text-decoration: none;
  color: inherit;
  background: #fff;
  transition: box-shadow .18s, transform .18s;
}
.pz-related-card:hover {
  box-shadow: 0 5px 20px rgba(0,0,0,.09);
  transform: translateY(-2px);
}
.pz-related-card__tag {
  font: 600 10px/1 var(--sans);
  text-transform: uppercase;
  letter-spacing: .07em;
  color: var(--mid);
  display: block;
  margin-bottom: 7px;
}
.pz-related-card__title {
  font: 600 14px/1.35 var(--serif);
  color: var(--ink);
  margin: 0 0 8px;
  display: block;
}
.pz-related-card__desc {
  font: 400 13px/1.5 var(--sans);
  color: var(--mid);
  margin: 0 0 11px;
  display: block;
}
.pz-related-card__cta {
  font: 600 12px/1 var(--sans);
  color: var(--accent);
  display: inline-block;
}
@media (max-width: 600px) {
  .pz-related { padding: 20px 16px; }
  .pz-related-grid { grid-template-columns: 1fr; }
}
/* ─── GetYourGuide affiliate CTA ─────────────────────────── */
.pz-gyg { margin: 48px 0 36px; padding: 26px 28px 22px; background: #fff8f2; border: 1.5px solid rgba(255,120,0,.18); border-left: 4px solid #ff6600; border-radius: 10px; }
.pz-gyg__label { font: 700 10px/1 var(--sans); text-transform: uppercase; letter-spacing: .1em; color: #ff6600; margin: 0 0 7px; }
.pz-gyg__heading { font: 700 19px/1.25 var(--serif); color: var(--ink); margin: 0 0 9px; letter-spacing: -.2px; }
.pz-gyg__desc { font: 400 14px/1.6 var(--sans); color: var(--mid); margin: 0 0 18px; }
.pz-gyg__btn { display: inline-block; padding: 11px 24px; background: #ff6600; color: #fff !important; font: 600 14px/1 var(--sans); border-radius: 6px; text-decoration: none !important; transition: background .18s, transform .15s; }
.pz-gyg__btn:hover { background: #e05500; transform: translateY(-1px); }
@media (max-width: 600px) { .pz-gyg { padding: 18px 16px; } }
/* ─── Post updated badge ─────────────────────────────────── */
.pz-updated { display: inline-block; font: 600 11px/1 var(--sans); color: var(--mid); background: var(--sand); border-radius: 4px; padding: 3px 8px; margin-bottom: 18px; }
