/* Event list row — dividing line between entries */
.tribe-events-calendar-list__event-row {
	border-top: 1px solid #ddd !important;
	padding-top: 8px !important;
}

/* No top border on the first row after a month separator */
.tribe-events-calendar-list__month-separator + .tribe-events-calendar-list__event-row {
	border-top: none !important;
	padding-top: 0 !important;
}

/* Event list row — top-align date tag and event content */
.tribe-events-calendar-list__event-row,
.tribe-events-calendar-list__event {
	align-items: flex-start !important;
}

.tribe-events-calendar-list__event-date-tag {
	align-self: flex-start !important;
}

/* Events list — narrow date column now day is abbreviated */
.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-list__event-date-tag {
	min-width: 40px !important;
	width: 40px !important;
}

/* Event title + external link icon inline */
.arr-event-title-group {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
}

.arr-event-title-group .tribe-events-calendar-list__event-title {
	order: 1;
	margin: 0;
}

.arr-event-title-group .arr-event-website-icon {
	order: 2;
}

/* ── Shared token: change this one value to resize all category badges ── */
:root {
	--arr-category-badge-width: 130px;
}

/* Pace table — force white text on header (overrides .entry-content table th specificity) */
.entry-content .arr-pace-table th {
	color: #fff;
}

/* Pace table — bottom border on last row */
.entry-content .arr-pace-table tbody tr:last-child td {
	border-bottom: 1px solid #ddd;
}

/* Slider More button — flipped colours (yellow bg, blue hover) */
/*.nivo-caption .slidermorebtn {
	background-color: #ffc800 !important;
	color: #000 !important;
}
.nivo-caption .slidermorebtn:hover {
	background-color: #207eef !important;
	color: #fff !important;
}*/

/* Content area bullet lists — fix indent and text-wrap alignment.
   Theme sets list-style:inside globally, which prevents a hanging indent
   (wrapped text goes back to the left edge instead of aligning with the
   first letter). Switch to outside + padding-left so bullets hang correctly,
   and remove the extra left margin that makes the whole list block indent. */
.LayoutContent-70 .singleright ul {
	list-style: disc outside;
	margin-left: 0;
	padding-left: 1.4em;
}

/* Footer social icons — consistent colour for all link states */
.footsocial a,
.footsocial a:visited {
	background-color: #207eef !important;
	color: #fff !important;
}

.footsocial a:hover,
.footsocial a:visited:hover {
	background-color: #1a6dd4 !important;
	color: #fff !important;
}

/* Neutralise theme table defaults — style.css sets Oswald font, grey colour,
   and bottom borders on all th/td inside .entry-content. Reset to a clean
   base so each table class (.data-table, .race-table, etc.) controls its
   own styling without fighting the theme. */
.entry-content table th,
.comment-body table th {
	font-family: inherit;
	font-weight: bold;
	color: inherit;
	border-bottom: none;
}

.entry-content table td,
.comment-body table td {
	border-bottom: none;
}

.entry-content table th,
.entry-content table td,
.comment-body table th,
.comment-body table td {
	padding: 8px;
}

/* Remove top margin on tables inside league table blocks */
#gp-league-tables table {
	margin-top: 0;
}

/* Events page — constrain to match site container width.
   The plugin renders inside .tribe-common-l-container (not #tribe-events-pg-template).
   Scope to .tribe-events to avoid affecting other tribe-common components. */
.tribe-events .tribe-common-l-container {
	max-width: 1170px !important;
	box-sizing: border-box !important;
}

/* Event category label — pull to the left */
.tec-events-calendar-list__event-categories {
	margin-left: 0;
	padding-left: 0;
}

/* ══════════════════════════════════════════════
   EVENT CATEGORY BADGES
   ══════════════════════════════════════════════ */

/*
 * Use the same 3-class specificity as the plugin selector so our !important
 * rules definitively win when two !important declarations compete.
 * Plugin: .tribe-events-calendar-list .tec-events-calendar-list__event-categories .tec-events-calendar-list__category
 */
.tribe-events-calendar-list .tec-events-calendar-list__event-categories .tec-events-calendar-list__category {
	min-width: 110px !important;
	justify-content: center !important;
	text-align: center !important;
}

/* Trail Series — darker green */
.tribe-events-calendar-list .tec-events-calendar-list__event-categories .tribe-events-calendar__category--trail-series {
	background-color: #4a8f1f !important;
	border-color: #4a8f1f !important;
	color: #fff !important;
}

/* Committee — club navy */
.tribe-events-calendar-list .tec-events-calendar-list__event-categories .tribe-events-calendar__category--committee-meeting {
	background-color: #142776 !important;
	border-color: #142776 !important;
	color: #fff !important;
}

