/* ==========================================================================
   icf-components.css — Header, footer, and shared component styles
   ==========================================================================
   Loaded after: icf-styles.css
   ========================================================================== */


/* ============================================
   HEADER v3 — Clean flexbox
   Slide-down search · Mobile accordion · A11y
   ============================================ */

/* --- Sticky --- */
.icf-header {
	background: #fff;
	position: sticky;
	top: 0;
	z-index: 9999;
	border-bottom: 1px solid #ddd;
	transition: top 0.25s ease;
}
.icf-header.scrolled {
	top: -26px;
}
.icf-header.scrolled .icf-topbar {
	position: relative;
	top: 26px;
}

/* --- Topbar --- */
.icf-topbar {
	padding: 10px 30px 6px;
	display: flex;
	justify-content: flex-end;
	position: relative;
	top: 0;
	transition: top 0.25s ease;
	align-items: center;
}
.icf-topbar-links {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	gap: 6px;
}
.icf-topbar-links li a {
	color: #1d3b3b;
	font-size: 12px;
	font-weight: 700;
	text-decoration: none;
	letter-spacing: 0.3px;
	padding: 4px 8px;
}
.icf-topbar-links li a::before {
	content: '';
	display: inline-block;
	width: 9px;
	height: 9px;
	margin-right: 3px;
	vertical-align: middle;
	position: relative;
	top: -1px;
	left: 1px;
	background-color: #7d1c49;
	-webkit-mask-image: url('/imgs/ui/caret5.svg');
	-webkit-mask-size: contain;
	-webkit-mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-image: url('/imgs/ui/caret5.svg');
	mask-size: contain;
	mask-repeat: no-repeat;
	mask-position: center;
}
.icf-topbar-links li a:hover {
	color: #7d1c49;
}

/* --- Main header row (desktop: logo + nav side by side) --- */
.icf-header-row {
	display: flex;
	align-items: flex-end;
	padding: 0 30px 6px;
}
.icf-header-main {
	flex-shrink: 0;
	display: flex;
	align-items: center;
}
.icf-header-logo {
	flex-shrink: 0;
}
.icf-header-logo a {
	display: block;
	text-decoration: none;
}
.icf-header-logo img {
	max-width: 196px;
	height: auto;
	position: relative;
	top: -36px;
	margin-bottom: -36px;
	transition: max-width 0.25s ease, top 0.25s ease, margin-bottom 0.25s ease;
}

/* --- Scrolled state: shrink logo --- */
.icf-header.scrolled .icf-header-logo img {
	max-width: 140px;
	top: -10px;
	margin-bottom: -10px;
}
.icf-header.scrolled .icf-header-row {
	padding-bottom: 4px;
}

/* --- Nav container --- */
.icf-nav {
	flex: 1;
	display: flex;
	justify-content: flex-end;
	align-items: flex-end;
}

/* --- Nav list --- */
.icf-nav-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	align-items: center;
}
.icf-nav-list > li {
	position: relative;
}
.icf-nav-list > li > a {
	display: block;
	padding: 10px 14px;
	color: #1d3b3b;
	font-size: 16px;
	font-weight: 400;
	text-transform: uppercase;
	text-decoration: none;
	letter-spacing: 0.5px;
	white-space: nowrap;
	border-bottom: 2px solid transparent;
	transition: background-color 0.2s, border-color 0.2s, color 0.2s;
}
.icf-nav-list > li:last-child > a {
	padding-right: 14px;
}
.icf-nav-list > li > a:hover,
.icf-nav-list > li > a:focus,
.icf-nav-list > li.active > a {
	background: #7d1c49;
	color: #fff;
	border-bottom-color: #7d1c49;
}
/* Dropdown caret (desktop only) — custom SVG from logo */
.icf-nav-list > li.has-dropdown > a::after {
	content: '';
	display: inline-block;
	width: 10px;
	height: 10px;
	margin-left: 6px;
	vertical-align: middle;
	background-color: #7d1c49;
	-webkit-mask-image: url('/imgs/ui/caret5.svg');
	-webkit-mask-size: contain;
	-webkit-mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-image: url('/imgs/ui/caret5.svg');
	mask-size: contain;
	mask-repeat: no-repeat;
	mask-position: center;
	transform: rotate(90deg);
}
.icf-nav-list > li.has-dropdown > a:hover::after,
.icf-nav-list > li.has-dropdown > a:focus::after,
.icf-nav-list > li.has-dropdown.active > a::after {
	background-color: #fff;
}

