/**
 * Ace Flyer Holidays — Typography system v1.1
 * Primary headline: Plus Jakarta Sans · UI: DM Sans · editorial emphasis: Instrument Serif
 * All rules are scoped to the public-facing theme; the WordPress admin UI is unchanged.
 */
:root {
  --font-heading: 'Plus Jakarta Sans', 'Helvetica Neue', Arial, sans-serif;
  --font-body: 'DM Sans', 'Helvetica Neue', Arial, sans-serif;
  --font-editorial: 'Instrument Serif', Georgia, 'Times New Roman', serif;
  /* Keep compatibility with every template's original CSS variables. */
  --font: var(--font-body);
  --serif: var(--font-editorial);
}

body {
  font-family: var(--font-body);
  font-size: 15px;
  font-weight: 400;
  line-height: 1.65;
  font-synthesis: none;
  text-rendering: optimizeLegibility;
}

/* Display and section hierarchy: a slightly weightier, composed, modern voice. */
h1, h2, h3, h4, h5, h6,
.ace-hero h1,
.ace-cta-stripe h2,
.ace-booking-head h2,
.ace-steps-grid h3,
.ace-service-card h3,
.ace-post-body h3,
.ace-prose h2, .ace-prose h3 {
  font-family: var(--font-heading);
  font-weight: 650;
  text-wrap: balance;
}
h1, h2 { letter-spacing: -.048em; }
h3, h4 { letter-spacing: -.025em; }
.ace-hero h1 {
  letter-spacing: -.064em;
  font-weight: 650;
  line-height: 1.09;
}
.ace-inner-hero h1,
.ace-section-heading h2,
.ace-world-heading h2,
.ace-personal-copy h2,
.ace-main-cta h2,
.ace-single-head h1 {
  letter-spacing: -.055em;
  line-height: 1.15;
  font-weight: 650;
}

/* Signature editorial moments—only where content is intended as storytelling. */
h1 em, h2 em, h3 em,
.ace-swoosh,
.ace-dest-bottom h3,
.ace-sidebar h3,
.ace-accent-box h2 {
  font-family: var(--font-editorial);
  font-weight: 400;
  letter-spacing: -.025em;
}
h1 em, h2 em, h3 em,
.ace-swoosh { font-style: italic; }
.ace-hero h1 em,
.ace-hero .ace-swoosh { letter-spacing: -.045em; font-size: 1.085em; }
.ace-dest-bottom h3 { font-style: normal; font-size: clamp(28px, 2.2vw, 35px); }
.ace-sidebar h3, .ace-accent-box h2 { font-style: normal; }

/* Professional and instantly scannable booking, navigation and service interfaces. */
.ace-menu a,
.ace-btn,
.ace-header-contact,
.ace-tab,
.ace-footer-top>div:not(:first-child)>a,
.ace-service-footer {
  font-family: var(--font-body);
  font-weight: 700;
  letter-spacing: -.005em;
}
.ace-menu a { font-size: 13px; }
.ace-btn { font-size: 13px; }
.ace-eyebrow, .ace-kicker, .ace-label,
.ace-contact-label, .ace-footer-top h3 {
  font-family: var(--font-body);
  font-weight: 700;
  letter-spacing: .15em;
}
.ace-eyebrow, .ace-kicker, .ace-label { font-size: 10.5px; }
.ace-booking-form .ace-field label,
.ace-enquiry-large label {
  font-size: 11px;
  letter-spacing: .065em;
  font-weight: 700;
}
.ace-booking-form input,
.ace-booking-form select,
.ace-enquiry-large input,
.ace-enquiry-large select,
.ace-enquiry-large textarea {
  font-family: var(--font-body);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.45;
}
.ace-booking-footnote, .ace-booking-note, .ace-form-privacy { font-size: 12px; }
.ace-tab { font-size: 12px; }

/* Support copy should be readable, not artificially tiny to create a luxury effect. */
.ace-hero-text > p,
.ace-inner-hero p,
.ace-prose,
.ace-personal-copy p {
  font-size: clamp(14px, 1.12vw, 16px);
  line-height: 1.83;
}
.ace-service-card p,
.ace-post-body p,
.ace-footer-brand p,
.ace-footer-contact p { font-size: 13px; line-height: 1.85; }
.ace-post-body h3 { line-height: 1.31; }
.ace-footer-top>div:not(:first-child)>a { font-size: 13px; }

/* Larger text scales down smoothly without breaking the two-line hero. */
@media (max-width: 980px) {
  .ace-menu a { font-size: 12px; }
  .ace-hero h1 { letter-spacing: -.06em; }
}
@media (max-width: 700px) {
  body { font-size: 14px; line-height: 1.6; }
  .ace-hero h1 {
    font-size: clamp(46px, 9.45vw, 64px);
    line-height: 1.08;
    letter-spacing: -.064em;
  }
  .ace-section-heading h2,
  .ace-world-heading h2,
  .ace-personal-copy h2,
  .ace-inner-hero h1,
  .ace-main-cta h2 { line-height: 1.14; }
  .ace-service-card h3 { font-size: 23px; }
  .ace-tab { font-size: 11px; }
  .ace-booking-form input,
  .ace-booking-form select,
  .ace-enquiry-large input,
  .ace-enquiry-large select,
  .ace-enquiry-large textarea { font-size: 16px; } /* Avoid iOS form-field zoom. */
  .ace-booking-note, .ace-form-privacy { font-size: 12px; }
}
