/*
Theme Name: SUNYFAP
Theme URI: https://sunyfap.org
Author: AllSupport
Author URI: https://allsupport.co
Description: Custom WordPress theme for SUNYFAP.
Version: 1.0.11
Requires at least: 6.8
Requires PHP: 8.0
License: Proprietary
Text Domain: sunyfap

STYLESHEET RULES
- One stylesheet per theme. Nothing else is enqueued.
- Every media query lives in the RESPONSIVE section.
- The nav hover override stays absolute last.
- New component sections insert before RESPONSIVE.
*/

/*
SECTION INDEX
01. TOKENS
02. BASE
03. LAYOUT (STRUCTURE)
04. TOP BAR AND HEADER
05. PRIMARY NAVIGATION
06. HOME HERO SLIDES
07. PAGE OPENING AND SECTIONS
08. BUTTONS
09. CONTENT PIECES (RULES, CALLOUT, JOIN, DOCUMENT LINKS)
10. AWARDS AND SCHOLARSHIP DETAILS
11. LEADERSHIP
12. JOBS
13. EVENTS
14. FORMS
15. SEARCH AND INDEX
16. SOCIAL LINKS AND FOOTER
17. COOKIE BANNER
18. SCROLL TO TOP
19. RESPONSIVE
20. NAV HOVER OVERRIDE
*/

/* =========================================================
   01. TOKENS
   ========================================================= */
:root {
	/* Color: taken from the SUNYFAP logo and the site as members know it. */
	--navy: #294a70;
	--navy-deep: #15305b;
	--slate: #49688e;
	--orange: #f4a024;
	--orange-ink: #a35f00;
	--caption-blue: rgba(0, 61, 244, 0.85);
	--caption-yellow: #fff200;
	--ink: #666666;
	--ink-strong: #333333;
	--paper: #ffffff;
	--tint: #f9f9f9;
	--line: #dddddd;
	--link-hover: #6081a7;

	/* Type */
	--font-body: "Open Sans", Arial, sans-serif;
	--font-head: "Merriweather Sans", "Open Sans", Arial, sans-serif;
	--text: 0.875rem;
	--text-lg: 1rem;
	--h1: clamp(1.375rem, 1.1rem + 1vw, 1.75rem);
	--h2: 1.25rem;
	--h3: 1.0625rem;
	--accent-head: clamp(1.25rem, 1rem + 1vw, 1.625rem);

	/* Space */
	--gutter: 15px;
	--wide: 1170px;
	--space-section: 40px;
	--gap: 30px;

	/* Radius */
	--radius-btn: 2px;
	--radius-caption: 10px;
	--radius-social: 3px;

	/* Motion */
	--ease: 0.2s ease;
}

/* =========================================================
   02. BASE
   ========================================================= */
*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	-webkit-text-size-adjust: 100%;
	scroll-padding-top: 20px;
}

body {
	margin: 0;
	background: var(--paper);
	color: var(--ink);
	font-family: var(--font-body);
	font-size: var(--text);
	line-height: 1.5;
	overflow-wrap: break-word;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	margin: 0 0 15px;
	color: var(--navy);
	font-family: var(--font-head);
	font-weight: 400;
	text-wrap: balance;
}

h1 { font-size: var(--h1); }
h2 { font-size: var(--h2); }
h3 { font-size: var(--h3); }
h4 { font-size: 1rem; }
h5 { font-size: 0.9375rem; }
h6 { font-size: 0.875rem; }

p {
	margin: 0 0 15px;
}

ul,
ol {
	margin: 0 0 15px 25px;
	padding: 0;
}

a {
	color: var(--navy);
	text-decoration: none;
}

a:hover {
	color: var(--link-hover);
}

.site-content p a,
.site-content li a,
.site-content td a {
	text-decoration: underline;
	text-underline-offset: 2px;
}

:focus-visible {
	outline: 3px solid var(--navy-deep);
	outline-offset: 2px;
}

img {
	max-width: 100%;
	height: auto;
}

table {
	width: 100%;
	margin: 0 0 1.5em;
	border-collapse: collapse;
}

