/* =====================================================================
   FONT WEIGHTS – one light, even look for the whole site (loaded last).
   Body text 300, headings / menu / labels 400, buttons and bold words 500.
   :not(#w) lifts the specificity above every per-page rule. Icon fonts keep their own weight.
   ===================================================================== */
html body *:not(#w):not(i):not(svg):not(svg *):not(.fa):not(.fas):not(.fa-solid):not(.far):not(.fa-regular):not(.fab):not(.fa-brands) {
  font-weight: 300 !important;
}
/* headings, menu, tabs, labels, small captions */
html body :is(h1,h2,h3,h4,h5,h6,th,summary,label,[role="tab"],
    header a, nav a, footer a, footer h4,
    .pk-tabbar a, .tg-tab, .hp-link, .hp-plan-go,
    .tg-eyebrow, .tg-kicker, .pk-script, .hp-eyebrow, .hs-eyebrow, .sf-eyebrow, .ct-eyebrow, .pp-label, .gp-kick, .eq-script, .bt-eyebrow,
    .tg-tag, .tp-review-top b, .hp-rev-top b):not(#w):not(i):not(svg):not(svg *):not(.fa):not(.fas):not(.fa-solid):not(.far):not(.fa-regular):not(.fab):not(.fa-brands) {
  font-weight: 400 !important;
}
/* buttons and emphasised words */
html body :is(b, strong, button, a[class*="btn"], a[class*="button"], [class*="btn"], [class*="-cta"], .tg-btn, .header-book-button):not(#w):not(i):not(svg):not(svg *):not(.fa):not(.fas):not(.fa-solid):not(.far):not(.fa-regular):not(.fab):not(.fa-brands) {
  font-weight: 500 !important;
}
html body :is(h1,h2,h3,h4,h5,h6):not(#w) :is(em,strong,b,span,a) { font-weight: inherit !important; }

/* =====================================================================
   MOBILE – long paragraphs are justified; headings, labels, buttons, menus keep their own alignment.
   ===================================================================== */
@media (max-width: 768px) {
  html body :is(main, .pk-page, article, .hp, .bd-page, [role="main"]) p:not(#w):not([class*="eyebrow"]):not([class*="kick"]):not([class*="label"]):not([class*="script"]):not([class*="tag"]):not([class*="dist"]):not([class*="price"]):not([class*="fact"]):not([class*="note"]) {
    text-align: justify !important;
    text-justify: inter-word;
    -webkit-hyphens: auto;
    hyphens: auto;
  }
  html body :is(main, .pk-page, article, .hp) :is(li, td, dd):not(#w) > p { text-align: justify !important; }
  html body :is(h1,h2,h3,h4,h5,h6):not(#w) { -webkit-hyphens: manual; hyphens: manual; }
}

/* menu items that are buttons (dropdown triggers) look exactly like the plain menu links */
html body :is(header nav, nav) button:not(#w):not([class*="book"]):not([class*="btn"]) { font-weight: 400 !important; }
html body :is(.nav-dd__toggle, header nav button):not(#w):not(i):not(svg):not(.fa):not(.fas):not(.fa-solid):not(.far):not(.fa-regular):not(.fab):not(.fa-brands):not([class*="book"]):not([class*="btn"]) { font-weight: 400 !important; }

/* tab panels fade in softly whenever a tab changes (works for every tab block on the site) */
[role="tabpanel"]:not([hidden]):not(.tg-panel) { animation: tabIn .5s ease both; }
@keyframes tabIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

/* long paragraphs: justified (class added by justify.js) */
html body p.is-long:not(#w) { text-align: justify !important; text-justify: inter-word; -webkit-hyphens: auto; hyphens: auto; }
