/*
 * West Byfleet Golf Club - internal page refresh
 * Loaded only on internal pages (not Home / The Course / Course Photos) via
 * mu-plugins/wbgc-refresh.php, which adds body.wbgc-refresh.
 * Hero containers (.hundred-percent-height) are deliberately left untouched.
 */

@font-face {
	font-family: "Source Sans 3";
	font-style: normal;
	font-weight: 300 700;
	font-display: swap;
	src: url("source-sans-3.woff2") format("woff2");
}
@font-face {
	font-family: "Source Sans 3";
	font-style: italic;
	font-weight: 300 700;
	font-display: swap;
	src: url("source-sans-3-italic.woff2") format("woff2");
}

body.wbgc-refresh {
	--wb-ink: #1d2621;
	--wb-ink-soft: #4a554f;
	--wb-green: #0b5b3a;
	--wb-green-brand: #048c53;
	--wb-rule: #dfe4df;
	--wb-paper: #f7f6f1;
	--wb-sans: "Source Sans 3", "Helvetica Neue", Arial, sans-serif;
	--wb-serif: "PT Serif", Georgia, serif;
	--wb-measure: 46rem;
}

/* Replace the Japanese body face (Sawarabi Gothic), which puts gaps after
   apostrophes ("Men’ s"). The site header is shared with the homepage, so it
   keeps its original styling. */
.wbgc-refresh #main,
.wbgc-refresh .fusion-tb-footer {
	--awb-typography3-font-family: var(--wb-sans);
	--awb-typography4-font-family: var(--wb-sans);
	--body_typography-font-family: var(--wb-sans);
	font-family: var(--wb-sans);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

/* ---------- Typography (content sections only, never the hero) ---------- */

.wbgc-refresh #main .fusion-fullwidth:not(.hundred-percent-height, .hundred-percent-fullwidth) :is(.fusion-text, .wbgc-membership-copy),
.wbgc-refresh #main .fusion-fullwidth:not(.hundred-percent-height, .hundred-percent-fullwidth) :is(.fusion-text, .wbgc-membership-copy) p,
.wbgc-refresh #main .fusion-fullwidth:not(.hundred-percent-height, .hundred-percent-fullwidth) :is(.fusion-text, .wbgc-membership-copy) li {
	font-family: var(--wb-sans);
	font-size: 17.5px;
	line-height: 1.7;
	color: var(--wb-ink);
	letter-spacing: 0.002em;
}
.wbgc-refresh #main .fusion-fullwidth:not(.hundred-percent-height, .hundred-percent-fullwidth) :is(.fusion-text, .wbgc-membership-copy) p {
	margin: 0 0 1.05em;
}
.wbgc-refresh #main .fusion-fullwidth:not(.hundred-percent-height, .hundred-percent-fullwidth) :is(.fusion-text, .wbgc-membership-copy) strong,
.wbgc-refresh #main .fusion-fullwidth:not(.hundred-percent-height, .hundred-percent-fullwidth) :is(.fusion-text, .wbgc-membership-copy) b {
	font-weight: 600;
	color: var(--wb-ink);
}

/* Headings: one confident deep green, tighter tracking, consistent rhythm */
.wbgc-refresh #main .fusion-fullwidth:not(.hundred-percent-height, .hundred-percent-fullwidth) :is(.fusion-text, .wbgc-membership-copy) :is(h1, h2, h3, h4),
.wbgc-refresh #main .fusion-fullwidth:not(.hundred-percent-height, .hundred-percent-fullwidth) .fusion-title :is(h1, h2, h3, h4) {
	font-family: var(--wb-serif);
	font-weight: 400;
	color: var(--wb-green) !important;
	letter-spacing: -0.012em;
	line-height: 1.15;
	text-transform: none;
}
.wbgc-refresh #main .fusion-fullwidth:not(.hundred-percent-height, .hundred-percent-fullwidth) :is(.fusion-text, .wbgc-membership-copy) :is(h2, h3) {
	font-size: clamp(30px, 2.4vw + 12px, 42px);
	margin: 1.9em 0 0.55em;
}
.wbgc-refresh #main .fusion-fullwidth:not(.hundred-percent-height, .hundred-percent-fullwidth) :is(.fusion-text, .wbgc-membership-copy) > :is(h2, h3):first-child {
	margin-top: 0;
}
.wbgc-refresh #main .fusion-fullwidth:not(.hundred-percent-height, .hundred-percent-fullwidth) :is(.fusion-text, .wbgc-membership-copy) h4 {
	font-size: clamp(24px, 1.2vw + 14px, 30px);
	margin: 0 0 0.6em;
}
/* Short editorial rule beneath section headings */
.wbgc-refresh #main .fusion-fullwidth:not(.hundred-percent-height, .hundred-percent-fullwidth) :is(.fusion-text, .wbgc-membership-copy) :is(h2, h3)::after {
	content: "";
	display: block;
	width: 44px;
	height: 2px;
	margin-top: 0.42em;
	background: var(--wb-green-brand);
	opacity: 0.85;
}
.wbgc-refresh #main .fusion-fullwidth:not(.hundred-percent-height, .hundred-percent-fullwidth) :is(.fusion-text, .wbgc-membership-copy) [style*="text-align: center"]:is(h2, h3)::after,
.wbgc-refresh #main .fusion-fullwidth:not(.hundred-percent-height, .hundred-percent-fullwidth) .fusion-text[style*="--awb-content-alignment:center"] :is(h2, h3)::after {
	margin-left: auto;
	margin-right: auto;
}