/* Base styles shared by all injected pseudo-element badges */
article.cat_race .tribe-events-calendar-list__event-header::after,
article.cat_gp-race .tribe-events-calendar-list__event-header::after,
article.cat_social-event .tribe-events-calendar-list__event-header::after,
article.cat_star-list .tribe-events-calendar-list__event-header::after,
article.cat_events .tribe-events-calendar-list__event-header::after {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 90px;
	border-radius: 20px;
	font-size: 11px;
	font-weight: 600;
	line-height: 1.4;
	padding: 1px 8px;
	white-space: nowrap;
	flex-shrink: 0;
}

/* Race — white background with grey border */
article.cat_race .tribe-events-calendar-list__event-header::after {
	content: "Race";
	background-color: #fff;
	border: 1px solid #999;
	color: #333;
}

/* GP Race — red */
article.cat_gp-race .tribe-events-calendar-list__event-header::after {
	content: "GP Race";
	background-color: #c0392b;
	border: 1px solid #c0392b;
	color: #fff;
}

/* Social Event — orange */
article.cat_social-event .tribe-events-calendar-list__event-header::after {
	content: "Social";
	background-color: #e67e22;
	border: 1px solid #e67e22;
	color: #fff;
}

/* Star List — yellow with ★ icon */
article.cat_star-list .tribe-events-calendar-list__event-header::after {
	content: "★ Star List";
	background-color: #f1c40f;
	border: 1px solid #d4a800;
	color: #333;
}

/* Events — club mid-blue */
article.cat_events .tribe-events-calendar-list__event-header::after {
	content: "Event";
	background-color: #407ced;
	border: 1px solid #407ced;
	color: #fff;
}

/* ══════════════════════════════════════════════
   MONTH VIEW — Match category colours to list view
   Uses CSS custom properties that the plugin reads for dots/bars.
   Scoped to .tribe-events-calendar-month so list view is unaffected.
   ══════════════════════════════════════════════ */

/* Trail Series — darker green */
.tribe-events-calendar-month .tribe_events_cat-trail-series {
	--tec-color-category-primary: #4a8f1f;
	--tec-color-category-secondary: rgba(74, 143, 31, 0.12);
}

/* Committee Meeting — club navy */
.tribe-events-calendar-month .tribe_events_cat-committee-meeting {
	--tec-color-category-primary: #142776;
	--tec-color-category-secondary: rgba(20, 39, 118, 0.12);
}

/* Race — grey */
.tribe-events-calendar-month .tribe_events_cat-race {
	--tec-color-category-primary: #999;
	--tec-color-category-secondary: rgba(153, 153, 153, 0.12);
}

/* GP Race — red */
.tribe-events-calendar-month .tribe_events_cat-gp-race {
	--tec-color-category-primary: #c0392b;
	--tec-color-category-secondary: rgba(192, 57, 43, 0.12);
}

/* Social Event — orange */
.tribe-events-calendar-month .tribe_events_cat-social-event {
	--tec-color-category-primary: #e67e22;
	--tec-color-category-secondary: rgba(230, 126, 34, 0.12);
}

/* Star List — yellow */
.tribe-events-calendar-month .tribe_events_cat-star-list {
	--tec-color-category-primary: #f1c40f;
	--tec-color-category-secondary: rgba(241, 196, 15, 0.12);
}

/* Events — club mid-blue */
.tribe-events-calendar-month .tribe_events_cat-events {
	--tec-color-category-primary: #407ced;
	--tec-color-category-secondary: rgba(64, 124, 237, 0.12);
}

/* Hide comments count from blog post list */
.blog-postmeta .blog-postcat {
	display: none;
}

/* Hide site title and tagline in header (kept in HTML for SEO) */
.logo .site_branding {
	display: none;
}

/* Logo — match the 20px left indent that the container gets at ≤1169px */
@media (min-width: 1170px) {
	.logo {
		padding-left: 20px !important;
	}
}

/* Logo top margin + nav pushed down — desktop only (above hamburger menu) */
@media (min-width: 981px) {
	.logo {
		margin-top: 3px !important;
		padding-bottom: 0 !important;
	}
	.RightNavMenu {
		margin-top: -33px !important;
	}
}

/* Increase tap target height on mobile menu links */
@media screen and (max-width: 1023px) {
	.site-navigation a {
		padding: 8px 15px !important;
	}
}

#team_members {
	gap: 12px;
}

.teammember-list {
	width: calc(20% - 10px);
}

@media (max-width: 640px) {
	.nivo-caption h2 {
		font-size: 26px !important;
		line-height: 30px !important;
	}
}

@media (max-width: 480px) {
	.teammember-list {
		width: calc(50% - 8px) !important;
		min-width: 0 !important;
	}

	.our-features-box .elementor-image-box-title {
		font-size: 17px !important;
	}

	.nivo-caption h2 {
		font-size: 26px !important;
		line-height: 30px !important;
		margin: 0 0 5px !important;
	}

	.nivo-caption .slidermorebtn {
		margin-top: 6px !important;
		margin-left: 0 !important;
		padding: 4px 15px !important;
		display: inline-block !important;
	}

	.slidecaption-wp {
		padding-left: 40px !important;
	}

	.post-thumb {
		max-width: 33% !important;
	}

	.post-thumb img {
		width: 100% !important;
		height: auto !important;
	}
}

