/* ==========================================================================
   Total Care TT5 – brand components + WP Job Manager styling
   Palette (theme.json): base #FFF · contrast/navy #0A1A2F · accent-1 cyan #12B8E6
   accent-2 sky #8FC1E3 · accent-3 steel #1B3A5C · accent-4 gold #D9A441
   accent-5 cream #F2F0EB · accent-6 slate #54606B
   ========================================================================== */

:root {
	--tc-navy: #0A1A2F;
	--tc-steel: #1B3A5C;
	--tc-cyan: #12B8E6;
	--tc-sky: #8FC1E3;
	--tc-gold: #D9A441;
	--tc-cream: #F2F0EB;
	--tc-slate: #54606B;
	--tc-line: #E2DED3;
	--tc-radius: 8px;
	--tc-shadow: 0 4px 14px rgba(10, 26, 47, .10);
	--tc-shadow-hover: 0 10px 24px rgba(10, 26, 47, .16);
}

/* ---------- Header ---------- */
.wp-site-blocks > header.wp-block-template-part,
.wp-site-blocks > .wp-block-template-part:first-child {
	position: sticky;
	top: 0;
	z-index: 100;
}
body.admin-bar .wp-site-blocks > header.wp-block-template-part { top: 32px; }
@media (max-width: 782px) {
	body.admin-bar .wp-site-blocks > header.wp-block-template-part { top: 46px; }
}
@media (max-width: 600px) {
	body.admin-bar .wp-site-blocks > header.wp-block-template-part { top: 0; }
}
.tc-site-header { margin: 0; }
.tc-topbar { font-size: .82rem; line-height: 1.4; }
.tc-topbar p { margin: 0; }
.tc-topbar a { color: inherit; text-decoration: none; }
.tc-topbar a:hover { color: var(--tc-sky); }
.tc-dot { margin: 0 .55em; opacity: .6; }
.tc-mainbar { box-shadow: 0 2px 12px rgba(0, 0, 0, .25); }

/* Logos: transparent PNGs sitting directly on the navy bar, no box behind them */
.tc-logos { gap: 0 !important; align-items: center; background: none; }
.tc-logos .tc-logo,
.tc-logos .tc-logo a,
.tc-logos .tc-logo img { margin: 0; padding: 0; background: none !important; border: 0; border-radius: 0; box-shadow: none; }
.tc-logos .tc-logo a { display: block; line-height: 0; }
.tc-logos .tc-logo img { height: 60px; width: auto; max-width: none; display: block; }
.tc-logos .tc-logo-totalcare { border-left: 1px solid rgba(242, 240, 235, .18); margin-left: 18px; padding-left: 18px; }

/* Navigation */
.tc-nav .wp-block-navigation-item__content { color: var(--tc-cream); padding: .35em 0; border-bottom: 2px solid transparent; }
.tc-nav .wp-block-navigation-item__content:hover,
.tc-nav .current-menu-item > .wp-block-navigation-item__content { color: #fff; border-bottom-color: var(--tc-cyan); }
.tc-nav .wp-block-navigation__submenu-container {
	background: var(--tc-navy) !important;
	border: 1px solid rgba(143, 193, 227, .25) !important;
	border-radius: 6px;
	padding: 6px 0;
	min-width: 250px !important;
	box-shadow: var(--tc-shadow-hover);
}
.tc-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: .5em 1em; border-bottom: 0; }
.tc-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: var(--tc-steel); }
.tc-header-cta .wp-block-button__link { padding: .6rem 1.15rem; font-size: .92rem; white-space: nowrap; }

/* Mobile overlay menu */
.tc-nav .wp-block-navigation__responsive-container-open { color: var(--tc-cream); }
.tc-nav .wp-block-navigation__responsive-container-open svg { width: 30px; height: 30px; }
.tc-nav .wp-block-navigation__responsive-container.is-menu-open { padding: 24px; }
.tc-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font-size: 1.25rem; padding: .4em 0; }
.tc-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { border: 0 !important; box-shadow: none; padding: 0 0 0 1em; background: transparent !important; }
.tc-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { font-size: 1.05rem; color: var(--tc-sky); }