blockquote {
	margin: 0 0 20px;
	padding: 20px;
	border-left: 4px solid var(--orange);
	background: var(--tint);
	font-style: italic;
}

blockquote > :last-child {
	margin-bottom: 0;
}

[hidden] {
	display: none !important;
}

.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}

.skip-link {
	position: absolute;
	top: -100px;
	left: 5px;
	z-index: 1000;
	padding: 12px 20px;
	background: var(--paper);
	color: var(--navy-deep);
	font-weight: 700;
}

.skip-link:focus {
	top: 5px;
}

/* =========================================================
   03. LAYOUT (STRUCTURE)
   ========================================================= */
.site-wrapper {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
}

.site-content {
	flex: 1 0 auto;
	display: block;
}

.container,
.container-narrow {
	width: 100%;
	max-width: var(--wide);
	margin-inline: auto;
	padding-inline: var(--gutter);
}

/* =========================================================
   04. TOP BAR AND HEADER
   ========================================================= */
.site-header {
	background: var(--paper);
}

.top-bar {
	min-height: 35px;
	background: var(--slate);
	color: var(--paper);
	font-family: var(--font-head);
	line-height: 1.1;
}

.top-bar .container {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 15px;
	min-height: 35px;
}

.top-bar a {
	color: var(--paper);
}

.top-bar a:hover {
	color: #e0e0e0;
}

.top-bar svg {
	width: 17px;
	height: 17px;
	flex-shrink: 0;
	margin-right: 5px;
	fill: var(--orange);
	vertical-align: -3px;
}

.top-bar__email {
	display: inline-flex;
	align-items: center;
	min-height: 24px;
}

.top-bar__notice {
	display: flex;
	align-items: center;
	margin: 0;
	padding-left: 15px;
	border-left: 1px solid var(--paper);
}

.top-bar__notice a {
	display: inline-flex;
	align-items: center;
	min-height: 24px;
	margin-left: 15px;
	font-weight: 700;
	text-decoration: underline;
}

.site-branding {
	padding: 20px 0;
	background: var(--paper);
}

.site-branding .container {
	display: flex;
	align-items: center;
	min-height: 105px;
}

.custom-logo-link {
	display: block;
	line-height: 0;
}

.custom-logo {
	width: 150px;
	height: auto;
}

.site-branding__name {
	color: var(--navy);
	font-family: var(--font-head);
	font-size: 1.75rem;
}

/* =========================================================
   05. PRIMARY NAVIGATION
   ========================================================= */
.main-nav {
	background: var(--navy);
	border-bottom: 5px solid var(--orange);
}

.main-nav ul {
	display: flex;
	flex-wrap: wrap;
	margin: 0;
	padding: 0;
	list-style: none;
}

.main-nav li {
	position: relative;
}

.main-nav a {
	display: block;
	padding: 10px 25px;
	border-right: 1px solid var(--paper);
	color: var(--paper);
	font-size: 1rem;
	transition: background-color var(--ease), color var(--ease);
}

.main-nav li:first-child > a {
	border-left: 1px solid var(--paper);
}

.main-nav .menu-item-has-children > a {
	padding-right: 38px;
}

.main-nav .menu-item-has-children > a::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 16px;
	width: 7px;
	height: 7px;
	margin-top: -6px;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: rotate(45deg);
}

.main-nav ul ul {
	position: absolute;
	top: 100%;
	left: -999em;
	z-index: 50;
	display: block;
	min-width: 200px;
	background: var(--navy);
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);
}

.main-nav li:hover > ul,
.main-nav li:focus-within > ul {
	left: 0;
}

.main-nav ul ul a,
.main-nav ul ul li:first-child > a {
	padding: 9px 15px;
	border: 0;
	border-bottom: 1px solid var(--line);
	font-size: 0.875rem;
}

.nav-toggle {
	display: none;
	align-items: center;
	min-height: 44px;
	gap: 12px;
	margin: 15px auto;
	padding: 8px 20px 8px 15px;
	border: 0;
	background: var(--navy);
	color: var(--paper);
	font: inherit;
	font-size: 1.25rem;
	line-height: 1.3;
	cursor: pointer;
}