/* Consistent paragraph font size across all content */
.elementor p,
.entry-content p,
.singleright p {
	font-size: 16px !important;
}

/* Entry content text sizing */
.entry-content p,
.entry-content ul,
.entry-content ol {
	font-size: 16px;
}

/* Hide empty paragraph blocks (common Gutenberg artefact) */
.entry-content p:empty,
.wp-block-column p:empty {
	display: none;
}

/* ══════════════════════════════════════════════
   ELEMENTOR — Match theme typography
   ══════════════════════════════════════════════ */

/* Homepage — Read More button: reduced padding, white bold text, yellow hover */
.elementor-501 .elementor-element.elementor-element-723bddc5 .elementor-button {
	padding: 12px 24px !important;
	color: #002877 !important;
	font-weight: 500 !important;
}

.elementor-501 .elementor-element.elementor-element-723bddc5 .elementor-button:hover,
.elementor-501 .elementor-element.elementor-element-723bddc5 .elementor-button:focus {
	background-color: #e09e00 !important;
	color: #002877 !important;
}

/* Homepage — "Welcome to Ackworth Road Runners" heading */
.elementor-501 .elementor-element.elementor-element-1d34c718 .elementor-heading-title {
	line-height: 1.1em !important;
	margin-bottom: 5px !important;
}

/* Homepage — "Running, Racing, Making Friends" heading */
.elementor-501 .elementor-element.elementor-element-1dde1dd6 .elementor-heading-title {
	line-height: 1.1em !important;
}

/* Remove Elementor container padding and width constraint inside theme layout */
.LayoutContent-70 .e-con {
	padding: 0 !important;
}
.LayoutContent-70 .e-con-inner {
	max-width: 100% !important;
}

/* Headings — match theme styles inside Elementor content */
.elementor-widget-heading h2.elementor-heading-title,
.elementor-widget-text-editor h2 {
	font-family: 'Poppins', sans-serif;
	font-size: 22px;
	color: #207eef;
}

.elementor-widget-heading h3.elementor-heading-title,
.elementor-widget-text-editor h3 {
	font-family: 'Poppins', sans-serif;
	font-size: 20px;
	color: #ffc800;
}

/* Paragraph and list text */
.elementor-widget-text-editor p,
.elementor-widget-text-editor ul,
.elementor-widget-text-editor ol {
	font-size: 16px;
	line-height: 1.6;
}

/* Data Table - shared base styles */
.data-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 18px;
	margin: 15px 0;
}

.data-table th {
	background-color: #1D67CD;
	color: white;
	padding: 8px;
	font-weight: bold;
	font-size: 18px;
	border: 1px solid #1d67ff;
}

.data-table td {
	padding: 8px;
	border: 1px solid #BBDEFB;
	vertical-align: top;
}

.data-table tr:hover {
	background-color: #E3F2FD;
}

.data-table a {
	color: #1d67ff;
	text-decoration: none;
}

.data-table a:hover {
	text-decoration: underline;
}

/* Training Table specifics */
.training-table td:first-child {
	font-weight: bold;
	width: 40%;
}

/* Race Table specifics */
.entry-content .race-table th,
.race-table th {
	text-align: left;
	background-color: #002877;
	color: #fff;
	font-size: 15px;
}

.month-row {
	background-color: #E5EBFA;
	font-weight: bold;
}

/* Pace Table specifics */
.pace-table {
	background-color: white;
}

.pace-table th {
	text-align: center;
}

.pace-table td {
	text-align: center;
}

.pace-table tr:nth-child(even) {
	background-color: #F5F5F5;
}

.pace-table td:first-child {
	font-weight: bold;
	background-color: #E3F2FD;
}

/* Awards Page */

.tab-container {
	display: flex;
	border-bottom: 2px solid #3498db;
	margin-bottom: 15px;
}

.tab-button {
	flex: 1;
	padding: 10px 15px;
	background: #f8f9fa;
	border: none;
	cursor: pointer;
	font-size: 14px;
	font-weight: bold;
	color: #555;
	transition: all 0.3s;
}

.tab-button:hover {
	background: #e9ecef;
}

.tab-button.active {
	background: #3498db;
	color: white;
}

.tab-content {
	display: none;
}

.tab-content.active {
	display: block;
}


.awards-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 8px;
	margin-bottom: 10px;
}

.section-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px;
	margin-bottom: 15px;
}

.section-column {
	min-width: 0;
	border: 1px solid #002877;
	padding: 10px;
	border-radius: 4px;
}

.award-item {
	padding: 4px 0;
	margin-bottom: 4px;
}

.award-item strong {
	color: #002877;
}

.winner {
	color: #002877;
	font-weight: bold;
}

.trophy-note {
	color: #e74c3c;
	font-size: 0.9em;
}

.category-header {
	background: #002877 !important;
	color: white !important;
	font-weight: bold;
}

