/* ============================================================
   1) SINGLE-POST TYPOGRAPHY POLISH v2
   Scoped to body.pz-clean-post so it never touches pillar /
   hub / homepage layouts.
   ============================================================ */

/* Slightly warmer body color — pure #000 reads harsh on long reads */
body.pz-clean-post .entry-content,
body.pz-clean-post .entry-content p,
body.pz-clean-post .entry-content li {
  color: #1c1917;
  font-feature-settings: "kern" 1, "liga" 1, "calt" 1, "onum" 1;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Tighter measure on long-form — caps line length around 66ch which is
   what serious editorial design (Kinfolk, NatGeo) targets */
body.pz-clean-post .entry-content > p,
body.pz-clean-post .entry-content > ul,
body.pz-clean-post .entry-content > ol,
body.pz-clean-post .entry-content > h2,
body.pz-clean-post .entry-content > h3,
body.pz-clean-post .entry-content > blockquote,
body.pz-clean-post .entry-content > .wp-block-quote {
  max-width: 66ch;
  margin-left: auto;
  margin-right: auto;
}

/* But full-width media still breaks out */
body.pz-clean-post .entry-content > .wp-block-image,
body.pz-clean-post .entry-content > figure,
body.pz-clean-post .entry-content > .wp-block-gallery,
body.pz-clean-post .entry-content > .pz-pullquote,
body.pz-clean-post .entry-content > .pz-asterism {
  max-width: 820px;
  margin-left: auto;
  margin-right: auto;
}

/* H2/H3 rhythm — more breathing room, sharper hierarchy */
body.pz-clean-post .entry-content h2 {
  font-family: "Fraunces", Georgia, serif;
  font-weight: 600;
  font-size: clamp(1.6rem, 1.2rem + 1.4vw, 2.1rem);
  line-height: 1.18;
  letter-spacing: -0.012em;
  margin: 3rem auto 0.9rem;
  color: #0c0a09;
}

body.pz-clean-post .entry-content h3 {
  font-family: "Fraunces", Georgia, serif;
  font-weight: 600;
  font-size: clamp(1.18rem, 1rem + 0.6vw, 1.35rem);
  line-height: 1.25;
  margin: 2.2rem auto 0.7rem;
  color: #1c1917;
}

/* Paragraph rhythm */
body.pz-clean-post .entry-content p {
  font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: clamp(1.02rem, 0.95rem + 0.3vw, 1.12rem);
  line-height: 1.78;
  margin: 0 auto 1.15em;
  hyphens: auto;
  -webkit-hyphens: auto;
}

/* First paragraph after H2 sits closer */
body.pz-clean-post .entry-content h2 + p {
  margin-top: 0;
}

/* Drop-cap refinement — only on the very first paragraph */
body.pz-clean-post .entry-content > p:first-of-type::first-letter,
body.pz-clean-post .pz-clean-post__lead::first-letter {
  font-family: "Fraunces", Georgia, serif;
  font-weight: 600;
  font-style: normal;
  font-size: 4em;
  line-height: 0.86;
  float: left;
  margin: 0.04em 0.08em 0 0;
  color: #c2410c;
  padding-top: 0.04em;
}

/* Pull-quote breakout style — for any blockquote with class .pz-pullquote
   or .wp-block-pullquote */
body.pz-clean-post .entry-content blockquote,
body.pz-clean-post .entry-content .wp-block-quote {
  border: 0;
  padding: 1.6em 0 1.6em 0;
  margin: 2rem auto;
  font-family: "Fraunces", Georgia, serif;
  font-style: italic;
  font-weight: 400;
  font-size: clamp(1.25rem, 1.05rem + 0.9vw, 1.55rem);
  line-height: 1.4;
  color: #292524;
  text-align: center;
  position: relative;
}

body.pz-clean-post .entry-content blockquote::before,
body.pz-clean-post .entry-content .wp-block-quote::before {
  content: "· · ·";
  display: block;
  letter-spacing: 0.6em;
  color: #c2410c;
  font-style: normal;
  font-size: 0.7em;
  margin-bottom: 1.2em;
}

body.pz-clean-post .entry-content blockquote::after,
body.pz-clean-post .entry-content .wp-block-quote::after {
  content: "· · ·";
  display: block;
  letter-spacing: 0.6em;
  color: #c2410c;
  font-style: normal;
  font-size: 0.7em;
  margin-top: 1.2em;
}

body.pz-clean-post .entry-content blockquote p,
body.pz-clean-post .entry-content .wp-block-quote p {
  margin: 0;
  font-size: inherit;
  font-family: inherit;
  font-style: inherit;
  line-height: inherit;
}

body.pz-clean-post .entry-content blockquote cite,
body.pz-clean-post .entry-content .wp-block-quote cite {
  display: block;
  margin-top: 1em;
  font-family: "Inter", sans-serif;
  font-style: normal;
  font-size: 0.85rem;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: #78716c;
  font-weight: 500;
}

/* Figure caption polish */
body.pz-clean-post .entry-content figure figcaption,
body.pz-clean-post .entry-content .wp-block-image figcaption {
  font-family: "Inter", sans-serif;
  font-size: 0.85rem;
  line-height: 1.55;
  color: #78716c;
  text-align: center;
  margin-top: 0.7em;
  font-style: normal;
  letter-spacing: 0.005em;
}

/* Asterism divider — for content authors to inject ".pz-asterism" */
body.pz-clean-post .entry-content .pz-asterism,
body.pz-clean-post .entry-content hr.wp-block-separator {
  border: 0;
  text-align: center;
  margin: 2.6rem auto;
  color: #c2410c;
  letter-spacing: 0.6em;
  font-size: 0.85rem;
  background: none;
  height: auto;
}

body.pz-clean-post .entry-content hr.wp-block-separator::before {
  content: "· · ·";
}

/* Inline links — more refined underline */
body.pz-clean-post .entry-content p a,
body.pz-clean-post .entry-content li a {
  color: #9a3412;
  text-decoration-line: underline;
  text-decoration-thickness: 1px;
  text-decoration-color: rgba(154, 52, 18, 0.35);
  text-underline-offset: 3px;
  transition: text-decoration-color 0.2s;
}

body.pz-clean-post .entry-content p a:hover,
body.pz-clean-post .entry-content li a:hover {
  text-decoration-color: rgba(154, 52, 18, 0.9);
}

/* Widow control — keep last word from being orphaned */
body.pz-clean-post .entry-content h2,
body.pz-clean-post .entry-content h3,
body.pz-clean-post .entry-content blockquote p {
  text-wrap: balance;
}

/* List rhythm */
body.pz-clean-post .entry-content ul,
body.pz-clean-post .entry-content ol {
  padding-left: 1.4em;
  margin-bottom: 1.4em;
}

body.pz-clean-post .entry-content li {
  margin-bottom: 0.55em;
  line-height: 1.7;
}

body.pz-clean-post .entry-content ul > li::marker {
  color: #c2410c;
}


/* ============================================================
   2) MOBILE TOUCH-TARGET AUDIT
   44px+ min on all primary interactive elements.
   ============================================================ */

@media (max-width: 900px) {

  /* Card heart / shortlist toggles */
  .pz-shortlist-btn,
  .pz-heart-btn,
  button[data-shortlist],
  .pz-card .pz-heart {
    min-width: 44px !important;
    min-height: 44px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
  }

  /* /find-your-trip/ quiz chips */
  .pz-quiz__chip,
  .pz-quiz button[data-value],
  .pz-fyt__chip {
    min-height: 44px !important;
    padding: 10px 16px !important;
    touch-action: manipulation;
    -webkit-tap-highlight-color: rgba(194, 65, 12, 0.15);
  }

  /* /explore/ filter chips */
  .pz-explore__filter button,
  .pz-explore__chip,
  .pz-explore .pz-filter-btn {
    min-height: 44px !important;
    padding: 8px 14px !important;
    touch-action: manipulation;
  }

  /* /explore/ map controls — Leaflet zoom buttons */
  .leaflet-control-zoom a,
  .leaflet-bar a {
    width: 44px !important;
    height: 44px !important;
    line-height: 44px !important;
    font-size: 22px !important;
  }

  /* Grid/Map toggle */
  .pz-explore__view-toggle button,
  .pz-view-toggle button {
    min-height: 44px !important;
    padding: 10px 18px !important;
  }

  /* /compare/ dropdowns */
  .pz-compare select,
  .pz-compare__pick,
  .pz-compare button {
    min-height: 44px !important;
    font-size: 16px !important; /* prevents iOS zoom on focus */
    padding: 10px 12px !important;
  }

  /* Header nav links in mobile drawer */
  .ast-mobile-popup-drawer .menu-item > a,
  .pz-mobile-drawer a,
  .ast-mobile-menu-buttons {
    min-height: 48px !important;
    display: flex !important;
    align-items: center !important;
    padding: 10px 16px !important;
    touch-action: manipulation;
  }

  /* Mega-menu items on tablet */
  .pz-megamenu a,
  .pz-megamenu__item {
    min-height: 44px !important;
    display: flex !important;
    align-items: center !important;
  }

  /* Footer link rows */
  .pz-footer a,
  .pz-footer__col a {
    padding: 6px 0 !important;
    display: inline-block !important;
    min-height: 32px !important;
    line-height: 1.5 !important;
  }

  /* Newsletter ribbon CTA */
  .pz-footer__newsletter input[type="email"] {
    min-height: 48px !important;
    font-size: 16px !important;
    padding: 12px 14px !important;
  }

  .pz-footer__newsletter button,
  .pz-newsletter button {
    min-height: 48px !important;
    padding: 12px 20px !important;
    font-size: 16px !important;
  }

  /* Exit-intent newsletter modal */
  .pz-exit-modal button,
  .pz-exit-modal input {
    min-height: 48px !important;
    font-size: 16px !important;
  }

  /* All pagination */
  .pagination a,
  .nav-links a,
  .page-numbers {
    min-width: 44px !important;
    min-height: 44px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 8px 12px !important;
  }

  /* Tap highlight neutralization site-wide */
  a, button, [role="button"], input[type="submit"], input[type="button"] {
    -webkit-tap-highlight-color: rgba(194, 65, 12, 0.15);
    touch-action: manipulation;
  }
}

/* Even on desktop, eliminate the 300ms delay on touch devices */
@media (pointer: coarse) {
  a, button, [role="button"] {
    touch-action: manipulation;
  }
}