.nav-toggle__bars {
	display: grid;
	gap: 4px;
	padding-right: 14px;
	border-right: 1px solid var(--line);
}

.nav-toggle__bars span {
	display: block;
	width: 20px;
	height: 3px;
	background: currentColor;
}

/* =========================================================
   06. HOME HERO SLIDES
   ========================================================= */
.hero {
	position: relative;
	margin-block: var(--space-section);
}

.hero__track {
	display: flex;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
}

.hero__track::-webkit-scrollbar {
	display: none;
}

.hero__slide {
	position: relative;
	flex: 0 0 100%;
	height: calc(100vh - 60px);
	min-height: 360px;
	max-height: 840px;
	scroll-snap-align: start;
	background: #e7e7e7;
}

.hero__slide img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.hero__caption {
	position: absolute;
	top: 65.5%;
	left: 50%;
	width: min(634px, calc(100% - 100px));
	padding: 12px 16px 18px;
	border-radius: var(--radius-caption);
	background: var(--caption-blue);
	color: var(--caption-yellow);
	text-align: center;
	transform: translateX(-50%);
}

.hero__word {
	margin: 0;
	font-size: clamp(1.75rem, 1rem + 3.4vw, 3.625rem);
	font-weight: 700;
	line-height: 1.16;
	letter-spacing: 0.155em;
	text-transform: uppercase;
}

.hero__line {
	max-width: 400px;
	margin: 6px auto 0;
	font-size: clamp(0.875rem, 0.8rem + 0.3vw, 1.0625rem);
	font-weight: 600;
	line-height: 1.53;
}

.hero__prev,
.hero__next {
	position: absolute;
	top: 50%;
	display: grid;
	place-items: center;
	width: 60px;
	height: 60px;
	margin-top: -30px;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--paper);
	cursor: pointer;
}

.hero__prev { left: 10px; }
.hero__next { right: 10px; }

.hero__prev svg,
.hero__next svg {
	width: 44px;
	height: 44px;
	flex-shrink: 0;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	filter: drop-shadow(0 0 3px rgba(0, 0, 0, 0.6));
}

/* =========================================================
   07. PAGE OPENING AND SECTIONS
   ========================================================= */
.svc-hero {
	padding: var(--space-section) 0 0;
}

.svc-hero h1 {
	margin: 0;
}

.section {
	padding: 30px 0;
}

.svc-hero + .section {
	padding-top: 20px;
}

.section--alt {
	background: var(--tint);
}

.section-title {
	margin-bottom: 20px;
}

.section-title h2,
.section-title h3 {
	margin: 0;
	color: var(--orange-ink);
	font-family: var(--font-body);
	font-size: var(--accent-head);
	font-weight: 600;
}

.section-title--center {
	text-align: center;
}

.lead-center {
	max-width: 46rem;
	margin-inline: auto;
	text-align: center;
}

/* =========================================================
   08. BUTTONS
   ========================================================= */
.btn {
	display: inline-block;
	min-height: 44px;
	padding: 10px 21px;
	border: 2px solid transparent;
	border-radius: var(--radius-btn);
	font: inherit;
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.5;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	transition: background-color var(--ease), color var(--ease), border-color var(--ease);
}

.btn--primary {
	background: var(--orange);
	color: var(--navy-deep);
}

.btn--primary:hover {
	background: var(--navy);
	color: var(--paper);
}

.btn--secondary {
	border-color: var(--navy);
	background: var(--paper);
	color: var(--navy);
}

.btn--secondary:hover {
	background: var(--navy);
	color: var(--paper);
}

.site-content a.btn {
	text-decoration: none;
}

/* =========================================================
   09. CONTENT PIECES (RULES, CALLOUT, JOIN, DOCUMENT LINKS)
   ========================================================= */
.rule {
	height: 2px;
	margin: 25px 0;
	border: 0;
	background: var(--orange);
}