.improved-list {
	background: #f8f9fa;
	padding: 12px;
	margin: 10px 0;
	border: 1px solid #002877;
	border-radius: 4px;
}

.improved-item {
	padding: 6px 0;
	border-bottom: 1px solid #ddd;
}

.improved-item:last-child {
	border-bottom: none;
}

/* Search Results */
.search-result {
	border: 1px solid #ddd;
	padding: 15px 20px;
	margin-bottom: 15px;
	border-radius: 5px;
	background: #fff;
}

.search-result:hover {
	border-color: #1D67CD;
}

@media (max-width: 768px) {
	.section-grid {
		grid-template-columns: 1fr;
	}
}

/* ══════════════════════════════════════════════
   FEATURED EVENTS — Responsive 4 → 2 → 1 layout
   ══════════════════════════════════════════════ */

/* White background on the Featured Events section */
.elementor-element-4ab87fec {
	background-color: #fff !important;
}

/* Featured Events heading — increase font size */
.elementor-element-2d93fadf .elementor-heading-title {
	font-size: 24px !important;
}

/* Make the image wrapper fluid instead of fixed 270px */
.our-features-box .elementor-image-box-wrapper {
	width: 100% !important;
	height: auto !important;
	aspect-ratio: 270 / 357;
}

.our-features-box .elementor-image-box-wrapper img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.our-features-box .elementor-image-box-content,
.elementor-element-717f9de6 .elementor-image-box-content,
.elementor-element-69d04ea3 .elementor-image-box-content,
.elementor-element-2bea67e9 .elementor-image-box-content,
.elementor-element-545c2c78 .elementor-image-box-content {
	padding-left: 0 !important;
	margin-left: 0 !important;
}

.our-features-box .elementor-image-box-content {
	position: absolute;
	bottom: 20px;
	left: 15px;
	z-index: 999;
}

/* 628px–1024px: 2 per row.
   Elementor sets 50% width at tablet but leaves asymmetric desktop margins
   (box 1: 0 right 25px, box 2–3: 15px left 25px right, box 4: 15px left 0)
   intact, causing total row width to exceed 100% and boxes to wrap to 1 per row.
   Override width and reset margins to give a clean equal 2-per-row layout. */
@media (min-width: 628px) and (max-width: 1024px) {
	.elementor-501 .elementor-element.elementor-element-717f9de6,
	.elementor-501 .elementor-element.elementor-element-69d04ea3,
	.elementor-501 .elementor-element.elementor-element-2bea67e9,
	.elementor-501 .elementor-element.elementor-element-545c2c78 {
		width: 48% !important;
		max-width: 48% !important;
		margin: 0 1% 20px 1% !important;
	}
}

/* Below 628px: 1 per row — Elementor sets width:100% but leaves asymmetric
   desktop margins intact, causing boxes to be different widths and positions.
   Reset to zero horizontal margins so all boxes are equal width and centred. */
@media (max-width: 627px) {
	.elementor-501 .elementor-element.elementor-element-717f9de6,
	.elementor-501 .elementor-element.elementor-element-69d04ea3,
	.elementor-501 .elementor-element.elementor-element-2bea67e9,
	.elementor-501 .elementor-element.elementor-element-545c2c78 {
		width: 100% !important;
		max-width: 100% !important;
		margin: 0 0 20px 0 !important;
	}
}

/* ══════════════════════════════════════════════
   ARR HISTORY PAGE
   ══════════════════════════════════════════════ */

.arr-history {
	width: 100%;
}

/* ── Heading overrides (theme defaults differ) ── */
.arr-history h2 {
	color: #002877;
	margin-bottom: 28px;
}
.arr-history h3 {
	color: #002877;
	font-size: 1.3rem;
	font-style: italic;
	margin: 36px 0 14px;
}
.arr-history h4 {
	color: #002877;
}

/* ── Intro ── */
.arr-history .arr-intro {
	padding: 20px 0;
	text-align: center;
}
.arr-history .arr-intro p {
	font-style: italic;
	color: #888;
}

/* ── Sections ── */
.arr-history section {
	padding: 0;
}

.arr-history .arr-section-label {
	font-size: 18px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: #ffc800;
	margin-bottom: 12px;
}

/* ── Pull Quote ── */
.arr-history .arr-pull-quote {
	border-left: 4px solid #ffc800;
	background: #E3F2FD;
	padding: 28px 32px;
	margin: 40px 0;
}
.arr-history .arr-pull-quote p {
	font-family: 'Poppins', sans-serif;
	font-style: italic;
	font-size: 1.3rem;
	line-height: 1.6;
	color: #002877;
	margin-bottom: 12px;
}
.arr-history .arr-pull-quote cite {
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: #888;
	font-style: normal;
}

/* ── Original Notice ── */
.arr-history .arr-notice {
	border: 2px solid #303030;
	padding: 28px 32px;
	margin: 36px 0;
	text-align: center;
	background: white;
}
.arr-history .arr-notice p {
	font-size: 0.95rem;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	line-height: 2;
	margin: 0;
}