/* --- Dropdown toggle buttons (mobile only, hidden desktop) --- */
.icf-dd-toggle {
	display: none;
}

/* --- Dropdown menus (hidden by default) --- */
.icf-dropdown {
	display: none;
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 240px;
	background: #fff;
	box-shadow: 0 4px 12px rgba(0,0,0,0.15);
	list-style: none;
	margin: 0;
	padding: 0;
	z-index: 999;
}
.icf-dropdown li a {
	display: block;
	padding: 12px 18px;
	color: #1d3b3b;
	font-size: 13px;
	font-weight: 400;
	text-transform: uppercase;
	text-decoration: none;
	border-bottom: 1px solid #f0f0f0;
	transition: background 0.15s;
}
.icf-dropdown li:last-child a {
	border-bottom: none;
}

.icf-dropdown li a:hover,
.icf-dropdown li a:focus {
	background: #f5f5f5;
	color: #1d3b3b;
}

/* --- Submenu (flyout, hidden by default) --- */
.icf-dropdown li.has-submenu {
	position: relative;
}
.icf-dropdown li.has-submenu > a {
	display: flex;
	align-items: center;
	justify-content: space-between;
}
.icf-dropdown li.has-submenu > a::after {
	content: '';
	display: inline-block;
	width: 8px;
	height: 8px;
	margin-left: 12px;
	flex-shrink: 0;
	background-color: #7d1c49;
	-webkit-mask-image: url('/imgs/ui/caret5.svg');
	-webkit-mask-size: contain;
	-webkit-mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-image: url('/imgs/ui/caret5.svg');
	mask-size: contain;
	mask-repeat: no-repeat;
	mask-position: center;
	transform: rotate(90deg);
	transition: transform 0.2s ease;
}
.icf-submenu {
	display: none;
	list-style: none;
	margin: 0;
	padding: 0;
}

