/* The only text faces used across Focus Mission: Merriweather and Cormorant Upright. */
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Upright:ital,wght@0,300;0,400;0,500;0,600;0,700;1,300;1,400;1,500;1,600;1,700&family=Merriweather:ital,wght@0,300;0,400;0,700;0,900;1,300;1,400;1,700&display=swap');

:root {
  --focus-display: 'Cormorant Upright', Georgia, serif;
  --focus-body: 'Merriweather', Georgia, serif;
  --th-display: var(--focus-display);
  --th-sans: var(--focus-body);
}

/* The late-loaded selector intentionally overrides remnants of the old templates. */
body,
body input,
body textarea,
body select,
body button,
body .btn,
body *:not(.fa):not(.fas):not(.far):not(.fab):not(.fal):not(.fad):not(.fa-solid):not(.fa-regular):not(.fa-brands):not([class^='icon-']):not([class*=' icon-']) {
  font-family: var(--focus-body) !important;
}

body h1,
body h2,
body h3,
body h4,
body h5,
body h6,
body .display-1,
body .display-2,
body .display-3,
body .display-4,
body .bread,
body .section-title,
body .heading-section {
  font-family: var(--focus-display) !important;
  font-weight: 600;
}

/* Deliberately compact scale across every breakpoint. */
body h1 { font-size: clamp(2.35rem, 3.8vw, 3.8rem) !important; line-height: .98 !important; }
body h2 { font-size: clamp(2rem, 3vw, 3rem) !important; line-height: 1 !important; }
body h3 { font-size: clamp(1.55rem, 2.25vw, 2.2rem) !important; line-height: 1.06 !important; }
body h4 { font-size: clamp(1.25rem, 1.8vw, 1.65rem) !important; line-height: 1.12 !important; }
body h5, body h6 { font-size: 1.1rem !important; line-height: 1.2 !important; }

body h1 em,
body h2 em,
body h3 em,
body h4 em,
body h5 em,
body h6 em,
body .font-script,
body em {
  font-family: var(--focus-display) !important;
}

/* Keep the editorial hierarchy calm: the old template's headline scale was excessive. */
body:not(.th-page) .hero-wrap h1.bread,
body:not(.th-page) .hero-wrap .bread {
  max-width: 760px;
  font-size: clamp(2.5rem, 4vw, 3.9rem) !important;
  line-height: .98 !important;
}
body:not(.th-page) .heading-section h1,
body:not(.th-page) .heading-section h2,
body:not(.th-page) .section-title h1,
body:not(.th-page) .section-title h2 {
  font-size: clamp(2rem, 3vw, 3rem) !important;
  line-height: 1 !important;
}
body:not(.th-page) #about-us h2,
body:not(.th-page) .about-luxury__gallery-copy h2 {
  font-size: clamp(2rem, 3vw, 3rem) !important;
}

/* Absolute ceiling for legacy and custom components.  The never-matching ID
   deliberately gives this final layer priority over older page-specific rules. */
html body:not(#type-size-never-match) h1,
html body:not(#type-size-never-match) .display-1,
html body:not(#type-size-never-match) .display-2,
html body:not(#type-size-never-match) .hero-title,
html body:not(#type-size-never-match) .page-title,
html body:not(#type-size-never-match) .bread {
  font-size: clamp(2.25rem, 3.25vw, 3.25rem) !important;
  line-height: 1.02 !important;
}
html body:not(#type-size-never-match) h2,
html body:not(#type-size-never-match) .display-3,
html body:not(#type-size-never-match) .display-4,
html body:not(#type-size-never-match) .section-title,
html body:not(#type-size-never-match) .heading-section h2 {
  font-size: clamp(1.85rem, 2.6vw, 2.6rem) !important;
  line-height: 1.08 !important;
}
html body:not(#type-size-never-match) h3 {
  font-size: clamp(1.4rem, 1.85vw, 1.8rem) !important;
  line-height: 1.12 !important;
}
html body:not(#type-size-never-match) h1,
html body:not(#type-size-never-match) h2,
html body:not(#type-size-never-match) h3,
html body:not(#type-size-never-match) h4,
html body:not(#type-size-never-match) h5,
html body:not(#type-size-never-match) h6,
html body:not(#type-size-never-match) .display-1,
html body:not(#type-size-never-match) .display-2,
html body:not(#type-size-never-match) .display-3,
html body:not(#type-size-never-match) .display-4,
html body:not(#type-size-never-match) .hero-title,
html body:not(#type-size-never-match) .page-title,
html body:not(#type-size-never-match) .bread,
html body:not(#type-size-never-match) .section-title,
html body:not(#type-size-never-match) .heading-section {
  font-family: var(--focus-display) !important;
}
@media (max-width: 620px) {
  html body:not(#type-size-never-match) h1,
  html body:not(#type-size-never-match) .display-1,
  html body:not(#type-size-never-match) .display-2,
  html body:not(#type-size-never-match) .hero-title,
  html body:not(#type-size-never-match) .page-title,
  html body:not(#type-size-never-match) .bread { font-size: clamp(2rem, 9vw, 2.65rem) !important; }
  html body:not(#type-size-never-match) h2,
  html body:not(#type-size-never-match) .display-3,
  html body:not(#type-size-never-match) .display-4,
  html body:not(#type-size-never-match) .section-title,
  html body:not(#type-size-never-match) .heading-section h2 { font-size: clamp(1.65rem, 7vw, 2.1rem) !important; }
  html body:not(#type-size-never-match) h3 { font-size: clamp(1.3rem, 5.8vw, 1.55rem) !important; }
}

/* Compact navigation and controls stay legible at their deliberately small sizes. */
body .nav-link,
body .dropdown-item,
body .btn,
body button,
body label,
body input,
body select,
body textarea {
  font-family: var(--focus-body) !important;
}