/* ── Founder Members Grid ── */
.arr-history .arr-member-grid,
.article-body .arr-member-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: 8px;
	margin: 28px 0;
}
.arr-history .arr-member-name,
.article-body .arr-member-name {
	font-size: 0.9rem;
	padding: 8px 12px;
	background: white;
	border-left: 3px solid #002877;
}

/* ── Key People Cards ── */
.arr-history .arr-people-grid,
.article-body .arr-people-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: 24px;
	margin: 32px 0;
}
.arr-history .arr-person-card,
.article-body .arr-person-card {
	background: white;
	padding: 24px;
	border-top: 4px solid #002877;
}
.arr-history .arr-person-card h4,
.article-body .arr-person-card h4 {
	font-size: 1.1rem;
	margin-bottom: 4px;
}
.arr-history .arr-person-role,
.article-body .arr-person-role {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: #ffc800;
	margin-bottom: 12px;
}
.arr-history .arr-person-card p,
.article-body .arr-person-card p {
	font-size: 0.9rem;
	color: #888;
	line-height: 1.6;
}

/* ── Timeline ── */
.arr-history .arr-timeline {
	position: relative;
	margin: 32px 0;
	padding-left: 32px;
}
.arr-history .arr-timeline::before {
	content: '';
	position: absolute;
	left: 8px;
	top: 0;
	bottom: 0;
	width: 2px;
	background: #ddd;
}
.arr-history .arr-timeline-item {
	position: relative;
	margin-bottom: 32px;
}
.arr-history .arr-timeline-item::before {
	content: '';
	position: absolute;
	left: -28px;
	top: 6px;
	width: 12px;
	height: 12px;
	background: #ffc800;
	border-radius: 50%;
}
.arr-history .arr-timeline-year {
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.15em;
	color: #002877;
	text-transform: uppercase;
	margin-bottom: 4px;
}
.arr-history .arr-timeline-item p {
	font-size: 0.95rem;
	margin: 0;
}

/* ── Image Placeholder ── */
.arr-history .arr-image-slot {
	background: white;
	border: 2px dashed #ddd;
	margin: 36px 0;
	text-align: center;
	overflow: hidden;
}
.arr-history .arr-image-slot img {
	width: 100%;
	height: auto;
	display: block;
}
.arr-history .arr-image-slot .arr-placeholder {
	padding: 48px 24px;
	color: #888;
}
.arr-history .arr-image-slot .arr-placeholder-icon {
	font-size: 2rem;
	margin-bottom: 8px;
}
.arr-history .arr-image-slot .arr-placeholder p {
	font-size: 0.85rem;
	font-style: italic;
	margin: 0;
}
.arr-history .arr-image-caption {
	background: white;
	border-top: 1px solid #ddd;
	padding: 10px 16px;
	font-size: 0.82rem;
	font-style: italic;
	color: #888;
	text-align: center;
}

/* ── Stats Bar ── */
.arr-history .arr-stats-bar {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1px;
	background: #ddd;
	margin: 40px 0;
}
.arr-history .arr-stat-cell {
	background: white;
	padding: 28px 20px;
	text-align: center;
}
.arr-history .arr-stat-number {
	font-family: 'Poppins', sans-serif;
	font-size: 2.8rem;
	font-weight: 900;
	color: #002877;
	line-height: 1;
	display: block;
}
.arr-history .arr-stat-label {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: #888;
	display: block;
	margin-top: 6px;
}

/* ── Responsive ── */
@media (max-width: 600px) {
	.arr-history .arr-stats-bar,
	.article-body .arr-stats-bar { grid-template-columns: 1fr; }
	.arr-history .arr-people-grid,
	.article-body .arr-people-grid { grid-template-columns: 1fr; }
}

/* ══════════════════════════════════════════════
   GENERIC ARTICLE STYLES
   ══════════════════════════════════════════════ */

.article-body {
	width: 100%;
}

/* Headings */
.article-body h2 {
	color: #002877;
	margin-top: 36px;
	margin-bottom: 14px;
}

.article-body h3 {
	color: #002877;
	font-size: 1.1rem;
	margin-top: 24px;
	margin-bottom: 10px;
}

/* Article header / hero */
.article-header {
	text-align: center;
	padding: 28px 0 24px;
	border-bottom: 2px solid #002877;
	margin-bottom: 32px;
}

.article-header .article-kicker {
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: #ffc800;
	margin-bottom: 6px;
}

.article-header h1 {
	color: #002877;
	margin: 8px 0;
}

.article-header .article-date {
	font-size: 14px;
	color: #888;
	margin-bottom: 8px;
}

.article-header .article-tagline {
	font-style: italic;
	color: #555;
	font-size: 1.05rem;
	margin-top: 8px;
}

/* Intro block */
.article-intro {
	padding: 20px 0;
	text-align: center;
}

.article-intro p {
	font-style: italic;
	color: #888;
}