.rule--quiet {
	height: 1px;
	background: var(--ink-strong);
}

.legal-note {
	color: var(--navy);
	font-family: var(--font-head);
	font-size: 0.8125rem;
}

.join-cta {
	padding: 10px 0 20px;
	text-align: center;
}

.join-cta svg {
	width: 46px;
	height: 46px;
	flex-shrink: 0;
	fill: none;
	stroke: var(--orange);
	stroke-width: 2;
}

.join-cta h2 {
	margin: 8px 0 12px;
	color: var(--orange-ink);
	font-family: var(--font-body);
	font-size: var(--accent-head);
	font-weight: 600;
	text-transform: uppercase;
}

.join-cta p {
	margin: 0;
}

.membership-term h2 {
	text-align: center;
}

.membership-fee {
	color: var(--navy);
	font-family: var(--font-head);
	font-size: 1rem;
}

.doc-links {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: var(--gap);
	margin: 25px 0 0;
	padding: 0;
	list-style: none;
	text-align: center;
	font-weight: 700;
}

.resource-list {
	margin-left: 0;
	list-style: none;
}

.resource-list li {
	padding: 8px 0;
	border-bottom: 1px solid var(--line);
}

/* =========================================================
   10. AWARDS AND SCHOLARSHIP DETAILS
   ========================================================= */
.past-winners,
.scholarship-detail {
	border-bottom: 1px solid var(--line);
}

.past-winners {
	margin-bottom: 55px;
}

.past-winners summary,
.scholarship-detail summary {
	padding: 12px 12px 12px 14px;
	color: var(--navy);
	font-size: 0.8125rem;
	font-weight: 700;
	cursor: pointer;
}

.past-winners[open] summary,
.scholarship-detail[open] summary {
	border-bottom: 1px solid var(--line);
}

.scholarship-detail > :not(summary) {
	margin: 12px 14px 15px;
}

.scholarship-detail > ul,
.scholarship-detail > ol {
	margin-left: 39px;
}

.winners-table {
	width: auto;
	margin: 12px 0 15px 14px;
}

.winners-table th,
.winners-table td {
	padding: 8px 0;
	border: 0;
	text-align: left;
	vertical-align: top;
}

.winners-table th {
	padding-right: 24px;
	color: var(--ink-strong);
	font-weight: 600;
	white-space: nowrap;
}

/* =========================================================
   11. LEADERSHIP
   ========================================================= */
.leader-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--gap);
	margin: 0 0 var(--gap);
	padding: 0;
	list-style: none;
}

.leader {
	position: relative;
	overflow: hidden;
}

.leader:focus-visible {
	outline: 3px solid var(--orange);
	outline-offset: 2px;
}

.leader__photo {
	display: block;
	width: 100%;
	aspect-ratio: 5 / 7;
	object-fit: cover;
	object-position: center top;
	background: var(--ink-strong);
}

.leader__photo--empty {
	background: #d6dbe3 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 500 700'%3E%3Ccircle cx='250' cy='265' r='98' fill='%2398a4b5'/%3E%3Cpath d='M62 700c0-168 84-262 188-262s188 94 188 262z' fill='%2398a4b5'/%3E%3C/svg%3E") center bottom / cover no-repeat;
}

.leader__caption {
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	padding: 14px 12px;
	background: rgba(0, 0, 0, 0.72);
	color: var(--paper);
	text-align: center;
	transition: background-color 0.3s ease;
}

.leader:hover .leader__caption,
.leader:focus-within .leader__caption {
	background: rgba(21, 48, 91, 0.92);
}

.leader__name {
	display: block;
	font-size: 1.125rem;
}

.leader__role {
	display: block;
	margin-top: 4px;
	font-size: 1rem;
}

.leader__detail {
	max-height: 0;
	overflow: hidden;
	opacity: 0;
	font-size: 0.875rem;
	transition: max-height 0.4s ease, opacity 0.4s ease;
}

.leader:hover .leader__detail,
.leader:focus-within .leader__detail {
	max-height: 420px;
	opacity: 1;
}

