/* Site typography: fonts, final size tokens and reusable presentation roles.
   Fonts are self-hosted; licenses and source URLs live in assets/fonts/. */

/* font-faces:start */
@font-face {
  font-family: "Figtree";
  font-style: italic;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/figtree-latin-ext-italic.08e96e7378f1.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: "Figtree";
  font-style: italic;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/figtree-latin-italic.cb2204bf96ba.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: "Figtree";
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url("/assets/fonts/figtree-latin-ext-normal.f153aa07c1b1.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: "Figtree";
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url("/assets/fonts/figtree-latin-normal.8330490a01c6.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: "Public Sans";
  font-style: italic;
  font-weight: 400 700;
  font-display: swap;
  src: url("/assets/fonts/public-sans-vietnamese-italic.756e8321be6c.woff2") format("woff2");
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}

@font-face {
  font-family: "Public Sans";
  font-style: italic;
  font-weight: 400 700;
  font-display: swap;
  src: url("/assets/fonts/public-sans-latin-ext-italic.bbf89d33a9f5.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: "Public Sans";
  font-style: italic;
  font-weight: 400 700;
  font-display: swap;
  src: url("/assets/fonts/public-sans-latin-italic.03c56a19a5ee.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: "Public Sans";
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
  src: url("/assets/fonts/public-sans-vietnamese-normal.e43b193880fd.woff2") format("woff2");
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}

@font-face {
  font-family: "Public Sans";
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
  src: url("/assets/fonts/public-sans-latin-ext-normal.1c8a26c0ed43.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: "Public Sans";
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
  src: url("/assets/fonts/public-sans-latin-normal.c1b6da516e00.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* font-faces:end */

:root {
  --font-display: "Figtree", Arial, Helvetica, sans-serif;
  --font-text: "Public Sans", Arial, Helvetica, sans-serif;
  --font-data: var(--font-text);
  --font-mono: ui-monospace, "SF Mono", Menlo, monospace;
  --font-display-weight: 600;
  --tracking-display: -0.025em;
  --tracking-display-compact: -0.035em;
  --leading-display: 1.083333;

  --text-display: 2.82rem;
  --text-section: clamp(2.115rem, 3.525vw, 2.82rem);
  --text-callout: clamp(1.7625rem, 2.82vw, 2.64375rem);
  --text-step: clamp(1.41rem, 2.115vw, 1.7625rem);
  --text-card-featured: clamp(1.41rem, 2.256vw, 2.115rem);
  --text-card-title: clamp(1.30425rem, 1.9035vw, 2.00925rem);
  --text-article-title: clamp(2.4675rem, 4.5825vw, 4.23rem);
  --text-article-section: clamp(1.9035rem, 3.525vw, 3.243rem);
  --text-article-quote: clamp(1.41rem, 2.679vw, 2.29125rem);
  --text-article-next: clamp(1.692rem, 3.525vw, 3.525rem);
  --text-contact-title: clamp(1.833rem, 2.82vw, 2.82rem);
  --text-legal-title: clamp(2.679rem, 4.7235vw, 4.653rem);
  --text-legal-section: clamp(1.833rem, 3.243vw, 2.961rem);
  --text-booking-title: 1.41rem;
  --text-navigation-title: clamp(1.833rem, 8.46vw, 3.1725rem);
}

h1, h2,
.hero-title, .section-title, .product-intro-title, .intelligence-title, .markets-title,
.notes-title, .note-featured-title, .note-row-title, .article-title, .article-next-title,
.contact-title, .legal-title,
.type-display,
.type-display-italic {
  font-family: var(--font-display);
  font-weight: var(--font-display-weight);
}
h1, h2, h3 { font-style: normal; text-wrap: balance; }
h3 { font-family: var(--font-text); font-weight: 600; }
.type-display-italic { font-style: italic; }

.hero-title {
  font-family: var(--font-display);
  font-size: var(--text-display);
  font-weight: var(--font-display-weight);
  line-height: var(--leading-display);
  letter-spacing: var(--tracking-display);
}
/* Keep the rotating hero on one line above the mobile breakpoint. */
.home-page .hero .hero-title {
  font-size: min(var(--text-display), 7.4cqw);
  white-space: nowrap;
  text-wrap: nowrap;
}
.home-page.landscape-desktop .hero .hero-title {
  font-size: min(var(--text-display), 10.5cqw);
}

.section-title {
  font-size: var(--text-section);
  line-height: 1.02;
  letter-spacing: var(--tracking-display);
}
.cta-title, .tension-line, .quote {
  font-family: var(--font-display);
  font-size: var(--text-callout);
  font-weight: var(--font-display-weight);
  line-height: 1.06;
  letter-spacing: var(--tracking-display);
  text-wrap: balance;
}
.home-page :is(.section-title, .product-intro-title, .intelligence-title, .markets-title, .cta-title) {
  font-size: var(--text-display);
  line-height: var(--leading-display);
}
.product-intro-title, .intelligence-title, .markets-title {
  letter-spacing: var(--tracking-display-compact);
}
.step-title, .compliance-copy h3 {
  font-family: var(--font-text);
  font-size: var(--text-step);
  font-weight: 600;
  line-height: 1.08;
  letter-spacing: var(--tracking-display);
}
.card-title, .tile-name, .badge-mark {
  font-family: var(--font-text);
  font-weight: 600;
  letter-spacing: var(--tracking-display);
}

.notes-title {
  font-size: var(--text-display);
  line-height: var(--leading-display);
  letter-spacing: var(--tracking-display);
}
.note-featured-title {
  font-size: var(--text-card-featured);
  line-height: 1.08;
  letter-spacing: var(--tracking-display);
}
.note-row-title {
  font-size: var(--text-card-title);
  line-height: 1.04;
  letter-spacing: var(--tracking-display);
}
.article-title {
  font-size: var(--text-article-title);
  line-height: 0.96;
  letter-spacing: var(--tracking-display);
}
.article-body h2 {
  font-size: var(--text-article-section);
  line-height: 1;
  letter-spacing: var(--tracking-display);
}
.article-body blockquote {
  font-family: var(--font-display);
  font-size: var(--text-article-quote);
  line-height: 1.12;
  letter-spacing: var(--tracking-display);
}
.article-next-title { font-size: var(--text-article-next); line-height: 1; }

.contact-title, .contact-form-head h1, .contact-success h2 {
  font-size: var(--text-contact-title);
  line-height: 1;
  letter-spacing: var(--tracking-display);
}
.legal-title {
  font-size: var(--text-legal-title);
  line-height: 0.96;
  letter-spacing: var(--tracking-display);
}
.legal-content h2 {
  font-size: var(--text-legal-section);
  line-height: 1;
  letter-spacing: var(--tracking-display);
}
.personal-booking h2 { font-size: var(--text-booking-title); line-height: 1.1; }

@media (max-width: 760px) {
  :root {
    --text-display: 1.93875rem;
    --text-section: clamp(1.86825rem, 8.46vw, 2.4675rem);
    --text-legal-title: clamp(2.4675rem, 11.985vw, 3.666rem);
    --text-legal-section: clamp(1.72725rem, 8.46vw, 2.4675rem);
  }
  .hero-title, .notes-title,
  .home-page :is(.section-title, .product-intro-title, .intelligence-title, .markets-title, .cta-title) { line-height: 1.1; }
  .home-page .hero .hero-title {
    font-size: var(--text-display);
    white-space: normal;
    text-wrap: wrap;
  }
  .mobile-menu-nav a strong {
    font-family: var(--font-display);
    font-size: var(--text-navigation-title);
    font-weight: var(--font-display-weight);
    line-height: 0.95;
    letter-spacing: var(--tracking-display);
  }
}
@media (max-width: 700px) {
  :root {
    --text-card-featured: 1.58625rem;
    --text-article-title: clamp(2.29125rem, 9.87vw, 3.525rem);
  }
}
@media (max-width: 400px) {
  :root { --text-card-featured: clamp(1.23375rem, 5.64vw, 1.41rem); }
}