/* Comfortable reading measure for single-column text */
.wbgc-refresh #main .fusion-fullwidth:not(.hundred-percent-height, .hundred-percent-fullwidth) .fusion_builder_column_1_1 > .fusion-column-wrapper > :is(.fusion-text, .wbgc-membership-copy) {
	max-width: var(--wb-measure);
	margin-left: auto;
	margin-right: auto;
}

/* Links: understated, underlined, brand green */
.wbgc-refresh #main .fusion-fullwidth:not(.hundred-percent-height, .hundred-percent-fullwidth) :is(.fusion-text, .wbgc-membership-copy) a {
	color: var(--wb-green-brand);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.2em;
	text-decoration-color: rgba(4, 140, 83, 0.4);
	transition: color 0.2s ease, text-decoration-color 0.2s ease;
}
.wbgc-refresh #main .fusion-fullwidth:not(.hundred-percent-height, .hundred-percent-fullwidth) :is(.fusion-text, .wbgc-membership-copy) a:hover {
	color: var(--wb-green);
	text-decoration-color: currentColor;
}

/* Lists: small green markers instead of heavy black bullets */
.wbgc-refresh #main .fusion-fullwidth:not(.hundred-percent-height, .hundred-percent-fullwidth) :is(.fusion-text, .wbgc-membership-copy) ul {
	list-style: none;
	padding-left: 0;
	margin: 0 0 1.2em;
}
.wbgc-refresh #main .fusion-fullwidth:not(.hundred-percent-height, .hundred-percent-fullwidth) :is(.fusion-text, .wbgc-membership-copy) ul > li {
	position: relative;
	padding-left: 1.35em;
	margin-bottom: 0.35em;
}
.wbgc-refresh #main .fusion-fullwidth:not(.hundred-percent-height, .hundred-percent-fullwidth) :is(.fusion-text, .wbgc-membership-copy) ul > li::before {
	content: "";
	position: absolute;
	left: 0.15em;
	top: 0.72em;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--wb-green-brand);
}

/* ---------- Section rhythm & surfaces ---------- */

/* Replace the grey radial vignettes with clean, flat surfaces */
.wbgc-refresh #main .fusion-fullwidth:not(.hundred-percent-height, .hundred-percent-fullwidth)[style*="radial-gradient"] {
	--awb-background-image: none !important;
	background-image: none !important;
}

/* Breathing room between the hero and the first content section */
.wbgc-refresh #main :is(.fusion-fullwidth.hundred-percent-height, .awb-full-section:has(.hundred-percent-height)) + .fusion-fullwidth:not(.hundred-percent-fullwidth) {
	padding-top: clamp(56px, 6vw, 96px) !important;
}
.wbgc-refresh #main .fusion-fullwidth:not(.hundred-percent-height, .hundred-percent-fullwidth):last-child {
	padding-bottom: clamp(56px, 6vw, 96px) !important;
}

/* Images inside content: crisp edges, subtle depth */
.wbgc-refresh #main .fusion-fullwidth:not(.hundred-percent-height, .hundred-percent-fullwidth) .fusion-imageframe img {
	border-radius: 2px;
}

/* ---------- Team cards (Pro Shop flip boxes) ---------- */

/* Fixed portrait crop: card heights are measured before lazy-loaded photos
   arrive, so a fixed ratio stops the photos spilling out of their frames. */