.leader__detail h3 {
	margin: 12px 0 4px;
	color: var(--orange);
	font-size: 0.875rem;
}

.leader__detail p {
	margin: 10px 0 0;
}

.leader__detail h3 + p {
	margin-top: 0;
}

.leader__detail .leader__links {
	display: flex;
	justify-content: center;
	gap: 10px;
	margin-top: 14px;
}

.leader__links a {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--orange);
	color: var(--navy-deep);
}

.leader__links a:hover {
	background: var(--paper);
	color: var(--navy-deep);
}

.leader__links svg {
	width: 20px;
	height: 20px;
	fill: currentColor;
}

/* =========================================================
   12. JOBS
   ========================================================= */
.job-list {
	margin: 0 0 20px;
	padding: 0;
	list-style: none;
}

.job-card {
	margin-bottom: 30px;
}

.job-card__image {
	display: block;
	width: 300px;
	margin-bottom: 10px;
}

.job-card h2 {
	margin-bottom: 8px;
	font-size: 1.125rem;
}

.job-card h2 a {
	text-decoration: none;
}

.job-card p {
	margin-bottom: 10px;
	font-size: 0.8125rem;
}

.job-card__share {
	display: flex;
	gap: 6px;
	margin: 14px 0 0;
	padding: 0;
	list-style: none;
}

.job-card__share a {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border-radius: var(--radius-social);
	background: var(--slate);
	color: var(--paper);
}

.job-card__share a:hover {
	background: var(--navy-deep);
	color: var(--paper);
}

.job-card__share svg {
	width: 20px;
	height: 20px;
	fill: currentColor;
}

.job-body th,
.job-body td {
	padding: 8px 12px 8px 0;
	text-align: left;
	vertical-align: top;
	overflow-wrap: anywhere;
}

.job-body th {
	width: 26%;
	color: var(--navy);
}

.job-body dt {
	font-weight: 700;
	color: var(--navy);
}

.job-body dd {
	margin: 0 0 12px;
}

.job-apply {
	margin-top: 30px;
	text-align: center;
}

/* =========================================================
   13. EVENTS
   ========================================================= */
.event-list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.event-list__item {
	display: grid;
	grid-template-columns: 11rem 1fr;
	gap: 6px 24px;
	padding: 14px 0;
	border-bottom: 1px solid var(--line);
}

.event-list__date {
	color: var(--ink-strong);
	font-weight: 700;
}

.event-list__item h3 {
	margin: 0 0 4px;
}

.event-list__item p {
	margin: 0;
}

/* =========================================================
   14. FORMS
   ========================================================= */
.sfap-form {
	margin-top: 25px;
}

.sfap-form .cf7-row {
	margin-bottom: 16px;
}

.sfap-form .cf7-row--split {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0 24px;
	margin-bottom: 0;
}

.sfap-form .cf7-row > label,
.sfap-form legend {
	display: block;
	color: var(--ink-strong);
	font-weight: 700;
}

.sfap-form abbr {
	color: #b3261e;
	text-decoration: none;
}

.sfap-form fieldset {
	margin: 0 0 16px;
	padding: 0;
	border: 0;
}

.sfap-form input[type="text"],
.sfap-form input[type="email"],
.sfap-form input[type="tel"],
.sfap-form input[type="url"],
.sfap-form input[type="number"],
.sfap-form input[type="date"],
.sfap-form select,
.sfap-form textarea {
	display: block;
	width: 100%;
	min-height: 38px;
	margin-top: 6px;
	padding: 6px 10px;
	border: 1px solid #8a8a8a;
	border-radius: var(--radius-btn);
	background: var(--paper);
	color: var(--ink-strong);
	font: inherit;
	font-weight: 400;
	accent-color: var(--navy);
}

.sfap-form .wpcf7-list-item {
	display: block;
	margin: 4px 0 0;
	font-weight: 400;
}

.sfap-form .wpcf7-list-item label {
	display: flex !important;
	align-items: flex-start;
	gap: 8px;
	min-height: 24px;
}

