/*
Theme Name: ReffingHoops Child
Theme URI: https://reffinghoops.com.au
Description: Lean child theme for Hello Elementor. Header with dropdown menu, footer, mobile call bar, page layout classes for Elementor, and the styles for camps, testimonials and FAQs.
Author: TripleIT
Author URI: https://tripleit.com.au
Template: hello-elementor
Version: 0.2.3
License: GNU General Public License v2 or later
Text Domain: reffinghoops-child
*/

:root {
	--rh-ink: #12233F;
	--rh-ground: #F6F3EC;
	--rh-card: #FFFFFF;
	--rh-line: #E5E0D4;
	--rh-muted: #475569;
	--rh-accent: #D9262A;
	--rh-accent-text: #B01E24;
	--rh-font-display: 'Archivo', system-ui, sans-serif;
	--rh-font-body: 'Inter', system-ui, sans-serif;
}

body {
	background: var(--rh-ground);
	color: var(--rh-ink);
	font-family: var(--rh-font-body);
}

h1, h2, h3, h4 {
	font-family: var(--rh-font-display);
	font-weight: 800;
	letter-spacing: -0.01em;
	color: var(--rh-ink);
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible {
	outline: 3px solid var(--rh-ink);
	outline-offset: 3px;
}

/* ---------- Buttons ---------- */
.rh-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 12px 24px;
	border-radius: 8px;
	border: 2px solid transparent;
	font-weight: 600;
	font-size: 16px;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
}
.rh-btn--primary { background: var(--rh-accent); color: #fff; }
.rh-btn--primary:hover { background: #B01E24; color: #fff; }
.rh-btn--ghost { border-color: var(--rh-ink); color: var(--rh-ink); background: transparent; }
.rh-btn--ghost:hover { background: var(--rh-ink); color: #fff; }

/* ---------- Header ---------- */
.rh-header { background: var(--rh-card); border-bottom: 1px solid var(--rh-line); }
.rh-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	max-width: 1312px;
	margin: 0 auto;
	padding: 16px 32px;
}
.rh-brand {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: var(--rh-font-display);
	font-weight: 800;
	font-size: 26px;
	color: var(--rh-ink);
	text-decoration: none;
}
.rh-brand:hover { color: var(--rh-ink); }
.rh-brand img { max-height: 52px; width: auto; }
.rh-nav ul { display: flex; gap: 28px; margin: 0; padding: 0; list-style: none; }
.rh-nav a { color: var(--rh-ink); font-weight: 500; text-decoration: none; padding: 8px 0; display: inline-block; }
.rh-nav a:hover { color: var(--rh-accent-text); }
.rh-header__actions { display: flex; align-items: center; gap: 20px; }
.rh-header__phone { font-weight: 600; color: var(--rh-ink); text-decoration: none; }
.rh-menu-toggle { display: none; }

@media (max-width: 960px) {
	.rh-header__inner { flex-wrap: wrap; padding: 12px 16px; }
	.rh-header__phone, .rh-header__actions .rh-btn { display: none; }
	.rh-menu-toggle {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 48px;
		height: 48px;
		border: 1px solid #CFC8B6;
		border-radius: 8px;
		background: #fff;
		color: var(--rh-ink);
		cursor: pointer;
	}
	.rh-nav { display: none; flex-basis: 100%; }
	.rh-nav.is-open { display: block; }
	.rh-nav ul { flex-direction: column; gap: 0; padding-top: 8px; }
	.rh-nav a { display: block; padding: 14px 0; border-top: 1px solid var(--rh-line); font-size: 17px; }
}

/* ---------- Footer ---------- */
.rh-footer { background: var(--rh-ink); color: #D5DCE8; }
.rh-footer a { color: #D5DCE8; }
.rh-footer a:hover { color: #fff; }
.rh-footer__inner {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 32px;
	max-width: 1312px;
	margin: 0 auto;
	padding: 48px 32px 24px;
	font-size: 15px;
	line-height: 1.8;
}
.rh-footer__col { flex: 1 1 220px; }
.rh-footer__brand { font-family: var(--rh-font-display); font-weight: 800; font-size: 22px; color: #fff; }
.rh-footer__legal {
	max-width: 1312px;
	margin: 0 auto;
	padding: 0 32px 32px;
	font-size: 13px;
	color: #AEB8CB;
}
.rh-footer__legal a { color: #AEB8CB; }

/* ---------- Mobile call bar (phones only) ---------- */
.rh-callbar { display: none; }
@media (max-width: 720px) {
	.rh-callbar {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 8px;
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 50;
		padding: 8px 8px calc(8px + env(safe-area-inset-bottom));
		background: var(--rh-card);
		border-top: 1px solid var(--rh-line);
	}
	.rh-callbar .rh-btn { min-height: 52px; font-size: 17px; }
	body { padding-bottom: 76px; }
}

/* ---------- Camps ---------- */
.rh-camps { display: grid; gap: 24px; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); }
.rh-camp {
	background: var(--rh-card);
	border: 1px solid var(--rh-line);
	border-radius: 12px;
	padding: 28px;
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.rh-camp__note {
	align-self: flex-start;
	padding: 4px 10px;
	border-radius: 999px;
	background: #FDE6E6;
	color: #8A1419;
	font-size: 13px;
	font-weight: 600;
}
.rh-camp__title { margin: 0; font-size: 24px; }
.rh-camp__dates { margin: 0; font-weight: 600; font-size: 18px; }
.rh-camp__list { margin: 0; display: grid; grid-template-columns: auto 1fr; gap: 6px 16px; font-size: 15px; }
.rh-camp__list dt { font-weight: 600; color: var(--rh-muted); }
.rh-camp__list dd { margin: 0; }
.rh-camp .rh-btn { align-self: flex-start; margin-top: 8px; }
.rh-camps-empty {
	padding: 28px;
	background: var(--rh-card);
	border: 1px dashed #B9B19C;
	border-radius: 12px;
}

/* ---------- Testimonials ---------- */
.rh-testimonials { display: grid; gap: 24px; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
.rh-testimonial {
	margin: 0;
	padding: 28px;
	background: var(--rh-ground);
	border-radius: 12px;
	display: flex;
	flex-direction: column;
	gap: 16px;
}
.rh-testimonial blockquote { margin: 0; padding: 0; border: 0; font-size: 18px; line-height: 1.55; }
.rh-testimonial blockquote p { margin: 0 0 0.6em; }
.rh-testimonial figcaption { font-size: 15px; color: var(--rh-muted); }
.rh-testimonial figcaption strong { color: var(--rh-ink); }

/* ---------- FAQ ---------- */
.rh-faq { max-width: 860px; border-top: 1px solid #D9D3C3; }
.rh-faq__item { padding: 20px 0; border-bottom: 1px solid #D9D3C3; }
.rh-faq__item summary { cursor: pointer; font-size: 20px; font-weight: 600; list-style-position: outside; }
.rh-faq__answer { margin-top: 10px; font-size: 16px; line-height: 1.6; color: var(--rh-muted); }
.rh-faq__answer p { margin: 0 0 0.6em; }

/* ---------- Forms (applies to the forms plugin output) ---------- */
.fluentform label,
.rh-form label { font-weight: 600; font-size: 15px; }
.fluentform input[type=text],
.fluentform input[type=email],
.fluentform input[type=tel],
.fluentform input[type=number],
.fluentform input[type=date],
.fluentform input[type=time],
.fluentform select,
.fluentform textarea {
	min-height: 48px;
	font-size: 16px;
	color: var(--rh-ink);
	border: 1px solid #8A93A3;
	border-radius: 8px;
}

/* ===== ReffingHoops layout classes (used by the Elementor pages) ===== */

a { color: var(--rh-accent-text, #B01E24); }
a:hover { color: var(--rh-ink, #12233F); }

/* Page-level text */
.elementor-page .elementor-heading-title { font-family: var(--rh-font-display, 'Archivo', sans-serif); font-weight: 800; letter-spacing: -0.015em; color: var(--rh-ink, #12233F); }
.elementor-page h1.elementor-heading-title { font-size: clamp(36px, 5vw, 60px); line-height: 1.05; }
.elementor-page h2.elementor-heading-title { font-size: clamp(28px, 3.2vw, 40px); line-height: 1.12; }
.elementor-page h3.elementor-heading-title { font-size: 22px; line-height: 1.25; }
.elementor-page .elementor-widget-text-editor { font-family: var(--rh-font-body, 'Inter', sans-serif); font-size: 17px; line-height: 1.6; color: var(--rh-muted, #475569); }
.elementor-page .elementor-widget-text-editor p { margin: 0 0 0.8em; }
.elementor-page .elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.elementor-page .elementor-widget-text-editor strong { color: var(--rh-ink, #12233F); }

/* Containers */
.e-con.rh-section,
.e-con.rh-wrap,
.e-con.rh-stack,
.e-con.rh-row,
.e-con.rh-grid,
.e-con.rh-card,
.e-con.rh-plain { --padding-top: 0px; --padding-right: 0px; --padding-bottom: 0px; --padding-left: 0px; --margin-top: 0px; --margin-bottom: 0px; }
.e-con.rh-section { width: 100%; --padding-top: 72px; --padding-bottom: 72px; --gap: 0px; }
.e-con.rh-section--tight { --padding-top: 48px; --padding-bottom: 48px; }
.e-con.rh-section--ground { background: #F6F3EC; }
.e-con.rh-section--white { background: #FFFFFF; border-top: 1px solid #E5E0D4; border-bottom: 1px solid #E5E0D4; }
.e-con.rh-section--ink { background: #12233F; }
.e-con.rh-section--accent { background: #D9262A; }
.e-con.rh-wrap { width: 100%; max-width: 1312px; margin-inline: auto; --padding-left: 32px; --padding-right: 32px; box-sizing: border-box; }
.e-con.rh-stack { --flex-direction: column; flex-direction: column; --gap: 18px; gap: 18px; }
.e-con.rh-stack > .elementor-widget { margin: 0; width: 100%; }
.e-con.rh-row { --flex-direction: row; flex-direction: row; flex-wrap: wrap; align-items: center; --gap: 16px; gap: 16px; }
.e-con.rh-row > .elementor-widget { margin: 0; width: auto; }
.e-con.rh-grid { --display: grid; display: grid; grid-template-columns: repeat(var(--rh-cols, 3), minmax(0, 1fr)); --gap: 24px; gap: 24px; align-items: stretch; }
.e-con.rh-grid--2 { --rh-cols: 2; }
.e-con.rh-grid--3 { --rh-cols: 3; }
.e-con.rh-grid--4 { --rh-cols: 4; }
.e-con.rh-grid--hero { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); --gap: 48px; gap: 48px; align-items: center; }
.e-con.rh-grid--wide-gap { --gap: 40px; gap: 40px; }
.e-con.rh-grid--side { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); --gap: 48px; gap: 48px; align-items: start; }
.e-con.rh-grid > .elementor-widget { margin: 0; }
.e-con.rh-card { background: #FFFFFF; border: 1px solid #E5E0D4; border-radius: 12px; --padding-top: 28px; --padding-right: 28px; --padding-bottom: 28px; --padding-left: 28px; --flex-direction: column; flex-direction: column; --gap: 12px; gap: 12px; }
.e-con.rh-card--ground { background: #F6F3EC; border-color: transparent; }
.e-con.rh-card--ink { background: #12233F; border-color: transparent; }
.e-con.rh-card > .elementor-widget { margin: 0; width: 100%; }
.e-con.rh-card--ink .elementor-heading-title { color: #FFFFFF; }
.e-con.rh-card--ink .elementor-widget-text-editor { color: #D5DCE8; }
.e-con.rh-prose { max-width: 820px; }

/* On dark and accent sections */
.rh-section--ink .elementor-heading-title,
.rh-section--accent .elementor-heading-title { color: #FFFFFF; }
.rh-section--ink .elementor-widget-text-editor { color: #D5DCE8; }
.rh-section--accent .elementor-widget-text-editor { color: #FFFFFF; }
.rh-section--ink a:not(.elementor-button) { color: #FFFFFF; }

/* Small text helpers */
.rh-eyebrow .elementor-heading-title { font-family: var(--rh-font-body, 'Inter', sans-serif) !important; font-weight: 600 !important; font-size: 13px !important; letter-spacing: 0.08em !important; text-transform: uppercase; color: #B01E24 !important; line-height: 1.3 !important; }
.rh-lead.elementor-widget-text-editor { font-size: 20px; line-height: 1.55; max-width: 620px; }
.rh-small.elementor-widget-text-editor { font-size: 14px; }
.rh-center, .rh-center .elementor-heading-title { text-align: center; }

/* Stats */
.rh-stat .elementor-heading-title { font-size: 44px !important; line-height: 1 !important; color: #FFFFFF !important; }
.rh-stat-label.elementor-widget-text-editor { font-size: 15px; line-height: 1.45; color: #D5DCE8; }

/* Numbered steps */
.rh-stepnum .elementor-heading-title { width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; border-radius: 50%; background: #D9262A; color: #FFFFFF !important; font-size: 20px !important; }

/* Buttons (Elementor button widget) */
.rh-bw .elementor-button { font-family: var(--rh-font-body, 'Inter', sans-serif); font-weight: 600; font-size: 17px; line-height: 1.2; padding: 16px 30px; border-radius: 8px; border: 2px solid transparent; background: #D9262A; color: #FFFFFF; fill: #FFFFFF; }
.rh-bw .elementor-button:hover { background: #B01E24; color: #FFFFFF; }
.rh-bw--ghost .elementor-button { background: transparent; border-color: #12233F; color: #12233F; }
.rh-bw--ghost .elementor-button:hover { background: #12233F; color: #FFFFFF; }
.rh-bw--light .elementor-button { background: #FFFFFF; color: #12233F; }
.rh-bw--light .elementor-button:hover { background: #F6F3EC; color: #12233F; }
.rh-bw--outline-light .elementor-button { background: transparent; border-color: #FFFFFF; color: #FFFFFF; }
.rh-bw--outline-light .elementor-button:hover { background: #FFFFFF; color: #12233F; }
.rh-bw--link .elementor-button { background: transparent; padding: 0; border: 0; color: #B01E24; text-decoration: underline; text-underline-offset: 3px; }
.rh-bw--link .elementor-button:hover { background: transparent; color: #12233F; }

/* Photo placeholder */
.e-con.rh-photo { min-height: 420px; border-radius: 16px; background: repeating-linear-gradient(135deg, #E9E3D3, #E9E3D3 14px, #F0EBDD 14px, #F0EBDD 28px); align-items: center; justify-content: center; text-align: center; --padding-top: 24px; --padding-right: 24px; --padding-bottom: 24px; --padding-left: 24px; }
.e-con.rh-photo .elementor-widget-text-editor { font-size: 15px; color: #475569; }

/* Placeholder for something still to come (forms) */
.e-con.rh-todo { border: 2px dashed #B9B19C; border-radius: 12px; background: #FFFFFF; --padding-top: 28px; --padding-right: 28px; --padding-bottom: 28px; --padding-left: 28px; --flex-direction: column; flex-direction: column; --gap: 10px; gap: 10px; }
.e-con.rh-todo .elementor-widget { margin: 0; }
.e-con.rh-todo .elementor-heading-title { font-size: 20px !important; }

/* Page head for inner pages */
.e-con.rh-pagehead { background: #FFFFFF; border-bottom: 1px solid #E5E0D4; width: 100%; --padding-top: 56px; --padding-bottom: 48px; --padding-left: 0px; --padding-right: 0px; }

/* Lists and tables inside text widgets */
.rh-checks ul { list-style: none; margin: 0; padding: 0; }
.rh-checks li { position: relative; padding: 0 0 10px 28px; }
.rh-checks li::before { content: ''; position: absolute; left: 0; top: 0.55em; width: 12px; height: 12px; border-radius: 50%; background: #D9262A; }
.rh-numbered ol { margin: 0; padding-left: 22px; }
.rh-numbered li { padding-bottom: 8px; }
.rh-table table { width: 100%; border-collapse: collapse; background: #FFFFFF; border: 1px solid #E5E0D4; }
.rh-table th, .rh-table td { text-align: left; padding: 14px 16px; border-bottom: 1px solid #E5E0D4; font-size: 16px; vertical-align: top; }
.rh-table th { background: #F6F3EC; color: #12233F; font-weight: 600; }

/* Dropdown menus (needs the v0.2 header; harmless before it) */
.rh-nav li { position: relative; }
.rh-nav .sub-menu { display: none; position: absolute; top: 100%; left: 0; z-index: 60; min-width: 240px; margin: 0; padding: 8px; list-style: none; flex-direction: column; gap: 0; background: #FFFFFF; border: 1px solid #E5E0D4; border-radius: 10px; box-shadow: 0 12px 30px rgba(18, 35, 63, 0.12); }
.rh-nav li:hover > .sub-menu,
.rh-nav li:focus-within > .sub-menu { display: flex; }
.rh-nav .sub-menu a { display: block; padding: 10px 12px; border-radius: 6px; white-space: nowrap; }
.rh-nav .sub-menu a:hover { background: #F6F3EC; }
@media (max-width: 960px) {
	.rh-nav .sub-menu { display: flex; position: static; border: 0; box-shadow: none; padding: 0 0 0 16px; min-width: 0; }
}

/* Responsive */
@media (max-width: 1024px) {
	.e-con.rh-grid--4 { --rh-cols: 2; }
	.e-con.rh-grid--3 { --rh-cols: 2; }
}
@media (max-width: 767px) {
	.e-con.rh-section { --padding-top: 48px; --padding-bottom: 48px; }
	.e-con.rh-wrap { --padding-left: 16px; --padding-right: 16px; }
	.e-con.rh-grid,
	.e-con.rh-grid--2,
	.e-con.rh-grid--3,
	.e-con.rh-grid--4 { --rh-cols: 1; grid-template-columns: minmax(0, 1fr); }
	.e-con.rh-grid--hero,
	.e-con.rh-grid--side { grid-template-columns: minmax(0, 1fr); --gap: 28px; gap: 28px; }
	.e-con.rh-photo { min-height: 220px; }
	.rh-stat .elementor-heading-title { font-size: 32px !important; }
	.rh-stack .rh-bw, .rh-row .rh-bw { width: 100%; }
	.rh-bw .elementor-button { width: 100%; text-align: center; justify-content: center; }
	.e-con.rh-row { align-items: stretch; }
}