.wbgc-refresh .fusion-flip-box .flip-box-grafix.flip-box-image {
	width: 100%;
	height: auto;
	margin: 0 0 22px;
	border: 0;
	padding: 0;
}
.wbgc-refresh .fusion-flip-box .flip-box-grafix.flip-box-image img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	object-position: center 22%;
}
/* Let the front face define the card height instead of Avada's JS-measured
   min-height; the back face simply covers it. */
.wbgc-refresh .fusion-flip-box .flip-box-inner-wrapper {
	min-height: 0 !important;
}
.wbgc-refresh .fusion-flip-box .flip-box-front {
	position: relative !important;
}
.wbgc-refresh .fusion-flip-box .flip-box-back {
	position: absolute !important;
	inset: 0 !important;
	overflow-y: auto;
	display: flex;
	align-items: center;
}
.wbgc-refresh .fusion-flip-box .flip-box-front {
	background: #fff !important;
	border: 1px solid var(--wb-rule) !important;
	border-radius: 2px !important;
	padding: 0 !important;
	color: var(--wb-ink-soft) !important;
	font-family: var(--wb-sans);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}
.wbgc-refresh .fusion-flip-box .flip-box-front-inner {
	padding: 0 0 26px;
	margin: 0;
	top: 0;
	transform: none;
}
.wbgc-refresh .fusion-flip-box .flip-box-front .flip-box-heading {
	font-family: var(--wb-serif);
	font-size: 24px !important;
	font-weight: 400;
	letter-spacing: -0.005em;
	text-transform: none;
	color: var(--wb-green) !important;
	margin: 0 0 6px;
}
.wbgc-refresh .fusion-flip-box .flip-box-back {
	background: var(--wb-green) !important;
	border-radius: 2px !important;
	border: 0 !important;
}
.wbgc-refresh .fusion-flip-box .flip-box-back,
.wbgc-refresh .fusion-flip-box .flip-box-back p {
	font-family: var(--wb-sans);
	font-size: 15.5px;
	line-height: 1.6;
	color: rgba(255, 255, 255, 0.88);
}
.wbgc-refresh .fusion-flip-box .flip-box-heading-back {
	font-family: var(--wb-serif);
	color: #fff !important;
}
.wbgc-refresh .fusion-flip-boxes + .fusion-flip-boxes {
	margin-top: 8px;
}
/* Separator line above "Meet the Team" crowded the heading */
.wbgc-refresh #main .fusion-flip-boxes:first-of-type {
	margin-top: 12px;
}
.wbgc-refresh #main .fusion-column-wrapper > .fusion-separator:first-child {
	margin-bottom: clamp(40px, 5vw, 72px) !important;
	opacity: 0.35;
}

/* ---------- Buttons ---------- */

.wbgc-refresh #main .fusion-fullwidth:not(.hundred-percent-height, .hundred-percent-fullwidth) .fusion-button {
	font-family: var(--wb-sans);
	font-weight: 600;
	letter-spacing: 0.12em;
	border-radius: 2px;
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

/* ---------- Footer ---------- */

/* White logo disappears into the pale top of the footer photo: use the dark logo */
.wbgc-refresh .fusion-tb-footer .fusion-imageframe:has(img.wp-image-1516) {
	background: url("/wp-content/uploads/2024/12/WBGC_BLACK_Logo-RGB.png") center / contain no-repeat;
}
.wbgc-refresh .fusion-tb-footer img.wp-image-1516 {
	visibility: hidden;
}
.wbgc-refresh .fusion-tb-footer .fusion-text,
.wbgc-refresh .fusion-tb-footer .fusion-text p {
	font-family: var(--wb-sans);
	color: var(--wb-ink);
}
/* Bottom bar: "Website designed by" was black on near-black */
.wbgc-refresh .fusion-tb-footer .fusion-fullwidth[style*="--awb-background-color:var(--awb-color7)"] p,
.wbgc-refresh .fusion-tb-footer .fusion-fullwidth:last-child p {
	color: rgba(255, 255, 255, 0.62);
	letter-spacing: 0.02em;
}
.wbgc-refresh .fusion-tb-footer .fusion-fullwidth:last-child a {
	color: #8fd3ad;
}
.wbgc-refresh .fusion-tb-footer .fusion-fullwidth:last-child hr,
.wbgc-refresh .fusion-tb-footer .fusion-fullwidth:last-child .fusion-separator-border {
	border-color: rgba(255, 255, 255, 0.14) !important;
}

/* ---------- The Club: history timeline ---------- */

/* Cards alternate sides; on desktop let each one tuck up beside the previous
   card rather than starting a new row, closing the large empty gaps. */