/* Section label (e.g. "Chapter One") */
.article-section-label {
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: #ffc800;
	margin-bottom: 8px;
}

/* Pull quote */
.article-pull-quote {
	border-left: 4px solid #ffc800;
	background: #E3F2FD;
	padding: 24px 28px;
	margin: 32px 0;
}

.article-pull-quote p {
	font-style: italic;
	font-size: 1.1rem;
	line-height: 1.6;
	color: #002877;
	margin-bottom: 10px;
}

.article-pull-quote p:last-child {
	margin-bottom: 0;
}

.article-pull-quote cite {
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: #888;
	font-style: normal;
}

/* Notice / callout box */
.article-notice {
	border: 2px solid #303030;
	padding: 24px 28px;
	margin: 28px 0;
	text-align: center;
	background: #fff;
}

.article-notice p {
	font-size: 0.95rem;
	line-height: 2;
	margin: 0;
}

/* Stats bar */
.article-stats-bar {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1px;
	background: #ddd;
	margin: 36px 0;
}

.article-stat-cell {
	background: #fff;
	padding: 24px 16px;
	text-align: center;
}

.article-stat-number {
	font-family: 'Poppins', sans-serif;
	font-size: 2.4rem;
	font-weight: 900;
	color: #002877;
	line-height: 1;
	display: block;
}

.article-stat-label {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: #888;
	display: block;
	margin-top: 6px;
}

/* Timeline */
.article-timeline {
	position: relative;
	margin: 28px 0;
	padding-left: 28px;
}

.article-timeline::before {
	content: '';
	position: absolute;
	left: 6px;
	top: 0;
	bottom: 0;
	width: 2px;
	background: #ddd;
}

.article-timeline-item {
	position: relative;
	margin-bottom: 28px;
}

.article-timeline-item::before {
	content: '';
	position: absolute;
	left: -24px;
	top: 6px;
	width: 12px;
	height: 12px;
	background: #ffc800;
	border-radius: 50%;
}

.article-timeline-year {
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.15em;
	color: #002877;
	text-transform: uppercase;
	margin-bottom: 4px;
}

/* Article footer */
.article-footer {
	border-top: 2px solid #002877;
	margin-top: 40px;
	padding-top: 16px;
	font-size: 14px;
	color: #888;
	font-style: italic;
}

/* Responsive */
@media (max-width: 600px) {
	.article-stats-bar { grid-template-columns: 1fr; }
}

/* WP Block Grid groups — spacing between rows */
.wp-block-group-is-layout-grid {
	margin-bottom: 24px;
}

/* ══════════════════════════════════════════════
   WP BLOCK BUTTONS
   ══════════════════════════════════════════════ */

.wp-block-buttons {
	margin-bottom: 20px;
}

/* Make all buttons in a group stretch to the same (full) width */
.wp-block-buttons .wp-block-button {
	width: 100%;
}

.wp-block-buttons .wp-block-button .wp-block-button__link {
	width: 100%;
	text-align: center;
	box-sizing: border-box;
}

.wp-block-button__link {
	background-color: #002877 !important;
	color: #fff !important;
	text-decoration: none !important;
	border-radius: 6px !important;
}

.wp-block-button__link:hover {
	background-color: #207eef !important;
	color: #fff !important;
	text-decoration: none !important;
}

/* ══════════════════════════════════════════════
   MEMBERSHIP APPLICATION FORM (CF7)
   ══════════════════════════════════════════════ */

/* Important notice block */
.cf7-notice {
	background-color: #f0f4ff;
	border-left: 4px solid #012778;
	padding: 16px 20px;
	margin-bottom: 28px;
}

.cf7-notice h2 {
	margin-top: 0;
	font-size: 16px;
	color: #012778;
}

.cf7-notice p {
	margin-bottom: 10px;
	font-size: 14px;
	line-height: 1.6;
}

.cf7-notice p:last-child {
	margin-bottom: 0;
}

/* Section dividers */
.wpcf7 hr {
	border: none;
	border-top: 2px solid #012778;
	margin: 32px 0;
}

/* Field spacing — consistent gap between every field */
.cf7-field-group {
	margin-bottom: 16px;
}

/* Labels */
.cf7-field-group label {
	display: block;
	font-size: 15px;
	font-weight: 600;
	margin-bottom: 5px;
	color: #222;
}

/* Global form field background */
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="date"],
input[type="number"],
input[type="search"],
input[type="url"],
input[type="password"],
select,
textarea {
	background-color: #f0f4ff;
}

/* Header search field — white background */
.header-search-form .search-field {
	background-color: #fff;
}

/* All text inputs, selects, textareas */
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="date"],
.wpcf7 select,
.wpcf7 textarea {
	width: 100%;
	padding: 9px 12px;
	font-size: 15px;
	font-family: inherit;
	border: 1px solid #ccc;
	border-radius: 4px;
	box-sizing: border-box;
	color: #333;
}