.sfap-form .wpcf7-not-valid-tip {
	margin-top: 4px;
	color: #b3261e;
	font-size: 0.8125rem;
	font-weight: 400;
}

.sfap-form .wpcf7-response-output {
	margin: 16px 0 0;
	padding: 12px 15px;
	border: 1px solid var(--line);
	border-left: 4px solid var(--orange);
	background: var(--tint);
}

.form-success {
	padding: 25px;
	border-left: 4px solid var(--orange);
	background: var(--tint);
}

.form-success h2 {
	color: var(--navy);
}

.sfap-form h2 {
	margin-top: 30px;
	font-size: var(--h3);
}

.form-hint {
	margin: 0 0 12px;
	font-size: 0.875rem;
}

.form-step {
	margin: 0 0 10px;
}

.form-step__nav {
	margin: 20px 0;
}

.form-total {
	margin: 20px 0;
	padding: 14px 0;
	border-top: 2px solid var(--orange);
	border-bottom: 1px solid var(--line);
	color: var(--navy);
	font-size: 1.25rem;
	font-weight: 700;
}

.sfap-form .form-confirmation {
	display: none;
}

.form-success > :last-child {
	margin-bottom: 0;
}

/* =========================================================
   15. SEARCH AND INDEX
   ========================================================= */
.index-post {
	padding: 0 0 25px;
	margin-bottom: 25px;
	border-bottom: 1px solid var(--line);
}

.index-post h2 a {
	text-decoration: none;
}

.search-form {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	align-items: flex-end;
	max-width: 520px;
	margin: 0 0 25px;
}

.search-form .cf7-row {
	flex: 1 1 240px;
	margin: 0;
}

.quick-links {
	margin-left: 0;
	list-style: none;
}

.quick-links li {
	margin-bottom: 8px;
}

