/* Bikini Bootcamp — global typography (loaded last on every page).
   Two families only: Cormorant Garamond for titles/headings/subtitles,
   Jost for everything else. Min sizes: body 12pt (16px), subtitles 16pt (22px),
   titles/section headings 20pt (27px). No italics anywhere. */
:root {
  --bb-font-heading: 'Cormorant Garamond', Georgia, serif;
  --bb-font-body: 'Jost', 'Helvetica Neue', Arial, sans-serif;
  --bb-size-body: 1rem;
  --bb-size-subtitle: 1.4rem;   /* 22.4px */
  --bb-size-title-min: 1.7rem;  /* 27.2px */
  --bb-text-dark: #2c261e;
  --bb-text-body: #3d342a;
  /* legacy per-page font variables all resolve to the two families */
  --driftwood-dark: #5a4d40;
  --ocean: #2a7373;
  --ocean-deep: #2b6b6b;
  --clay-dark: #7a5d3c;
  --driftwood: #6b5d4f;
  --font-brush: var(--bb-font-body);
  --font-block: var(--bb-font-body);
  --font-body: var(--bb-font-body);
  --font-soft: var(--bb-font-body);
  --font-hand: var(--bb-font-heading);
  --font-bayer: var(--bb-font-heading);
  --font-elegant: var(--bb-font-heading);
  --font-serif: var(--bb-font-heading);
}
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body, body * {
  font-family: var(--bb-font-body) !important;
  font-style: normal !important;
}
body, p, li, td, th, dd, dt, label, input, select, textarea, button, a, span, figcaption, blockquote, small {
  font-size: max(var(--bb-size-body), 1em);
}
p, li, td, th, dd, dt, label, blockquote, figcaption {
  font-size: var(--bb-size-body);
  line-height: 1.7;
  font-weight: 400 !important;
}
small, sub, sup { font-size: var(--bb-size-body); }
input, select, textarea, button { font-size: var(--bb-size-body) !important; }

/* Titles, headings, subtitles */
h1, h2, h3, h4, h5, h6,
body [class*="title"], body [class*="heading"], body [class*="headline"],
body [class*="hand-label"], body [class*="category-label"], body [class*="subtitle"], body [class*="tagline"] {
  font-family: var(--bb-font-heading) !important;
  font-weight: 600;
  line-height: 1.2;
}
h1 { font-size: clamp(2.4rem, 6vw, 4.5rem) !important; }
h2 { font-size: clamp(1.7rem, 3.6vw, 2.8rem) !important; }
h3, h4, h5, h6 { font-size: clamp(1.4rem, 2.4vw, 1.8rem) !important; }
body [class*="subtitle"], body [class*="hand-label"], body [class*="category-label"], body [class*="tagline"] {
  font-size: max(var(--bb-size-subtitle), 1em);
}

/* Links & buttons: readable in every state */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 3px solid currentColor; outline-offset: 3px;
}
button:disabled, .btn[aria-disabled="true"], .disabled {
  opacity: 0.65; cursor: not-allowed;
}
@media (max-width: 768px) {
  body, p, li, a, span, button, input { font-size: max(var(--bb-size-body), 1em); }
  h1 { font-size: clamp(2.2rem, 9vw, 3rem) !important; }
}

/* ---- Contrast: text over photographs & light surfaces ---- */
body [class*="hero"] h1, body [class*="hero"] h2, body [class*="hero"] p,
body [class*="hero"] span, body [class*="hero"] div, body [class*="hero"] .hand-label {
  color: #ffffff;
  text-shadow: 0 1px 3px rgba(0,0,0,0.6), 0 2px 18px rgba(0,0,0,0.5);
}
body [class*="hero"] p, body [class*="hero"] .hand-label, body [class*="hero"] span { font-weight: 500; opacity: 1; }
body [class*="hero"] a:not([class*="btn"]):not([class*="cta"]) { color: #ffffff; text-shadow: 0 1px 3px rgba(0,0,0,0.6); }
/* teal buttons/badges: white text needs a deeper teal behind it */
.nav-cta, .article-cta-btn, .cta-btn, .review-avatar, .celeb-name { background-color: #2a7373 !important; color: #ffffff !important; border-color: #2a7373 !important; }
/* footer links on the dark brown footer */
footer a { color: #d6efef !important; }
footer a:hover { color: #ffffff !important; text-decoration: underline; }
footer p, footer span { color: #ffffff !important; opacity: 0.9 !important; }
/* nav links: keep each page's own colour, just heavier */
.nav-links a { font-weight: 500; }

/* article / post heroes over photographs */
body [class*="article-category"], body [class*="article-meta"], body [class*="post-category"], body [class*="post-meta"], body [class*="post-author"],
body [class*="hero-phrase"], body [class*="slide-panel-label"] {
  color: #ffffff; font-weight: 500 !important; text-shadow: 0 1px 3px rgba(0,0,0,0.65), 0 2px 14px rgba(0,0,0,0.5);
}

/* mobile: tame wide tracking so 16px uppercase labels fit; wrap long strings */
@media (max-width: 768px) {
  body * { letter-spacing: 0.1em !important; overflow-wrap: anywhere; }
  h1, h2, h3, h4 { letter-spacing: 0.02em !important; }
}

/* sand-coloured filled buttons: dark text for contrast */
body [class*="btn"][class*="filled"] { color: #2c261e !important; font-weight: 600 !important; }
body [class*="btn"][class*="filled"]:hover { color: #ffffff !important; background-color: #5a4d40 !important; border-color: #5a4d40 !important; }
/* dark contact strips */
.contact-strip p { color: #ffffff !important; opacity: 0.92; }

/* FAQ section kicker must never be smaller than the heading beneath it */
body .faq-category-label { font-size: clamp(1.7rem, 3.6vw, 2.8rem); letter-spacing: 0.02em !important; line-height: 1.2; }