.wpcf7 input[type="text"]:focus,
.wpcf7 input[type="email"]:focus,
.wpcf7 input[type="tel"]:focus,
.wpcf7 input[type="date"]:focus,
.wpcf7 select:focus,
.wpcf7 textarea:focus {
	border-color: #012778;
	outline: none;
	box-shadow: 0 0 0 2px rgba(1, 39, 120, 0.12);
}

/* Multi-field rows (side by side) */
.cf7-field-row {
	display: flex;
	gap: 16px;
}

.cf7-field-row .cf7-field-group {
	flex: 1;
	min-width: 0;
}

/* Collapse to single column on small screens */
@media (max-width: 600px) {
	.cf7-field-row {
		flex-direction: column;
		gap: 0;
	}
}

/* Required asterisk */
.wpcf7 span.required {
	color: #dc3232;
	margin-left: 2px;
}

/* Radio buttons — stack vertically */
.cf7-radio-group .wpcf7-list-item {
	display: block;
	margin: 6px 0 6px 0;
}

/* Declaration checkbox */
.cf7-acceptance .wpcf7-list-item {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	margin: 0;
}

/* Membership fee reference table */
.cf7-membership-table {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 16px;
	font-size: 14px;
}

.cf7-membership-table th {
	background-color: #012778;
	color: #fff;
	padding: 7px 10px;
	text-align: left;
}

.cf7-membership-table td {
	padding: 6px 10px;
	border-bottom: 1px solid #e0e0e0;
}

.cf7-membership-table td:last-child {
	white-space: nowrap;
	font-weight: 600;
}

.cf7-membership-table tr:last-child td {
	border-bottom: none;
}

/* Fix bullet alignment — theme uses list-style: inside globally */
.wpcf7 ul {
	list-style: disc outside;
	padding-left: 1.5em;
}

.wpcf7 ul li {
	margin-left: 0;
}

/* Submit button */
.cf7-submit input[type="submit"] {
	background-color: #012778;
	color: #fff;
	padding: 12px 32px;
	font-size: 16px;
	font-family: inherit;
	border: none;
	border-radius: 4px;
	cursor: pointer;
	margin-top: 8px;
}

.cf7-submit input[type="submit"]:hover {
	background-color: #023399;
}


/* At 1023px: keep Join the Club right-aligned (theme removes float here) */
@media (max-width: 1023px) {
	.hdr-topstrip .phonebX {
		float: right;
	}
}

/* 981px–1023px: contact info stays visible. The hamburger sits at
   position:absolute top:15px right:20px (theme default). It is 50px wide, so
   it occupies the rightmost 70px of the container. Pull .header-contact-info
   left by 75px so none of its elements reach the hamburger zone. */
@media (min-width: 981px) and (max-width: 1023px) {
	.header-contact-info {
		margin-right: 75px !important;
	}
}

/* Nav "Join the Club" item (CSS class: nav-join-btn added via WP Menus admin).
   Hidden at desktop — the phonebX button in the header strip serves that role.
   Shown as a yellow button inside the mobile nav at ≤980px. */
li.nav-join-btn {
	display: none;
	margin-left: 12px;
}

@media (max-width: 980px) {
	li.nav-join-btn {
		display: block !important;
		padding: 10px 0 !important;
	}
	.nav-join-btn > a {
		display: inline-block !important;
		background-color: #ffb400 !important;
		color: #000 !important;
		padding: 10px 30px !important;
		font-weight: 600 !important;
		text-decoration: none !important;
		border-bottom: none !important;
	}
	.nav-join-btn > a:hover {
		background-color: #e09e00 !important;
		color: #000 !important;
	}
}

/* Remove border-top from contact detail section in footer */
.contactdetail {
	border-top: none;
	margin-top: 0;
	padding-top: 0;
}

/* Header info bar — stack spans at narrow widths */
@media (max-width: 962px) {
	.hdrtop-Info:not(.hdrsocial):not(.phonebX) {
		display: flex;
		flex-direction: column;
		align-items: center;
		text-align: center;
		line-height: 1.5;
	}
	.hdrtop-Info.hdrsocial {
		padding-bottom: 0;
		line-height: 1;
	}
	.infoBx {
		margin-bottom: 10px;
	}
}

/* ══════════════════════════════════════════════
   HOMEPAGE — 3 ICON BOXES (All Welcome / Coaching / Community)
   Always stay on one row; scale down on small screens.
   ══════════════════════════════════════════════ */

/* Force the widget wrap to stay as a horizontal row */
.elementor-element-3d62209e .elementor-widget-wrap {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	align-items: flex-start;
	gap: 8px;
}

/* Each box: share available width equally and don't overflow */
.cleaning_services_bx {
	flex: 1 1 0 !important;
	width: auto !important;
	min-width: 0 !important;
}

/* Cap image size and prevent flex from shrinking it below 70px */
.cleaning_services_bx .elementor-image-box-img img {
	width: 70px !important;
	min-width: 70px !important;
	height: auto !important;
}