.nav-links {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.nav-links .page-numbers {
	display: inline-block;
	min-width: 32px;
	padding: 5px 10px;
	border: 1px solid var(--line);
	text-align: center;
	text-decoration: none;
}

.nav-links .current {
	background: var(--navy);
	color: var(--paper);
}

/* =========================================================
   16. SOCIAL LINKS AND FOOTER
   ========================================================= */
.social-links {
	padding: 20px 0 0;
}

.social-links ul {
	display: flex;
	justify-content: center;
	gap: 5px;
	margin: 0;
	padding: 0 0 35px;
	border-bottom: 1px solid var(--line);
	list-style: none;
}

.social-links a {
	display: grid;
	place-items: center;
	width: 50px;
	height: 50px;
	border-radius: var(--radius-social);
	background: #3b5998;
	color: var(--paper);
}

.social-links a:hover {
	background: var(--navy-deep);
	color: var(--paper);
}

.social-links svg {
	width: 25px;
	height: 25px;
	flex-shrink: 0;
	fill: currentColor;
}

.site-footer {
	margin-top: 55px;
	color: var(--paper);
}

.footer-main {
	min-height: 86px;
	padding: 30px 0;
	border-top: 5px solid var(--orange);
	background: var(--navy);
}

.footer-main ul {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 24px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.site-footer a {
	color: var(--paper);
	text-decoration: underline;
	text-underline-offset: 2px;
}

.site-footer a:hover {
	color: #d5d5d5;
}

.footer-bottom-band {
	padding: 20px 0;
	background: var(--navy-deep);
}

.footer-bottom {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: 1rem;
}

.footer-bottom__credit {
	text-align: right;
}

.footer-policies ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 1.25rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

/* =========================================================
   17. COOKIE BANNER
   ========================================================= */
.cookie-banner {
	position: fixed;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 200;
	padding: 16px 0;
	border-top: 5px solid var(--orange);
	background: var(--navy-deep);
	color: var(--paper);
	transform: translateY(100%);
	transition: transform 0.35s ease;
}

.cookie-banner.is-visible {
	transform: translateY(0);
}

.cookie-banner .container {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px 24px;
}

.cookie-banner p {
	flex: 1 1 320px;
	margin: 0;
}

.cookie-banner a {
	color: var(--paper);
	text-decoration: underline;
}

.cookie-banner__actions {
	display: flex;
	gap: 10px;
}

.cookie-banner__accept,
.cookie-banner__decline {
	min-width: 110px;
}

.cookie-banner .btn {
	border-color: var(--paper);
	background: var(--paper);
	color: var(--navy-deep);
}

.cookie-banner .btn:hover {
	background: var(--orange);
	border-color: var(--orange);
	color: var(--navy-deep);
}

/* =========================================================
   18. SCROLL TO TOP
   ========================================================= */
.scroll-top {
	position: fixed;
	right: 20px;
	bottom: 20px;
	z-index: 100;
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	border-radius: var(--radius-btn);
	background: var(--navy);
	color: var(--paper);
	cursor: pointer;
	opacity: 0;
	visibility: hidden;
	transition: opacity var(--ease), visibility var(--ease);
}

.scroll-top.is-visible {
	opacity: 1;
	visibility: visible;
}

.scroll-top svg {
	width: 20px;
	height: 20px;
	flex-shrink: 0;
	fill: currentColor;
}

.site-wrapper:has(.cookie-banner.is-visible) .scroll-top {
	bottom: 150px;
}

/* =========================================================
   19. RESPONSIVE
   ========================================================= */
@media (max-width: 1169px) {
	/* Primary nav: tighter links so six items stay on one row. */
	.main-nav a {
		padding: 10px 15px;
		font-size: 0.9375rem;
	}
}

@media (max-width: 1024px) {
	.hero__caption {
		top: 60%;
	}
}

@media (max-width: 900px) {
	.site-branding .container {
		justify-content: center;
	}

	.main-nav {
		background: transparent;
	}

	.nav-toggle {
		display: flex;
	}

	.main-nav ul {
		display: none;
		background: var(--navy);
	}

	.main-nav.is-open ul {
		display: block;
	}

	.main-nav a,
	.main-nav li:first-child > a {
		padding: 12px 15px;
		border: 0;
		border-bottom: 1px solid var(--line);
	}

	.main-nav ul ul {
		position: static;
		box-shadow: none;
	}

	.main-nav ul ul a,
	.main-nav ul ul li:first-child > a {
		padding: 12px 15px 12px 30px;
	}

	.main-nav .menu-item-has-children > a::after {
		display: none;
	}

	.leader-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 768px) {
	.top-bar .container {
		justify-content: center;
		padding-block: 8px;
	}

	.hero__prev,
	.hero__next {
		width: 44px;
		height: 44px;
		margin-top: -22px;
	}

	.hero__prev { left: 0; }
	.hero__next { right: 0; }

	.sfap-form .cf7-row--split {
		grid-template-columns: 1fr;
	}

	.event-list__item {
		grid-template-columns: 1fr;
	}

	.job-body table,
	.job-body tbody,
	.job-body tr,
	.job-body th,
	.job-body td {
		display: block;
		width: 100%;
	}

	.job-body th {
		padding-bottom: 0;
	}

	.footer-bottom {
		grid-template-columns: 1fr;
		text-align: center;
	}

	.footer-bottom__credit {
		text-align: center;
	}
}

@media (max-width: 480px) {
	.top-bar__notice {
		padding-left: 0;
		border-left: 0;
	}

	.hero__caption {
		width: calc(100% - 30px);
	}

	.leader-grid {
		grid-template-columns: 1fr;
	}

	.job-card__image {
		width: 100%;
	}

	.cookie-banner__actions {
		width: 100%;
	}

	.cookie-banner .btn {
		flex: 1;
	}
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		transition: none !important;
		scroll-behavior: auto !important;
	}
}

/* =========================================================
   20. NAV HOVER OVERRIDE
   ========================================================= */
.main-nav a:hover,
.main-nav a:focus-visible,
.main-nav li:hover > a,
.main-nav .current-menu-item > a,
.main-nav .current-menu-ancestor > a,
.main-nav .current_page_item > a {
	background: var(--orange);
	color: var(--navy-deep);
}
