/* Shared content typography. The approved navigation and Previo hero keep their own styles. */
:root {
  --pz-body-font: Arial, Helvetica, sans-serif;
  --pz-text-body: 17px;
  --pz-text-lead: clamp(18px, calc(16px + .3vw), 20px);
  --pz-text-small: 14px;
  --pz-text-label: 12px;
  --pz-text-button: 14px;
  --pz-type-h1: clamp(40px, calc(24px + 3vw), 64px);
  --pz-type-h2: clamp(30px, calc(22px + 1.8vw), 46px);
  --pz-type-h3: clamp(24px, calc(20px + .7vw), 30px);
  --pz-type-h4: clamp(20px, calc(18px + .4vw), 24px);
  --pz-body-leading: 1.7;
  --pz-heading-leading: 1.18;
}

:where(.pz-content > :not(#hp-previo-hero), .pz-page-title, .pz-post-preview, .pz-footer, .pz-wrap:where(#main-content), .editor-styles-wrapper) {
  font-family: var(--pz-body-font);
  font-size: var(--pz-text-body);
  font-weight: 400;
  line-height: var(--pz-body-leading);
  letter-spacing: normal;
  overflow-wrap: break-word;
}

:is(.pz-page-title, .pz-content, .pz-post-preview, .pz-wrap:where(#main-content), .editor-styles-wrapper) :where(h1, h2, h3, h4, h5, h6):not(:where(#hp-previo-hero *)) {
  font-family: var(--pz-heading);
  font-weight: 400;
  line-height: var(--pz-heading-leading);
  letter-spacing: -.025em;
  text-transform: none;
  margin: 0 0 .6em;
  text-wrap: balance;
}
:is(.pz-page-title, .pz-content, .pz-wrap:where(#main-content), .editor-styles-wrapper) h1:not(:where(#hp-previo-hero *)) { font-size: var(--pz-type-h1); }
:is(.pz-content, .pz-post-preview, .pz-wrap:where(#main-content), .editor-styles-wrapper) h2:not(:where(#hp-previo-hero *)) { font-size: var(--pz-type-h2); }
:is(.pz-content, .editor-styles-wrapper) h3:not(:where(#hp-previo-hero *)) { font-size: var(--pz-type-h3); }
:is(.pz-content, .editor-styles-wrapper) h4:not(:where(#hp-previo-hero *)) { font-size: var(--pz-type-h4); }
:is(.pz-content, .editor-styles-wrapper) h5:not(:where(#hp-previo-hero *)) { font-size: var(--pz-text-lead); }
:is(.pz-content, .editor-styles-wrapper) h6:not(:where(#hp-previo-hero *)) { font-size: var(--pz-text-body); }

.pz-kicker, .pz-footer h2 {
  font-family: var(--pz-body-font);
  font-size: var(--pz-text-label);
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.pz-lead { font-size: var(--pz-text-lead); line-height: var(--pz-body-leading); }
.pz-small, .pz-form-note, .pz-video-caption, .pz-food-caption, .pz-form-field label,
.pz-footer-bottom, .pz-footer .pz-footer-credit { font-size: var(--pz-text-small); line-height: 1.6; }
.pz-form-field label, .pz-text-link, .pz-menu-jump { font-weight: 700; }
.pz-text-link, .pz-menu-jump, .pz-facts, .pz-pool-notice { font-size: var(--pz-text-body); }
.pz-content summary { font-family: var(--pz-body-font); font-size: var(--pz-text-lead); font-weight: 700; line-height: 1.5; }
.pz-form-field :is(input, select, textarea) { font-family: var(--pz-body-font); font-size: var(--pz-text-body); line-height: 1.5; }

/* Compact headings within benefits, menu panels and forms share the same levels. */
.pz-content .pz-benefits h3 { font-size: var(--pz-type-h4); }
.pz-content :is(.pz-inquiry, .pz-menu-meta) h2, .pz-post-preview h2 { font-size: var(--pz-type-h3); }
.pz-meal-content .pz-menu-day :is(h2, h3, h4) { font-size: var(--pz-type-h3); }
.pz-order-card .pz-order-price { font-family: var(--pz-heading); font-size: var(--pz-type-h2); line-height: var(--pz-heading-leading); }
.pz-today-badge { font: 700 var(--pz-text-label)/1.5 var(--pz-body-font); letter-spacing: .04em; }

.pz-button, .wp-block-button__link, .pz-print-button {
  font-family: var(--pz-body-font);
  font-size: var(--pz-text-button);
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: .02em;
  text-transform: none;
  text-align: center;
}
.pz-print-button { flex-shrink: 0; }
.pz-review-card blockquote, .pz-review-card blockquote p { font: inherit; letter-spacing: normal; }
.pz-review-card cite { font: 700 var(--pz-text-small)/1.6 var(--pz-body-font); }
.pz-home-reviews .pz-review-card cite a { font-size: var(--pz-text-small); font-weight: 400; }

@media (max-width: 680px) { :root { --pz-text-body: 16px; } }
@media print { :root { --pz-text-body: 12pt; --pz-text-small: 10pt; } }