/* Scale down images and text only on very small screens */
@media (max-width: 480px) {
	.elementor-image-box-title {
		font-size: 24px !important;
	}

	.cleaning_services_bx .elementor-image-box-img img {
		width: 55px !important;
		min-width: 55px !important;
	}

	.cleaning_services_bx .elementor-image-box-title {
		font-size: 14px !important;
		margin-top: 8px !important;
		margin-bottom: 2px !important;
		word-break: keep-all;
		overflow-wrap: normal;
		hyphens: none;
	}

	.cleaning_services_bx .elementor-image-box-description {
		font-size: 13px !important;
		line-height: 1.4em;
		margin-top: 10px !important;
	}

	.cleaning_services_bx .elementor-image-box-img {
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;
	}

	.cleaning_services_bx .elementor-image-box-wrapper {
		gap: 4px;
		align-items: center !important;
	}
}

/* ══════════════════════════════════════════════
   HOMEPAGE — 4 FEATURED EVENTS (our-features-box)
   Always 2-per-row below 1020px; shrink boxes.
   ══════════════════════════════════════════════ */

@media (max-width: 1020px) {
	.our-features-box {
		width: 50% !important;
		max-width: 50% !important;
		flex: 0 0 50% !important;
		padding-left: 10px !important;
		padding-right: 10px !important;
		box-sizing: border-box !important;
		margin: 0 !important;
	}
}

/* ══════════════════════════════════════════════
   TEAM MEMBER PAGE — heading colours
   Matches .entry-content h2/h3 rules in style.css.
   Needed because single-team.php doesn't wrap content in .entry-content.
   ══════════════════════════════════════════════ */

.LayoutContent-70 h2 {
	color: #207eef !important;
}

.LayoutContent-70 h3 {
	color: #ffc800 !important;
	font-size: 20px !important;
}

/* ══════════════════════════════════════════════
   TEAM MEMBER PAGE — mobile layout fixes (≤767px)
   ══════════════════════════════════════════════ */
@media screen and (max-width: 767px) {
	/* .singleright has float:left !important globally, which overrides the
	   theme's responsive float:none on .LayoutContent-70. Force it off so
	   the content column and sidebar stack vertically on small screens. */
	.LayoutContent-70.singleright {
		float: none !important;
		width: 100% !important;
		padding: 0 !important;
	}

	/* #sidebar gets width:100% at mobile but retains padding:20px on a
	   content-box model, making it wider than the viewport and causing the
	   blank space left/right. Switch to border-box so padding is included
	   inside the 100% width. */
	#sidebar {
		box-sizing: border-box;
		padding: 15px 0 !important;
	}
}

/* ══════════════════════════════════════════════
   TEAM MEMBER SIDEBAR
   ══════════════════════════════════════════════ */

.team-sidebar-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.team-sidebar-item {
	padding: 6px 0;
	border-bottom: 1px solid #eee;
}

.team-sidebar-item a {
	font-weight: 600;
	display: block;
	color: #142776 !important;
	font-size: 17px;
}

.team-sidebar-item a:hover {
	color: #0066cc !important;
}

.team-sidebar-designation {
	display: block;
	font-size: 12px;
	color: #407ced;
	font-weight: 700;
	margin-top: 1px;
}

.team-sidebar-item.current-team-member a {
	color: #0066cc;
}

/* ══════════════════════════════════════════════
   CONTACT FORM 7 — Response output message
   Move to top of form visually; style by state.
   ══════════════════════════════════════════════ */

/* Hide all form children on successful submission except the response message */
.wpcf7-form.sent > *:not(.wpcf7-response-output) {
	display: none;
}

/* Force the response message visible (CF7 keeps aria-hidden="true" on it) */
.wpcf7-form.sent .wpcf7-response-output {
	display: block !important;
}

/* Success */
.wpcf7 form.sent .wpcf7-response-output {
	background-color: #ffb400 !important;
	color: #002877 !important;
	border: none !important;
	padding: 15px !important;
	border-radius: 4px !important;
	font-weight: bold !important;
}

/* Mail sending failed */
.wpcf7-response-output.wpcf7-mail-sent-ng {
	background-color: #f8d7da;
	color: #721c24;
	border: 1px solid #f5c6cb;
	padding: 15px;
	border-radius: 4px;
}

/* Validation errors */
.wpcf7-response-output.wpcf7-validation-errors {
	background-color: #fff3cd;
	color: #856404;
	border: 1px solid #ffc107;
	padding: 15px;
	border-radius: 4px;
}

/* Spam blocked */
.wpcf7-response-output.wpcf7-spam-blocked {
	background-color: #fff3cd;
	color: #856404;
	border: 1px solid #ffc107;
	padding: 15px;
	border-radius: 4px;
}

/* Club Documents — 2-per-row on smaller screens */
@media (max-width: 767px) {
	.entry-content div[style*="repeat(4"] {
		grid-template-columns: repeat(2, 1fr) !important;
	}
}

.tribe-events-intro {
	padding: 10px !important;
	font-weight: bold !important;
}