@media (min-width: 900px) {
	.wbgc-refresh #main .timeline > .entry + .entry {
		margin-top: -72px;
	}
}
.wbgc-refresh #main .timeline .card {
	border-radius: 4px;
	box-shadow: 0 1px 2px rgba(17, 38, 28, 0.05);
}
.wbgc-refresh #main .timeline .card:hover {
	box-shadow: 0 8px 24px rgba(17, 38, 28, 0.08);
}
.wbgc-refresh #main .timeline .title {
	letter-spacing: 0.01em;
	font-size: 19px;
	color: var(--wb-green);
}
.wbgc-refresh #main .timeline .card p,
.wbgc-refresh #main .timeline .card .desc {
	font-family: var(--wb-sans);
	font-size: 16px;
	line-height: 1.6;
	color: var(--wb-ink-soft);
}

/* ---------- Fees table (Membership) ---------- */

.wbgc-refresh #main .cj-fees-wrapper {
	max-width: 62rem;
	margin-left: auto;
	margin-right: auto;
}
.wbgc-refresh #main .cj-fees-wrapper .fees-title {
	font-family: var(--wb-serif);
	font-weight: 400;
	letter-spacing: -0.01em;
	color: var(--wb-green) !important;
	font-size: clamp(28px, 2vw + 12px, 36px);
	margin-bottom: 1.1em;
}
.wbgc-refresh #main .cj-fees-wrapper table {
	border-radius: 2px;
	overflow: hidden;
	box-shadow: none;
	border: 1px solid var(--wb-rule);
}
.wbgc-refresh #main .cj-fees-wrapper :is(table, td, th),
.wbgc-refresh #main :is(.cj-fees-wrapper, [class*="fees"]) * {
	font-family: var(--wb-sans);
}
.wbgc-refresh #main .cj-fees-wrapper thead th {
	background: var(--wb-green);
	font-weight: 600;
	letter-spacing: 0.12em;
	font-size: 12.5px;
}
.wbgc-refresh #main .cj-fees-wrapper td {
	font-size: 16px;
	font-variant-numeric: tabular-nums;
}
.wbgc-refresh #main .cj-fees-wrapper .category-row td {
	background: var(--wb-paper);
	color: var(--wb-green);
	letter-spacing: 0.14em;
	font-size: 12.5px;
}

/* ---------- Added photography rows ---------- */

.wbgc-refresh #main .wbgc-photo-row {
	padding-top: clamp(24px, 4vw, 56px) !important;
	padding-bottom: clamp(24px, 4vw, 56px) !important;
}
.wbgc-refresh #main .wbgc-photo-row .fusion-imageframe,
.wbgc-refresh #main .wbgc-photo-row .fusion-imageframe img {
	display: block;
	width: 100%;
}
.wbgc-refresh #main .wbgc-photo-row .fusion-imageframe img {
	aspect-ratio: 3 / 2;
	object-fit: cover;
}
/* The footer photo already fades in from white, so no extra space before it */
.wbgc-refresh #main .fusion-fullwidth.wbgc-photo-row:last-child {
	padding-bottom: 0 !important;
}
.wbgc-refresh #main .wbgc-photo-row.wbgc-photo-single .fusion-imageframe {
	max-width: 62rem;
	margin: 0 auto;
}
.wbgc-refresh #main .wbgc-photo-row.wbgc-photo-single .fusion-imageframe img {
	aspect-ratio: 16 / 9;
	object-position: center 35%;
}
@media (max-width: 800px) {
	.wbgc-refresh #main .wbgc-photo-row .fusion-layout-column + .fusion-layout-column {
		margin-top: 16px;
	}
}

/* ---------- Mobile ---------- */

@media (max-width: 800px) {
	.wbgc-refresh #main .fusion-fullwidth:not(.hundred-percent-height, .hundred-percent-fullwidth) :is(.fusion-text, .wbgc-membership-copy),
	.wbgc-refresh #main .fusion-fullwidth:not(.hundred-percent-height, .hundred-percent-fullwidth) :is(.fusion-text, .wbgc-membership-copy) :is(p, li) {
		font-size: 17px;
		line-height: 1.65;
	}
	.wbgc-refresh #main .fusion-fullwidth:not(.hundred-percent-height, .hundred-percent-fullwidth) :is(.fusion-text, .wbgc-membership-copy) :is(h2, h3) {
		font-size: 30px;
		margin-top: 1.6em;
	}
	.wbgc-refresh .fusion-flip-boxes {
		margin-bottom: 0 !important;
	}
	.wbgc-refresh .fusion-flip-box-wrapper {
		margin-bottom: 24px !important;
	}
}
