/* =====================================================================
   Colonial Hunting — Footer
   Scoped to .chf. Link / button rules out-rank Hello Elementor's
   reset.css (pink #c36 links, underline on visited) without !important.
   ===================================================================== */

.chf {
	--_bg: var(--chf-bg, #241C14);
	--_text: var(--chf-text, #D9CDB6);
	--_heading: var(--chf-heading, #F3EBD9);
	--_accent: var(--chf-accent, #A7854A);
	--_script: var(--chf-script, #C7B58A);
	--_button: var(--chf-button, #556B45);
	--_line: var(--chf-line, rgba(167, 133, 74, 0.28));
	--_maxw: var(--chf-maxw, 1180px);

	position: relative;
	display: block;
	margin: 0;
	color: var(--_text);
	font-family: "Lora", Georgia, serif;
	font-size: 15px;
	line-height: 1.65;
	background-color: var(--_bg);
	background-image:
		radial-gradient(ellipse at 15% 0%, rgba(167, 133, 74, 0.14), transparent 55%),
		radial-gradient(ellipse at 90% 100%, rgba(107, 68, 35, 0.35), transparent 60%);
	background-size: cover;
	background-position: center;
}
.chf *, .chf *::before, .chf *::after { box-sizing: border-box; }

/* torn paper top edge — same colour as the footer so it "tears" into the page above */
.chf .chf-edge {
	position: absolute; left: 0; right: 0; top: -13px; height: 14px; z-index: 2;
	background: var(--_bg);
	clip-path: polygon(0 100%, 0% 4px, 2.08% 2.9px, 4.17% 1.4px, 6.25% 5.9px, 8.33% 0.7px, 10.42% 4.8px, 12.5% 3.3px, 14.58% 0.5px, 16.67% 4.6px, 18.75% 0.3px, 20.83% 3.9px, 22.92% 0.6px, 25% 0.8px, 27.08% 3.8px, 29.17% 7.4px, 31.25% 1.1px, 33.33% 2px, 35.42% 5.6px, 37.5% 8.5px, 39.58% 5.2px, 41.67% 3.6px, 43.75% 8.8px, 45.83% 0.4px, 47.92% 7.7px, 50% 2.6px, 52.08% 1.3px, 54.17% 1.1px, 56.25% 2.8px, 58.33% 7.3px, 60.42% 1.6px, 62.5% 5.2px, 64.58% 5.8px, 66.67% 3.4px, 68.75% 4.9px, 70.83% 0.6px, 72.92% 0.5px, 75% 1.9px, 77.08% 6.1px, 79.17% 3.8px, 81.25% 2.8px, 83.33% 5.3px, 85.42% 4.1px, 87.5% 2.7px, 89.58% 7.1px, 91.67% 6.3px, 93.75% 2.2px, 95.83% 5.2px, 97.92% 4.7px, 100% 4px, 100% 100%);
	pointer-events: none;
}
.chf-edge-yes .chf { margin-top: 13px; }
.elementor-widget-chf_footer:not(.chf-edge-yes) .chf-edge { display: none; }
.chf--textured .chf-edge { background: var(--_bg); }

.chf .chf-shade { position: absolute; inset: 0; background: var(--_bg); opacity: 0.55; pointer-events: none; z-index: 0; }

.chf .chf-main {
	position: relative; z-index: 1;
	padding: clamp(48px, 7vw, 80px) 24px clamp(36px, 5vw, 56px);
}
.chf .chf-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.45fr) repeat(3, minmax(0, 1fr));
	gap: clamp(28px, 4vw, 56px);
	max-width: var(--_maxw);
	margin: 0 auto;
}
/* fewer columns when a column is empty/removed */
.chf .chf-grid:has(> .chf-col:nth-child(3):last-child) { grid-template-columns: minmax(0, 1.45fr) repeat(2, minmax(0, 1fr)); }

.chf .chf-col { min-width: 0; }

/* ---------- Brand ---------- */
.chf .chf-logo { margin: 0 0 14px; line-height: 0; }
.chf .chf-logo a { display: inline-block; border: 0; padding: 0; line-height: 0; }
.chf .chf-logo img { display: block; width: 190px; max-width: 100%; height: auto; }
.chf .chf-logo--text a {
	font-family: "Playfair Display", Georgia, serif; font-size: 24px; font-weight: 700;
	letter-spacing: 2px; line-height: 1.2; text-transform: uppercase; color: var(--_heading);
}
.chf .chf-tagline {
	margin: 0 0 12px; font-family: "Caveat", cursive; font-size: 25px; line-height: 1.2;
	color: var(--_script); transform: rotate(-2deg); transform-origin: left center;
}
.chf .chf-blurb { max-width: 360px; margin: 0 0 20px; font-size: 14.5px; color: var(--_text); }

.chf ul.chf-social { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; padding: 0; list-style: none; }
.chf ul.chf-social li { margin: 0; padding: 0; }
.chf ul.chf-social a {
	display: inline-flex; align-items: center; justify-content: center;
	width: 42px; height: 42px; padding: 0;
	color: var(--_heading); text-decoration: none;
	border: 1px solid var(--_line); border-radius: 50%; background: rgba(255, 255, 255, 0.03);
	transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}
.chf ul.chf-social a:hover,
.chf ul.chf-social a:focus-visible { color: #2B2B2B; background: var(--_accent); border-color: var(--_accent); transform: translateY(-2px); }

/* ---------- Column headings ---------- */
.chf .chf-h {
	position: relative; margin: 0 0 18px; padding: 0 0 12px;
	font-family: "Playfair Display", Georgia, serif; font-size: 15px; font-weight: 600;
	letter-spacing: 2px; line-height: 1.3; text-transform: uppercase; color: var(--_heading);
}
.chf .chf-h::after {
	content: ""; position: absolute; left: 0; bottom: 0; width: 38px; height: 2px; background: var(--_accent);
}

/* ---------- Link lists ---------- */
.chf ul.chf-links,
.chf ul.chf-contact-list { margin: 0; padding: 0; list-style: none; }
.chf ul.chf-links li,
.chf ul.chf-contact-list li { margin: 0 0 10px; padding: 0; }
.chf a,
.chf a:visited { color: var(--_text); text-decoration: none; }
.chf ul.chf-links a {
	position: relative; display: inline-block; padding: 2px 0;
	transition: color 0.2s ease, padding-left 0.2s ease;
}
.chf ul.chf-links a::before {
	content: ""; position: absolute; left: 0; top: 50%; width: 0; height: 1px; background: var(--_accent);
	transition: width 0.2s ease;
}
.chf ul.chf-links a:hover,
.chf ul.chf-links a:focus-visible,
.chf ul.chf-links .current-menu-item > a { color: var(--_accent); padding-left: 16px; }
.chf ul.chf-links a:hover::before,
.chf ul.chf-links a:focus-visible::before,
.chf ul.chf-links .current-menu-item > a::before { width: 10px; }

.chf ul.chf-links.chf-links--hunts a,
.chf ul.chf-links.chf-links--hunts li > span { display: flex; flex-direction: column; gap: 1px; }
.chf ul.chf-links.chf-links--hunts li { margin-bottom: 14px; }
.chf .chf-hunt-title { font-weight: 600; color: var(--_heading); transition: color 0.2s ease; }
.chf .chf-hunt-sub { font-size: 13px; color: var(--_text); opacity: 0.8; }
.chf .chf-links--hunts a:hover .chf-hunt-title { color: var(--_accent); }

/* ---------- Contact ---------- */
.chf ul.chf-contact-list li { display: flex; align-items: flex-start; gap: 12px; }
.chf .chf-ico { flex: 0 0 auto; width: 18px; height: 18px; }
.chf ul.chf-contact-list .chf-ico { margin-top: 4px; color: var(--_accent); }
.chf ul.chf-contact-list a { word-break: break-word; transition: color 0.2s ease; }
.chf ul.chf-contact-list a:hover,
.chf ul.chf-contact-list a:focus-visible { color: var(--_accent); }
.chf .chf-hint { font-style: italic; opacity: 0.7; }

.chf a.chf-btn,
.chf a.chf-btn:visited {
	display: inline-block; margin-top: 14px; padding: 13px 24px;
	font-family: "Playfair Display", Georgia, serif; font-size: 14px; font-weight: 600;
	letter-spacing: 1.5px; line-height: 1.2; text-transform: uppercase; text-align: center; text-decoration: none;
	color: #F3EBD9; background-color: var(--_button);
	border: 1px solid var(--_accent); border-radius: 3px;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 6px 14px rgba(0, 0, 0, 0.25);
	transition: background-color 0.25s ease, color 0.25s ease;
}
.chf a.chf-btn:hover,
.chf a.chf-btn:focus-visible { background-color: var(--_accent); color: #2B2B2B; }

.chf a:focus-visible { outline: 2px solid var(--_accent); outline-offset: 3px; box-shadow: none; border-radius: 2px; }

/* ---------- Bottom bar ---------- */
.chf .chf-bottom {
	position: relative; z-index: 1;
	border-top: 1px solid var(--_line);
	background: rgba(0, 0, 0, 0.22);
	padding: 18px 24px;
}
.chf .chf-bottom-inner {
	display: flex; flex-wrap: wrap; align-items: center; gap: 10px 26px;
	max-width: var(--_maxw); margin: 0 auto;
	font-size: 13px; letter-spacing: 0.3px; color: var(--_text);
}
.chf .chf-copy,
.chf .chf-credit { margin: 0; opacity: 0.85; }
.chf .chf-credit a { color: var(--_accent); }
.chf ul.chf-legal-links { display: flex; flex-wrap: wrap; gap: 4px 18px; margin: 0; padding: 0; list-style: none; }
.chf ul.chf-legal-links li { margin: 0; padding: 0; }
.chf ul.chf-legal-links a:hover,
.chf ul.chf-legal-links a:focus-visible { color: var(--_accent); }
.chf a.chf-top {
	display: inline-flex; align-items: center; gap: 8px; margin-left: auto;
	font-family: "Playfair Display", Georgia, serif; font-size: 12px; font-weight: 600;
	letter-spacing: 1.5px; text-transform: uppercase; color: var(--_heading);
}
.chf a.chf-top .chf-ico {
	width: 30px; height: 30px; padding: 6px; border: 1px solid var(--_line); border-radius: 50%;
	transition: background-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
}
.chf a.chf-top:hover .chf-ico { background: var(--_accent); color: #2B2B2B; transform: translateY(-2px); }

/* ---------- Tablet ---------- */
@media (max-width: 1024px) {
	.chf .chf-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 36px 28px; }
	.chf .chf-grid:has(> .chf-col:nth-child(3):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.chf a.chf-btn { padding-left: 16px; padding-right: 16px; }
	.chf .chf-brand { grid-column: 1 / -1; display: grid; grid-template-columns: auto 1fr; column-gap: 32px; align-items: start; }
	.chf .chf-brand .chf-logo { grid-row: span 3; }
}

/* ---------- Mobile ---------- */
@media (max-width: 767px) {
	.chf { font-size: 15px; text-align: center; }
	.chf .chf-main { padding-left: 20px; padding-right: 20px; }
	.chf .chf-grid,
	.chf .chf-grid:has(> .chf-col:nth-child(3):last-child) { grid-template-columns: 1fr; gap: 34px; }
	.chf .chf-brand { display: block; }
	.chf .chf-logo img { margin: 0 auto; width: 170px; }
	.chf .chf-tagline { transform: rotate(-2deg); transform-origin: center; }
	.chf .chf-blurb { margin-left: auto; margin-right: auto; }
	.chf ul.chf-social { justify-content: center; }
	.chf ul.chf-social a { width: 46px; height: 46px; }
	.chf .chf-h::after { left: 50%; margin-left: -19px; }
	/* larger tap targets on phones */
	.chf ul.chf-links li { margin: 0; }
	.chf ul.chf-links a { display: block; padding: 10px 0; }
	.chf ul.chf-links a:hover,
	.chf ul.chf-links .current-menu-item > a { padding-left: 0; }
	.chf ul.chf-links a::before { display: none; }
	.chf ul.chf-links.chf-links--hunts a,
	.chf ul.chf-links.chf-links--hunts li > span { align-items: center; padding: 8px 0; }
	.chf ul.chf-links.chf-links--hunts li { margin-bottom: 4px; }
	.chf ul.chf-contact-list li { justify-content: center; margin-bottom: 14px; }
	.chf ul.chf-contact-list li > span { text-align: left; }
	.chf a.chf-btn { display: block; width: 100%; max-width: 360px; margin: 18px auto 0; padding: 15px 20px; }
	.chf .chf-bottom { padding: 22px 20px calc(22px + env(safe-area-inset-bottom)); }
	.chf .chf-bottom-inner { flex-direction: column; gap: 12px; text-align: center; }
	.chf ul.chf-legal-links { justify-content: center; }
	.chf ul.chf-legal-links a { display: inline-block; padding: 6px 0; }
	.chf a.chf-top { margin: 6px auto 0; }
}

@media (prefers-reduced-motion: reduce) {
	.chf *, .chf *::before { transition: none !important; }
}