/* --- Search button (topbar) --- */
.icf-search-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	background: none;
	border: none;
	cursor: pointer;
	color: #1d3b3b;
	font-size: 13px;
	margin-left: 6px;
	padding: 0;
	-webkit-appearance: none;
	appearance: none;
}
.icf-search-btn:hover { color: #7d1c49; }
.icf-search-btn:focus-visible {
	outline: 3px solid var(--icf-focus);
	outline-offset: 2px;
}

/* Header inputs: ensure focus ring on both click and keyboard */
.icf-header input:focus-visible,
.icf-header input:focus {
	outline: 3px solid var(--icf-focus);
	outline-offset: 2px;
	background-color: inherit;
	color: inherit;
}

/* --- Slide-down search bar --- */
.icf-search-bar {
	max-height: 0;
	overflow: hidden;
	background: #f5f5f5;
	border-top: 1px solid transparent;
	transition: max-height 0.3s ease, border-top-color 0.3s ease;
}
.icf-search-bar.open {
	max-height: 80px;
	border-top-color: #e0e0e0;
}
.icf-search-bar form {
	display: flex;
	max-width: 600px;
	margin: 0 auto;
	padding: 14px 30px;
}
.icf-search-bar input[type="text"] {
	flex: 1;
	padding: 10px 14px;
	border: 1px solid #ccc;
	border-right: none;
	font-size: 15px;
	font-family: 'Inter', sans-serif;
	border-radius: 3px 0 0 3px;
	outline: none;
	background: #fff;
}
.icf-search-bar input[type="text"]:focus {
	border-color: #ccc;
}
.icf-search-bar button[type="submit"] {
	background: #7d1c49;
	color: #fff;
	border: 1px solid #7d1c49;
	padding: 10px 20px;
	font-size: 15px;
	font-family: 'Inter', sans-serif;
	cursor: pointer;
	border-radius: 0 3px 3px 0;
}
.icf-search-bar button[type="submit"]:hover {
	background: #5c1336;
	border-color: #5c1336;
}

/* --- Mobile toggle (hamburger) --- */
.icf-mobile-toggle {
	display: none;
	align-items: center;
	justify-content: center;
	background: #7d1c49;
	border: none;
	color: #fff;
	font-size: 16px;
	padding: 6px 12px;
	cursor: pointer;
	margin-left: auto;
	border-radius: 3px;
	min-width: 44px;
	min-height: 44px;
}
.icf-mobile-toggle:hover { background: #5c1336; }
.icf-mobile-toggle:focus-visible {
	outline: 3px solid var(--icf-focus);
	outline-offset: 2px;
}

/* Mobile search (hidden on desktop) */
.icf-mobile-search { display: none; }

/* ============================================
   HEADER — DESKTOP (1500px+)
   ============================================ */
@media (min-width: 1500px) {
	/* Dropdown fade/slide animation */
	.icf-dropdown {
		opacity: 0;
		transform: translateY(-4px);
		transition: opacity 0.2s ease, transform 0.2s ease;
	}
	/* Show + animate on hover/focus/keyboard */
	.icf-nav-list > li:hover > .icf-dropdown,
	.icf-nav-list > li:focus-within > .icf-dropdown,
	.icf-nav-list > li.kb-open > .icf-dropdown {
		display: block;
		opacity: 1;
		transform: translateY(0);
	}
	/* Right-align last 3 dropdowns to prevent viewport overflow */
	.icf-nav-list > li:nth-last-child(-n+3) > .icf-dropdown {
		left: auto;
		right: 0;
	}
	/* Submenu: inline expansion within dropdown */
	.icf-submenu {
		position: static;
		width: 100%;
		background: #fff;
		box-shadow: none;
		display: block;
		max-height: 0;
		overflow: hidden;
		transition: max-height 0.25s ease;
	}
	.icf-submenu li a {
		padding-left: 40px;
		font-size: 12px;
		position: relative;
	}
	.icf-submenu li a::before {
		content: "\203A";
		color: #7d1c49;
		font-weight: 700;
		position: absolute;
		left: 30px;
	}
	.icf-submenu li:last-child a {
		border-bottom: 1px solid #f0f0f0;
	}
	/* Show submenu on click (JS toggles class) or keyboard focus */
	.icf-dropdown li.has-submenu.submenu-open > .icf-submenu,
	.icf-dropdown li.has-submenu:focus-within > .icf-submenu {
		max-height: 300px;
	}
	/* Rotate caret when submenu is open */
	.icf-dropdown li.has-submenu.submenu-open > a::after {
		transform: rotate(180deg);
	}
	/* Bold dropdown links on hover */
	.icf-dropdown li a:hover,
	.icf-dropdown li a:focus {
		font-weight: 700;
	}
}

/* Tighten nav on smaller desktops (1500-1699px) */
@media (min-width: 1500px) and (max-width: 1699px) {
	.icf-nav-list > li > a {
		padding: 10px 10px;
		letter-spacing: 0.3px;
	}
	.icf-topbar-links li a {
		font-size: 12px;
		padding: 4px 5px;
	}
}

/* ============================================
   HEADER — MOBILE / TABLET (below 1500px)
   ============================================ */
@media (max-width: 1499px) {
	/* Topbar: compact */
	.icf-topbar {
		padding: 2px 15px 0;
		justify-content: center;
	}
	.icf-topbar-links {
		flex-wrap: wrap;
		justify-content: center;
		gap: 4px 8px;
	}
	.icf-topbar-links li a {
		font-size: 12px;
		padding: 2px 5px;
	}

	/* Header row: stack vertically on mobile */
	.icf-header-row {
		display: flex;
		flex-direction: column;
		align-items: stretch;
		padding: 0;
	}

	/* Logo row: logo left, hamburger right */
	.icf-header-main {
		width: 100%;
		padding: 2px 15px 4px;
		display: flex;
		align-items: center;
		justify-content: space-between;
	}
	.icf-header-logo img {
		max-width: 160px;
		top: -5px;
		margin-bottom: -5px;
	}
	/* Prevent scrolled state from changing header on mobile */
	.icf-header.scrolled .icf-header-logo img {
		max-width: 160px;
		top: -5px;
		margin-bottom: -5px;
	}
	.icf-header.scrolled .icf-header-row {
		padding-bottom: inherit;
	}
	.icf-header.scrolled .icf-header-main {
		padding: 2px 15px 4px;
	}

	/* Show hamburger */
	.icf-mobile-toggle { display: flex; }

	/* Nav: slide down on open */
	.icf-nav {
		display: flex;
		flex-direction: column;
		width: 100%;
		max-height: 0;
		overflow: hidden;
		transition: max-height 0.3s ease;
	}
	.icf-nav.open { max-height: 800px; }

	/* Nav list: vertical, dark teal bg */
	.icf-nav-list {
		flex-direction: column;
		width: 100%;
		padding: 0;
		background: #1d3b3b;
	}
	.icf-nav-list > li {
		width: 100%;
		border-bottom: 1px solid rgba(255,255,255,0.08);
		display: flex;
		flex-wrap: wrap;
	}
	.icf-nav-list > li > a {
		flex: 1;
		color: #fff;
		padding: 0 20px;
		font-size: 15px;
		border-bottom: none;
		white-space: normal;
		min-height: 48px;
		display: flex;
		align-items: center;
	}
	.icf-nav-list > li > a:hover,
	.icf-nav-list > li > a:focus {
		background: rgba(255,255,255,0.08);
		color: #fff;
		border-bottom: none;
	}

	/* Hide desktop dropdown caret */
	.icf-nav-list > li.has-dropdown > a::after { display: none; }

	/* Show dropdown toggle button */
	.icf-dd-toggle {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 56px;
		min-height: 48px;
		background: transparent;
		border: none;
		border-left: 1px solid rgba(255,255,255,0.08);
		color: #fff;
		font-size: 14px;
		cursor: pointer;
		padding: 0;
		-webkit-appearance: none;
		appearance: none;
	}
	.icf-dd-toggle:hover { background: rgba(255,255,255,0.08); }
	.icf-dd-toggle:focus-visible {
		outline: 3px solid var(--icf-focus);
		outline-offset: -3px;
	}
	.icf-dd-arrow {
		transition: transform 0.2s ease;
	}
	.icf-dd-toggle[aria-expanded="true"] .icf-dd-arrow {
		transform: rotate(180deg);
	}

	/* Dropdowns: accordion style with easing */
	.icf-dropdown {
		position: static;
		box-shadow: none;
		background: rgba(0,0,0,0.2);
		min-width: 100%;
		width: 100%;
		display: block;
		max-height: 0;
		overflow: hidden;
		transition: max-height 0.25s ease;
	}
	.icf-dropdown.is-open { max-height: 500px; }

	.icf-dropdown li a {
		color: rgba(255,255,255,0.9);
		padding: 12px 20px 12px 35px;
		font-size: 14px;
		border-bottom-color: rgba(255,255,255,0.05);
		min-height: 44px;
		display: flex;
		align-items: center;
	}
	.icf-dropdown li a:hover,
	.icf-dropdown li a:focus {
		background: rgba(255,255,255,0.08);
		color: #fff;
	}

	/* Submenus: auto-show within open dropdown */
	.icf-dropdown li.has-submenu > a::after { display: none; }
	.icf-dropdown.is-open .icf-submenu {
		display: block;
		position: static;
		box-shadow: none;
		background: rgba(0,0,0,0.15);
		width: 100%;
	}
	.icf-submenu li a {
		padding-left: 35px;
		font-size: 13px;
		color: rgba(255,255,255,0.9);
	}
	.icf-submenu li a::before {
		content: "\2013\00a0";
	}
	.icf-submenu li a:hover,
	.icf-submenu li a:focus {
		background: rgba(255,255,255,0.08);
		color: #fff;
	}

	/* Hide desktop search icon + bar on mobile */
	.icf-search-btn { display: none; }
	.icf-search-bar { display: none; }

	/* Show mobile search at bottom of nav */
	.icf-mobile-search {
		display: block;
		width: 100%;
		padding: 12px 20px;
		background: rgba(0,0,0,0.3);
		box-sizing: border-box;
	}
	.icf-mobile-search form { display: flex; }
	.icf-mobile-search input[type="text"] {
		flex: 1;
		padding: 10px 14px;
		border: none;
		font-size: 15px;
		font-family: 'Inter', sans-serif;
		border-radius: 3px 0 0 3px;
		outline: none;
	}
	.icf-mobile-search button[type="submit"] {
		background: #7d1c49;
		color: #fff;
		border: none;
		padding: 10px 16px;
		font-size: 15px;
		font-family: 'Inter', sans-serif;
		cursor: pointer;
		border-radius: 0 3px 3px 0;
	}
}

/* ~800px and below */
@media (max-width: 800px) {
	.icf-header-main {
		padding: 8px 15px;
	}
}

/* Small phones */
@media (max-width: 600px) {
	.icf-topbar { padding: 4px 10px 2px; }
	.icf-topbar-links li a {
		font-size: 10px;
		padding: 1px 3px;
		letter-spacing: 0;
	}
	.icf-topbar-links li a::before {
		font-size: 11px;
		margin-right: 1px;
	}
	.icf-header-main { padding: 6px 10px; }
	.icf-header-logo img { max-width: 130px; }
}
@media (max-width: 400px) {
	.icf-topbar-links li a { font-size: 9px; padding: 1px 2px; }
	.icf-header-logo img { max-width: 110px; }
}


/* ============================================
   FOOTER
   ============================================ */

/* --- Footer main --- */
.icf-footer-main {
	background: #1d3b3b;
	color: #fff;
	padding: 48px 5% 0;
}
.icf-footer-main h2 {
	font-family: var(--icf-serif);
	font-style: italic;
	font-size: 38px;
	font-weight: 400;
	color: #fff;
	margin: 0 0 48px;
}
.icf-footer-underline {
	text-decoration: underline;
	text-underline-offset: 4px;
}

/* --- Columns --- */
.icf-footer-columns {
	display: flex;
	flex-wrap: wrap;
	gap: 40px;
	margin-bottom: 24px;
}
.icf-footer-col {
	flex: 1 1 0;
	min-width: 0;
}
.icf-footer-col h3 {
	font-family: 'Inter', Arial, sans-serif;
	font-size: 20px;
	font-weight: 700;
	color: #fff;
	margin: 0 0 2px;
	text-transform: uppercase;
	letter-spacing: 1px;
}
.icf-footer-col p,
.icf-footer-col a {
	font-size: 15px;
	line-height: 1.8;
	color: rgba(255,255,255,0.85);
	margin: 0;
}
.icf-footer-col > p {
	padding-left: 16px;
	position: relative;
	margin-bottom: 6px;
}
.icf-footer-col > p::before {
	content: "\2022";
	position: absolute;
	left: 0;
	color: rgba(255,255,255,0.5);
}
.icf-footer-col > p:last-of-type {
	margin-bottom: 0;
}
.icf-footer-col ul {
	list-style: disc;
	margin: 0;
	padding-left: 16px;
}
.icf-footer-col li {
	font-size: 15px;
	line-height: 1.8;
	color: rgba(255,255,255,0.85);
	margin-bottom: 4px;
}
.icf-footer-col li::marker {
	color: rgba(255,255,255,0.5);
}
.icf-footer-col li:last-child {
	margin-bottom: 0;
}
.icf-footer-col a {
	text-decoration: underline;
	text-decoration-color: rgba(255,255,255,0.85);
	text-underline-offset: 2px;
}
.icf-footer-col a:hover {
	color: #fff;
	text-decoration-color: #fff;
}
.icf-footer-col .icf-footer-address {
	margin-top: 20px;
	line-height: 1.4;
	padding-left: 0;
}
.icf-footer-col .icf-footer-address::before {
	display: none;
}
.icf-footer-col .icf-footer-address p {
	line-height: 1.2;
}
.icf-footer-col .icf-footer-address strong {
	display: block;
	margin-bottom: 4px;
	color: #fff;
}

/* --- Seals column --- */
.icf-footer-seals {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 20px;
}
.icf-footer-seals-row {
	display: flex;
	align-items: center;
	gap: 16px;
}
.icf-footer-seals img {
	max-height: 70px;
	width: auto;
}
.icf-footer-ncn {
	font-size: 13px;
	color: rgba(255,255,255,0.7);
	line-height: 1.4;
	text-align: right;
	margin-top: 10px;
}
.icf-footer-ncn img {
	max-height: 50px;
	width: auto;
	filter: brightness(0) invert(1);
	margin-top: 6px;
}

/* --- Bottom bar --- */
.icf-footer-bottom {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 30px;
	padding: 36px 0 24px;
}
.icf-footer-btn {
	display: inline-block;
	padding: 14px 32px;
	background: #7d1c49;
	color: #fff;
	border: 2px solid white;
	font-family: 'Inter', sans-serif;
	font-size: var(--icf-btn);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 1.5px;
	text-decoration: none;
	border-radius: 0;
	transition: background-color 0.2s, color 0.2s, border-color 0.2s;
}
.icf-footer-btn:hover, .icf-footer-btn:active, .icf-footer-btn:focus {
	background: var(--icf-moss-light);
	color: #7d1c49;
	border-color: white;
	text-decoration: none;
}
.icf-footer-socials {
	display: flex;
	gap: 20px;
	list-style: none;
	margin: 0;
	padding: 0;
}
.icf-footer-socials a {
	color: #fff;
	font-size: 22px;
	opacity: 0.85;
	transition: opacity 0.2s;
}
.icf-footer-socials a:hover {
	opacity: 1;
	text-decoration: none;
}
.icf-footer-tax {
	margin-left: auto;
	font-size: 14px;
	color: rgba(255,255,255,0.85);
}

/* --- Copyright bar --- */
.icf-footer-copyright {
	background: #152b2b;
	padding: 20px 5%;
	text-align: center;
}
.icf-footer-copyright p {
	margin: 0;
	font-size: 14px;
	color: rgba(255,255,255,0.7);
	letter-spacing: 0.5px;
}
.icf-footer-copyright a {
	color: rgba(255,255,255,0.85);
	text-decoration: underline;
}
.icf-footer-copyright a:hover {
	color: #fff;
}

/* --- Footer desktop tweaks --- */
@media (min-width: 992px) {
	.icf-footer-seals-row {
		margin-top: -40px;
	}
}

/* --- Footer tablet --- */
@media (max-width: 991px) {
	.icf-footer-col {
		flex: 1 1 calc(50% - 20px);
		min-width: calc(50% - 20px);
	}
	.icf-footer-seals {
		align-items: flex-start;
	}
	.icf-footer-ncn {
		text-align: left;
	}
	.icf-footer-tax {
		margin-left: 0;
	}
}

/* --- Footer mobile --- */
@media (max-width: 599px) {
	.icf-footer-main {
		padding: 40px 20px 0;
	}
	.icf-footer-main h2 {
		font-size: 28px;
		margin-bottom: 30px;
		text-align: center;
	}
	.icf-footer-col {
		flex: 1 1 100%;
		min-width: 100%;
		text-align: center;
	}
	.icf-footer-col h3 {
		text-align: center;
		margin-top: 5px;
	}
	.icf-footer-col > p {
		width: fit-content;
		margin-left: auto;
		margin-right: auto;
		margin-bottom: 6px;
	}
	.icf-footer-col > p:last-of-type {
		margin-bottom: 0;
	}
	.icf-footer-col ul {
		width: fit-content;
		margin-left: auto;
		margin-right: auto;
		padding-left: 0;
		list-style-position: inside;
	}
	.icf-footer-seals {
		align-items: center;
	}
	.icf-footer-ncn {
		text-align: center;
	}
	.icf-footer-bottom {
		flex-direction: column;
		align-items: center;
		gap: 20px;
	}
	.icf-footer-tax {
		margin-left: 0;
	}
	.icf-footer-copyright {
		padding: 20px;
	}
}
