/**

 * Pure Haven IT — Typography enforcement (brand fonts/colours site-wide).

 * Loaded late. Same palette and families — no redesign.

 */



/* ==========================================================================

   Global base — entire site, not only .ph-site-main

   ========================================================================== */

body.ph-body {

	font-family: var(--ph-font-body) !important;

	font-size: 17px;

	line-height: var(--ph-line-height-body);

	color: var(--ph-color-charcoal) !important;

	-webkit-font-smoothing: antialiased;

}



body.ph-body .site-content,

body.ph-body .ast-container,

body.ph-body #primary,

body.ph-body .entry-content,

body.ph-body .ast-article-single,

body.ph-body .elementor-widget-container {

	font-family: var(--ph-font-body);

	color: var(--ph-color-charcoal);

}



/* Headings — main content + Astra content areas */

body.ph-body .ph-site-main h1,

body.ph-body .ph-site-main h2,

body.ph-body .ph-site-main h3,

body.ph-body .ph-site-main h4,

body.ph-body .ph-site-main .ph-h2,

body.ph-body .ph-site-main .ph-h3,

body.ph-body .site-content h1,

body.ph-body .site-content h2,

body.ph-body .site-content h3,

body.ph-body .site-content h4,

body.ph-body .entry-content h1,

body.ph-body .entry-content h2,

body.ph-body .entry-content h3 {

	font-family: var(--ph-font-heading) !important;

	color: var(--ph-color-navy) !important;

	font-weight: 700;

	line-height: var(--ph-line-height-tight);

}



body.ph-body .ph-site-main p,

body.ph-body .ph-site-main li,

body.ph-body .ph-site-main .ph-lead,

body.ph-body .site-content p,

body.ph-body .entry-content p,

body.ph-body .entry-content li {

	font-family: var(--ph-font-body) !important;

	color: var(--ph-color-charcoal) !important;

}



body.ph-body .ph-site-main .ph-section-header__text,

body.ph-body .ph-site-main .ph-note,

body.ph-body .ph-site-main .ph-quote-meta,

body.ph-body .site-content .ph-note {

	color: var(--ph-color-text-muted) !important;

	font-family: var(--ph-font-body) !important;

}



body.ph-body .ph-site-main .ph-section-header__eyebrow,

body.ph-body .ph-site-main .ph-eyebrow {

	font-family: var(--ph-font-body) !important;

	color: var(--ph-color-primary) !important;

}



/* Hero inverse text */

body.ph-body .ph-site-main .ph-hero .ph-hero__title,

body.ph-body .ph-site-main .ph-final-cta .ph-h2,

body.ph-body .ph-site-main .ph-text-inverse {

	color: var(--ph-color-text-inverse) !important;

}



body.ph-body .ph-site-main .ph-hero .ph-hero__subtitle,

body.ph-body .ph-site-main .ph-hero .ph-hero__micro,

body.ph-body .ph-site-main .ph-text-inverse-muted {

	color: rgba(255, 255, 255, 0.88) !important;

	font-family: var(--ph-font-body) !important;

}



/* Buttons */

body.ph-body .ph-site-main .ph-btn,

body.ph-body .site-content .ph-btn {

	font-family: var(--ph-font-body) !important;

	font-weight: 600 !important;

}



body.ph-body .ph-site-main a.ph-link,

body.ph-body .site-content a.ph-link {

	font-family: var(--ph-font-body) !important;

	color: var(--ph-color-primary) !important;

	font-weight: 600;

}



/* Primary nav brand typography (Astra header) */

body.ph-body .main-header-menu a,

body.ph-body .ast-header-navigation a,

body.ph-body .site-header a,

body.ph-body .ast-builder-menu a {

	font-family: var(--ph-font-body) !important;

	font-weight: 500;

}



body.ph-body .main-header-menu .menu-item a,

body.ph-body .ast-builder-menu .menu-item a {

	color: var(--ph-color-navy) !important;

}



body.ph-body .main-header-menu .menu-item a:hover,

body.ph-body .ast-builder-menu .menu-item a:hover {

	color: var(--ph-color-primary) !important;

}



/* Footer */

body.ph-body .site-footer,

body.ph-body .site-footer p,

body.ph-body .site-footer a {

	font-family: var(--ph-font-body);

}



body.ph-body .site-footer a {

	color: var(--ph-color-charcoal);

}



body.ph-body .site-footer a:hover {

	color: var(--ph-color-primary);

}



/* Job listings page only — not homepage */

body.ph-body .ph-jobs-shell .job_listing a {

	font-family: var(--ph-font-body);

	color: var(--ph-color-navy);

}



body.ph-body .ph-jobs-shell .job_listing a:hover {

	color: var(--ph-color-primary);

}



/* ==========================================================================

   HARD BLOCK: Jobs / job board on homepage only

   ========================================================================== */

body.home .job_listings,

body.home .wpjm-job-board,

body.home .wp-job-manager,

body.home [class*="job-listing"],

body.home .elementor-widget-wp-job-manager-archive,

body.home .elementor-widget-shortcode:has(.job_listings),

body.home .ph-job-counter,

body.home [class*="job-counter"] {

	display: none !important;

	visibility: hidden !important;

	height: 0 !important;

	overflow: hidden !important;

	margin: 0 !important;

	padding: 0 !important;

}



/* Hide stray Astra / Elementor page content on front page */

body.home .site-content > .ast-container .entry-header,

body.home .site-content > .ast-container .entry-content:not(.ph-site-main),

body.home #primary > .ast-container > article:not(.ph-site-main),

body.home .elementor-location-single {

	display: none !important;

}



/* Premium section separators */

.ph-home .ph-band + .ph-band {

	border-top: 0;

}



.ph-home .ph-band--surface {

	box-shadow: inset 0 1px 0 var(--ph-color-grey-border);

}



.ph-home .ph-surface-card,

.ph-home .ph-tile {

	min-height: 100%;

}



.ph-home .ph-section-intro {

	margin-bottom: clamp(2rem, 4vw, 3rem);

}