@media (max-width: 1100px) {
	.tc-topbar-offices { display: none; }
	.tc-logos .tc-logo img { height: 48px; }
}
@media (max-width: 600px) {
	.tc-topbar { display: none; }
	.tc-logos .tc-logo img { height: 40px; }
	.tc-logos .tc-logo-totalcare { margin-left: 10px; padding-left: 10px; }
	.tc-header-cta .wp-block-button__link { padding: .5rem .8rem; font-size: .85rem; }
}
@media (max-width: 360px) {
	.tc-nav-wrap .tc-header-cta { display: none; }
}

/* Full-width sections sit flush (no white gaps between header, sections and footer) */
.wp-site-blocks > * { margin-block-start: 0; }
.tc-main { margin-block-start: 0 !important; }
.tc-front .wp-block-post-content > .alignfull { margin-block-start: 0 !important; margin-block-end: 0 !important; }
.tc-main > .alignfull { margin-block-start: 0 !important; }
/* Wider job lists inside constrained page content */
.is-layout-constrained > div.job_listings,
.is-layout-constrained > .job_listings { max-width: 1000px !important; }

/* Mobile overlay: left-aligned items */
.tc-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
.tc-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,
.tc-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { align-items: flex-start !important; text-align: left; }
.tc-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { padding-left: 1.1em !important; }

/* ---------- Page hero band (page + single job templates) ---------- */
.tc-page-hero .wp-block-post-title { color: var(--tc-cream); margin: 0; }
.tc-page-hero { border-bottom: 4px solid var(--tc-cyan); }

/* ---------- Generic brand components ---------- */
.tc-eyebrow {
	color: var(--tc-gold);
	text-transform: uppercase;
	letter-spacing: .18em;
	font-size: .8rem !important;
	font-weight: 700;
	margin-bottom: .4rem !important;
}
.tc-eyebrow a { color: inherit; text-decoration: none; }
.tc-eyebrow a:hover { color: var(--tc-sky); }
.has-contrast-background-color a:not(.wp-element-button),
.has-accent-3-background-color a:not(.wp-element-button),
.has-navy-steel-gradient-background a:not(.wp-element-button),
.tc-footer a:not(.wp-element-button) { color: inherit; }
.has-contrast-background-color a:not(.wp-element-button):hover,
.has-accent-3-background-color a:not(.wp-element-button):hover,
.tc-footer a:not(.wp-element-button):hover { color: var(--tc-sky); }

/* Outline buttons on dark sections */
.has-contrast-background-color .is-style-outline .wp-block-button__link,
.has-accent-3-background-color .is-style-outline .wp-block-button__link { color: var(--tc-cream); }
.wp-block-button.is-style-outline .wp-block-button__link:hover { background: rgba(255, 255, 255, .08); color: inherit; }
.has-accent-1-background-color .is-style-outline .wp-block-button__link { color: var(--tc-navy); }
.has-accent-1-background-color .is-style-outline .wp-block-button__link:hover { background: rgba(10, 26, 47, .08); }
.wp-block-button.tc-btn-navy .wp-block-button__link { background: var(--tc-navy); color: var(--tc-cream); }
.wp-block-button.tc-btn-navy .wp-block-button__link:hover { background: var(--tc-steel); }

