/* Goshen Site Fields — front-end styles for the list shortcodes.
   Matches the site: Archivo text, Geist uppercase labels, hairline rules.
   Lines follow gl-slate / gl-black / gl-light from the grid-lines file. */

/* ---------- credentials grid ---------- */
.gcg-cols { display: grid; gap: 1px; }
.gcg-cols-1 { grid-template-columns: minmax(0, 1fr); }
.gcg-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.gcg-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.gcg-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.gcg-cols-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.gcg-cols-6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
@media (max-width: 1024px) { .gcg-cols:not(.gcg-cols-1) { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px)  { .gcg-cols { grid-template-columns: minmax(0, 1fr) !important; } }
.gcg-credential { display: flex; flex-direction: column; gap: .25em; }
.gcg-credential__value { font-size: 2em; font-weight: 800; line-height: 1; }

/* ---------- tables: [gcg_contracts] [gcg_certifications] ---------- */
.gcg-table.gcg-table {
	--tbl-label-font: "Geist", "Inter", system-ui, sans-serif;
	--tbl-muted: color-mix(in srgb, currentColor 70%, transparent); /* ≈ Text Muted on light; adapts on dark */
	--tbl-line: var(--gl-line, #E0E3DF);
	--tbl-row-pad: clamp(1rem, 0.84rem + 0.68vw, 1.5rem);            /* 16 → 24px */
	--tbl-col-gap: clamp(1rem, 0.68rem + 1.36vw, 2rem);              /* 16 → 32px */
	width: 100%;
	margin: 0;
	border: 0;
	border-collapse: collapse;
	border-top: 1px solid currentColor;
	font-size: clamp(0.9375rem, 0.916rem + 0.09vw, 1rem);
	line-height: 1.5;
	font-variant-numeric: tabular-nums;
}
/* clear theme table styles (cell borders, zebra rows, hover fills) */
.gcg-table.gcg-table :is(th, td) { border: 0; background: none; text-align: left; vertical-align: top; }
.gcg-table.gcg-table tbody tr:nth-child(odd) > :is(th, td),
.gcg-table.gcg-table tbody tr:hover > :is(th, td) { background: none; }

.gcg-table.gcg-table thead th {
	padding: 1rem var(--tbl-col-gap) 1rem 0;
	border-bottom: 1px solid var(--tbl-line);
	font-family: var(--tbl-label-font);
	font-size: 0.75rem;
	font-weight: 500;
	line-height: 1.4;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--tbl-muted);
	white-space: nowrap;
}
.gcg-table.gcg-table tbody :is(th, td) {
	padding: var(--tbl-row-pad) var(--tbl-col-gap) var(--tbl-row-pad) 0;
	border-bottom: 1px solid var(--tbl-line);
}
.gcg-table.gcg-table :is(th, td):last-child { padding-right: 0; }
.gcg-table.gcg-table tbody th[scope="row"] { font-weight: 600; color: inherit; }
.gcg-table.gcg-table tbody td { color: var(--tbl-muted); overflow-wrap: anywhere; }

.gcg-contracts.gcg-table tbody th[scope="row"] { width: 30%; }
.gcg-certifications.gcg-table tbody th[scope="row"] { width: 34%; }
.gcg-contracts.gcg-table td:is([data-label="Type"], [data-label="Value"]) { white-space: nowrap; }

/* phones: each row folds into the title plus labelled lines */
@media (max-width: 767px) {
	.gcg-table.gcg-table,
	.gcg-table.gcg-table :is(tbody, tr, th, td) { display: block; width: auto; }
	.gcg-table.gcg-table thead {
		position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap;
	}
	.gcg-table.gcg-table tbody tr { padding: var(--tbl-row-pad) 0; border-bottom: 1px solid var(--tbl-line); }
	.gcg-table.gcg-table tbody :is(th, td) { padding: 0; border: 0; white-space: normal; }
	.gcg-table.gcg-table tbody th[scope="row"] { width: auto; margin-bottom: .75rem; line-height: 1.35; }
	.gcg-table.gcg-table tbody td {
		display: grid;
		grid-template-columns: 8.5rem minmax(0, 1fr);
		gap: 1rem;
		padding: .3rem 0;
		color: inherit;
	}
	.gcg-table.gcg-table tbody td::before {
		content: attr(data-label);
		padding-top: .2em;
		font-family: var(--tbl-label-font);
		font-size: 0.6875rem;
		font-weight: 500;
		line-height: 1.4;
		letter-spacing: 0.12em;
		text-transform: uppercase;
		color: var(--tbl-muted);
	}
	.gcg-table.gcg-table tbody td:empty { display: none; }
}

/* ---------- lists ---------- */
.gcg-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid currentColor; }
.gcg-list > li { padding: .75em 0; border-bottom: 1px solid var(--gl-line, #E0E3DF); }
.gcg-list > li > span + span::before { content: "· "; opacity: .6; }

/* ---------- limit="…" + Show all ---------- */
.gcg-limited.is-collapsed .gcg-extra { display: none !important; }
.gcg-more {
	display: inline-flex;
	align-items: center;
	gap: .75em;
	margin: 1.5rem 0 0;
	padding: .85em 1.25em;
	border: 1px solid currentColor;
	border-radius: 0;
	background: transparent;
	color: inherit;
	font-family: "Geist", "Inter", system-ui, sans-serif;
	font-size: 0.75rem;
	font-weight: 500;
	line-height: 1;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}
.gcg-more[hidden] { display: none; }
.gcg-more:hover { background: #BDEA42; border-color: #BDEA42; color: #161616; }
.gcg-more:focus-visible { outline: 2px solid #BDEA42; outline-offset: 2px; }
.gcg-more__icon { position: relative; width: 10px; height: 10px; flex: none; }
.gcg-more__icon::before, .gcg-more__icon::after {
	content: ""; position: absolute; left: 0; top: 50%; width: 100%; height: 1px; background: currentColor; transition: transform .25s ease;
}
.gcg-more__icon::after { transform: rotate(90deg); }
.gcg-more[aria-expanded="true"] .gcg-more__icon::after { transform: rotate(0deg); } /* + becomes − */


/* ---------- [gcg_legal] — Privacy Policy & Terms ----------
   Fonts: each part reads --gcg-legal-{part}-{property}, which Site Settings →
   Legal typography points at an Elementor Global Font. The values after the
   commas are the Goshen defaults used when no global font is chosen. */
.gcg-legal {
	--gcg-legal-sticky: 120px;   /* offset under a sticky header — sidebar top + anchor jumps */
	--gcg-legal-muted: color-mix(in srgb, currentColor 62%, transparent);
	--gcg-legal-line: var(--gl-line, #E0E3DF);
}
.gcg-legal--split {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
	gap: clamp(2rem, 0.5rem + 5vw, 6rem);
	align-items: start;
}
.gcg-legal--split .gcg-legal__aside { position: sticky; top: var(--gcg-legal-sticky); }
.gcg-legal--split .gcg-legal__main,
.gcg-legal--body .gcg-legal__doc { max-width: 44em; }
.gcg-legal--stacked .gcg-legal__aside { margin-bottom: clamp(2rem, 1.5rem + 2vw, 3.5rem); }
@media (max-width: 1024px) {
	.gcg-legal--split { grid-template-columns: minmax(0, 1fr); gap: clamp(2rem, 1.5rem + 2vw, 3rem); }
	.gcg-legal--split .gcg-legal__aside { position: static; }
}

/* contents menu */
.gcg-legal__contents-label {
	margin: 0 0 12px;
	font-family: "Geist", "Inter", system-ui, sans-serif;
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--gcg-legal-muted);
}
.gcg-legal__contents-list { list-style: none; margin: 0; padding: 0; }
.gcg-legal__contents-list li { margin: 0; border-top: 1px solid var(--gcg-legal-line); }
.gcg-legal__contents-list li:last-child { border-bottom: 1px solid var(--gcg-legal-line); }
.gcg-legal__contents-list a {
	display: flex;
	gap: 14px;
	padding: 11px 0;
	color: inherit;
	font-family: var(--gcg-legal-contents-font-family, "Geist", "Inter", system-ui, sans-serif);
	font-size: var(--gcg-legal-contents-font-size, 0.875rem);
	font-weight: var(--gcg-legal-contents-font-weight, 500);
	line-height: var(--gcg-legal-contents-line-height, 1.4);
	letter-spacing: var(--gcg-legal-contents-letter-spacing, normal);
	word-spacing: var(--gcg-legal-contents-word-spacing, normal);
	text-transform: var(--gcg-legal-contents-text-transform, none);
	font-style: var(--gcg-legal-contents-font-style, normal);
	text-decoration: var(--gcg-legal-contents-text-decoration, none);
	transition: color .2s ease;
}
.gcg-legal__contents-list a:hover .gcg-legal__contents-text { text-decoration: underline; text-underline-offset: 3px; }
.gcg-legal__contents-list a:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
.gcg-legal__contents-list .gcg-legal__num { flex: none; width: 1.75em; color: var(--gcg-legal-muted); font-variant-numeric: tabular-nums; }

/* intro */
.gcg-legal__intro {
	margin: 0 0 40px;
	font-family: var(--gcg-legal-intro-font-family, inherit);
	font-size: var(--gcg-legal-intro-font-size, clamp(1.125rem, 1.037rem + 0.38vw, 1.375rem));
	font-weight: var(--gcg-legal-intro-font-weight, 400);
	line-height: var(--gcg-legal-intro-line-height, 1.55);
	letter-spacing: var(--gcg-legal-intro-letter-spacing, normal);
	word-spacing: var(--gcg-legal-intro-word-spacing, normal);
	text-transform: var(--gcg-legal-intro-text-transform, none);
	font-style: var(--gcg-legal-intro-font-style, normal);
	text-decoration: var(--gcg-legal-intro-text-decoration, none);
}
.gcg-legal__intro p { margin: 0 0 1em; }
.gcg-legal__intro p:last-child { margin: 0; }

/* sections */
.gcg-legal__section {
	display: flex;
	flex-direction: column;
	gap: 14px;
	padding: 36px 0 40px;
	border-top: 1px solid var(--gcg-legal-line);
}
/* anchor jumps land below a sticky header (stronger than theme :target rules) */
.gcg-legal .gcg-legal__section,
.gcg-legal .gcg-legal__section:target { scroll-margin-top: var(--gcg-legal-sticky); scroll-margin-block-start: var(--gcg-legal-sticky); }
.gcg-legal__section > .gcg-legal__num {
	margin: 0;
	font-family: "Geist", "Inter", system-ui, sans-serif;
	font-size: 0.8125rem;
	font-weight: 500;
	color: var(--gcg-legal-muted);
	font-variant-numeric: tabular-nums;
}
.gcg-legal .gcg-legal__heading {
	margin: 0;
	color: inherit;
	font-family: var(--gcg-legal-headings-font-family, inherit);
	font-size: var(--gcg-legal-headings-font-size, clamp(1.375rem, 1.24rem + 0.56vw, 1.625rem));
	font-weight: var(--gcg-legal-headings-font-weight, 700);
	line-height: var(--gcg-legal-headings-line-height, 1.15);
	letter-spacing: var(--gcg-legal-headings-letter-spacing, -0.025em);
	word-spacing: var(--gcg-legal-headings-word-spacing, normal);
	text-transform: var(--gcg-legal-headings-text-transform, none);
	font-style: var(--gcg-legal-headings-font-style, normal);
	text-decoration: var(--gcg-legal-headings-text-decoration, none);
}
.gcg-legal__content {
	color: color-mix(in srgb, currentColor 88%, transparent);
	font-family: var(--gcg-legal-content-font-family, inherit);
	font-size: var(--gcg-legal-content-font-size, clamp(1rem, 0.978rem + 0.09vw, 1.0625rem));
	font-weight: var(--gcg-legal-content-font-weight, 400);
	line-height: var(--gcg-legal-content-line-height, 1.65);
	letter-spacing: var(--gcg-legal-content-letter-spacing, normal);
	word-spacing: var(--gcg-legal-content-word-spacing, normal);
	text-transform: var(--gcg-legal-content-text-transform, none);
	font-style: var(--gcg-legal-content-font-style, normal);
	text-decoration: var(--gcg-legal-content-text-decoration, none);
}
.gcg-legal__content > :first-child { margin-top: 0; }
.gcg-legal__content > :last-child { margin-bottom: 0; }
.gcg-legal__content :is(p, ul, ol) { margin: 0 0 1em; }
.gcg-legal__content :is(ul, ol) { padding-left: 1.25em; }
.gcg-legal__content li { margin: 0 0 .35em; }
.gcg-legal__content a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.gcg-legal__content strong { font-weight: 600; }
.gcg-legal-updated time { font-variant-numeric: tabular-nums; }