/* Hero (home) */
.tc-hero h1 { color: #fff; }
.tc-hero .tc-hero-sub { color: var(--tc-cream); font-size: clamp(1.05rem, 1rem + .3vw, 1.2rem); max-width: 34em; }
.tc-hero .tc-hero-phone { color: var(--tc-sky); font-size: .95rem; }
.tc-hero .tc-hero-phone a { color: #fff; font-weight: 700; text-decoration: none; }
.tc-hero-img img { border-radius: var(--tc-radius); box-shadow: 0 18px 40px rgba(0, 0, 0, .35); width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; }
.tc-hero-img { position: relative; }
.tc-hero-img::after { content: ""; position: absolute; inset: auto -14px -14px auto; width: 45%; height: 45%; border: 3px solid var(--tc-cyan); border-radius: var(--tc-radius); z-index: -1; }
.tc-hero .wp-block-column:last-child { position: relative; z-index: 0; }

/* Cards (sectors, reasons) */
.tc-card {
	background: #fff;
	border-radius: var(--tc-radius);
	box-shadow: var(--tc-shadow);
	border-top: 4px solid var(--tc-cyan);
	transition: box-shadow .2s ease, transform .2s ease;
	height: 100%;
}
.tc-card:hover { box-shadow: var(--tc-shadow-hover); transform: translateY(-2px); }
.tc-card h3 { margin: 0; font-size: 1.1rem; }
.tc-card p { margin: .4rem 0 0; color: var(--tc-slate); font-size: .95rem; }
.tc-card .tc-card-icon { font-size: 1.6rem; line-height: 1; margin: 0 0 .5rem; }
.tc-card-dark { background: var(--tc-steel); color: var(--tc-cream); border-top-color: var(--tc-gold); }
.tc-card-dark p { color: var(--tc-cream); opacity: .9; }

/* Offices strip */
.tc-office h3 { color: #fff; margin-bottom: .3rem; font-size: 1.05rem; }
.tc-office p { margin: 0; color: var(--tc-cream); }
.tc-office { border-left: 3px solid var(--tc-cyan); padding-left: 1rem; }

/* Footer */
.tc-footer { font-size: .95rem; }
.tc-footer .tc-footer-heading { color: #fff; font-size: 1rem; text-transform: uppercase; letter-spacing: .1em; margin-bottom: .6rem; }
.tc-footer p { margin-top: 0; }
.tc-footer-links { list-style: none; padding-left: 0 !important; margin: .8rem 0 0; }
.tc-footer-links li { margin: .2rem 0; }
.tc-footer-links a { text-decoration: none; }
.tc-footer .tc-logos .tc-logo img { height: 64px; }
.tc-footer .tc-logos-footer { margin-bottom: 1.1rem; }
.tc-strapline { color: var(--tc-sky); font-weight: 700; margin-top: 1rem; }
.tc-footer-sep { border-color: rgba(242, 240, 235, .18) !important; opacity: 1; margin-top: var(--wp--preset--spacing--50); }
.tc-legal { font-size: .82rem; opacity: .8; margin: 0; }

/* ---------- WP Job Manager ---------- */
div.job_listings { margin: 0; }
ul.job_listings { border: 0 !important; margin: 0 !important; padding: 0 !important; display: grid; gap: 14px; }
ul.job_listings li.job_listing,
ul.job_listings li.no_job_listings_found {
	border: 1px solid var(--tc-line) !important;
	border-left: 4px solid var(--tc-cyan) !important;
	border-radius: var(--tc-radius);
	background: #fff;
	box-shadow: 0 2px 6px rgba(10, 26, 47, .05);
	list-style: none;
	margin: 0 !important;
	transition: box-shadow .2s ease, transform .2s ease;
}
ul.job_listings li.job_listing:hover { box-shadow: var(--tc-shadow-hover); transform: translateY(-1px); }
ul.job_listings li.job_listing.job_position_featured { border-left-color: var(--tc-gold) !important; background: #FFFDF8; }
ul.job_listings li.job_listing a {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) auto;
	grid-template-areas: "pos meta" "loc meta";
	gap: 4px 18px;
	align-items: center;
	padding: 16px 20px !important;
	color: var(--tc-navy);
	text-decoration: none;
	background: transparent !important;
	border: 0 !important;
}
ul.job_listings li.job_listing a img.company_logo,
ul.job_listings li.job_listing a .company { display: none !important; }
ul.job_listings li.job_listing a div.position { grid-area: pos; float: none !important; width: auto !important; padding: 0 !important; line-height: 1.3; }
ul.job_listings li.job_listing a div.position h3 { font-size: 1.08rem; font-weight: 700; margin: 0; color: var(--tc-navy); }
ul.job_listings li.job_listing a div.location { grid-area: loc; float: none !important; width: auto !important; padding: 0 !important; color: var(--tc-slate); font-size: .92rem; text-align: left !important; }
ul.job_listings li.job_listing a div.location::before { content: ""; display: inline-block; width: .5em; height: .5em; border-radius: 50%; background: var(--tc-cyan); margin-right: .45em; vertical-align: middle; }
ul.job_listings li.job_listing a ul.meta { grid-area: meta; float: none !important; width: auto !important; padding: 0 !important; margin: 0 !important; display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; text-align: right; }
ul.job_listings li.job_listing a ul.meta li { list-style: none; margin: 0 !important; font-size: .78rem; display: inline-block; }
ul.job_listings li.job_listing a ul.meta li.date { color: var(--tc-slate); flex-basis: 100%; text-align: right; }
.job-type, ul.job_listings li.job_listing a ul.meta li.job-type, .single_job_listing .meta .job-type {
	background: var(--tc-cream) !important;
	color: var(--tc-steel) !important;
	border-radius: 999px;
	padding: .2em .7em !important;
	font-weight: 700;
	font-size: .76rem;
	letter-spacing: .02em;
}
.job-type.temporary { background: #E3F5FB !important; color: #0B6E8C !important; }
.job-type.permanent { background: #E7EEF6 !important; color: var(--tc-steel) !important; }
@media (max-width: 600px) {
	ul.job_listings li.job_listing a { grid-template-columns: 1fr; grid-template-areas: "pos" "loc" "meta"; }
	ul.job_listings li.job_listing a ul.meta { justify-content: flex-start; text-align: left; }
	ul.job_listings li.job_listing a ul.meta li.date { text-align: left; }
}

/* Filters */
.job_filters { background: var(--tc-cream) !important; border-radius: var(--tc-radius); margin-bottom: 18px !important; overflow: hidden; border: 0 !important; box-shadow: none !important; }
.job_filters .search_jobs { background: transparent !important; padding: 16px !important; display: flex; flex-wrap: wrap; gap: 10px; border: 0 !important; }
.job_filters .search_jobs > div { float: none !important; width: auto !important; flex: 1 1 200px; padding: 0 !important; }
.job_filters .search_jobs > div[style*="clear"] { display: none; }
.job_filters label { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.job_filters input[type="text"],
.job_filters select:not(.select2-hidden-accessible),
.job_filters .select2-container .select2-selection,
.job_filters .chosen-container-multi .chosen-choices {
	width: 100% !important;
	border: 1px solid #CFCABD !important;
	border-radius: 4px !important;
	padding: .65em .8em !important;
	font: inherit;
	font-size: .95rem;
	background: #fff !important;
	box-shadow: none !important;
	min-height: 44px;
}
.job_filters .select2-container { width: 100% !important; }
.job_filters .select2-container .select2-selection--single { height: auto !important; display: flex; align-items: center; }
.job_filters .select2-container .select2-selection__rendered { padding-left: 0 !important; line-height: 1.4 !important; color: var(--tc-navy); }
.job_filters .select2-container .select2-selection__arrow { top: 50% !important; transform: translateY(-50%); right: 8px !important; }
.job_filters .search_remote_position { display: none !important; }
.job_filters input[type="text"]:focus, .job_filters select:focus { outline: 2px solid var(--tc-cyan); outline-offset: 0; border-color: var(--tc-cyan) !important; }
.job_filters .search_submit input[type="submit"],
.job_filters .search_jobs input[type="submit"] {
	background: var(--tc-navy); color: var(--tc-cream); border: 0; border-radius: 4px; padding: .7em 1.4em; font-weight: 700; cursor: pointer; min-height: 44px; width: 100%;
}
.job_filters ul.job_types { background: #fff; border-top: 1px solid var(--tc-line) !important; border-bottom: 0 !important; margin: 0 !important; padding: 10px 16px !important; display: flex; flex-wrap: wrap; gap: 6px 18px; }
.job_filters ul.job_types li { list-style: none; float: none !important; border: 0 !important; padding: 0 !important; font-size: .9rem; }
.job_filters .showing_jobs { background: var(--tc-steel) !important; color: var(--tc-cream) !important; padding: 8px 16px !important; font-size: .85rem !important; border: 0 !important; }
.job_filters .showing_jobs a { color: var(--tc-sky) !important; }
.job_filters .showing_jobs a.reset { border-color: var(--tc-sky) !important; }

/* Load more */
div.job_listings .load_more_jobs {
	display: block; margin: 18px auto 0 !important; text-align: center; background: var(--tc-cyan) !important; color: var(--tc-navy) !important;
	border-radius: 4px; padding: .8em 1.6em !important; font-weight: 700; text-decoration: none; border: 0 !important; max-width: 260px;
}
div.job_listings .load_more_jobs:hover { background: var(--tc-sky) !important; }
.job-manager-pagination ul li a, .job-manager-pagination ul li span { border-radius: 4px; }
.job-manager-pagination ul li span.current { background: var(--tc-navy) !important; color: #fff !important; }

/* Single job */
.single_job_listing .meta,
.single_job_listing ul.job-listing-meta {
	display: flex; flex-wrap: wrap; gap: 8px 18px; align-items: center;
	background: var(--tc-cream); border-radius: var(--tc-radius); padding: 14px 18px !important; margin: 0 0 22px !important; list-style: none;
}
.single_job_listing .meta li { list-style: none; margin: 0 !important; padding: 0 !important; color: var(--tc-navy); font-size: .95rem; }
.single_job_listing .meta li::before { display: none !important; }
.single_job_listing .meta li.location::before { content: "" !important; display: inline-block !important; width: .5em; height: .5em; border-radius: 50%; background: var(--tc-cyan); margin-right: .45em; vertical-align: middle; }
.single_job_listing .meta li.salary { font-weight: 700; }
.single_job_listing .meta li.date-posted { color: var(--tc-slate); font-size: .85rem; }
.single_job_listing .company { display: none !important; }
.single_job_listing .job_description { font-size: 1.02rem; }
.single_job_listing .job_description h2, .single_job_listing .job_description h3 { margin-top: 1.6em; }
.single_job_listing .job-manager-info { background: #FFF6E5; border-left: 4px solid var(--tc-gold); padding: 12px 16px; border-radius: 4px; }
.job_application { margin: 26px 0 !important; }
.job_application .application_button,
.job_application input.application_button {
	background: var(--tc-cyan) !important; color: var(--tc-navy) !important; border: 0 !important; border-radius: 4px !important;
	padding: .9em 1.8em !important; font: inherit; font-weight: 700 !important; cursor: pointer; font-size: 1rem;
}
.job_application .application_button:hover { background: var(--tc-sky) !important; }
.job_application .application_details { background: var(--tc-cream); border: 0 !important; border-radius: var(--tc-radius); padding: 16px 18px !important; box-shadow: none !important; }
.tc-job-help { border-radius: var(--tc-radius); margin-top: var(--wp--preset--spacing--50) !important; }
.tc-job-help p { margin: 0; }

/* Accessibility helpers */
:where(.wp-site-blocks) a:focus-visible, .wp-element-button:focus-visible { outline: 2px solid var(--tc-gold); outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) {
	.tc-card, ul.job_listings li.job_listing { transition: none; }
	.tc-card:hover, ul.job_listings li.job_listing:hover { transform: none; }
}
.tc-small { font-size: .85rem; opacity: .9; }
ul.job_listings li.job_listing a ul.meta li.salary { order: -1; flex-basis: 100%; text-align: right; font-weight: 700; color: var(--tc-navy); font-size: .9rem; }
@media (max-width: 600px) { ul.job_listings li.job_listing a ul.meta li.salary { text-align: left; } }
.single_job_listing .meta .job-type { background: #fff !important; }
