/* =============================================================================
 * GRIT GUIDE — COMPANIES DIRECTORY  (companies.css)
 * Goes in: grit-guide-child/companies/companies.css
 * Enqueued only on the Companies template (companies/inc.php).
 *
 * Everything is scoped under body.page-gg-companies so nothing leaks to other
 * pages and these rules beat the theme's base styles. Square corners
 * everywhere EXCEPT the spotlight media pill/badge (999px) and the card link's
 * 22px arrow ring (50%). Display type is self-hosted Zuume Bold (uppercase,
 * tight line-height); everything else is the Helvetica system stack.
 * ============================================================================= */

/* ---- Self-hosted display font (Zuume) ---------------------------------------
 * Licensed for gritguide.com per handoff §11.4. Alternox (logo font) is NOT
 * loaded here — it is logo-only and unused in UI. */
@font-face {
	font-family: "Zuume";
	src: url("fonts/Zuume-Regular.otf") format("opentype"),
	     url("fonts/Zuume-Regular.ttf") format("truetype");
	font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
	font-family: "Zuume";
	src: url("fonts/Zuume-Bold.otf") format("opentype"),
	     url("fonts/Zuume-Bold.ttf") format("truetype");
	font-weight: 700; font-style: normal; font-display: swap;
}

body.page-gg-companies {
	--ggc-navy:      #18355E;
	--ggc-navy-deep: #0E1E36;
	--ggc-navy-pan:  #123363;
	--ggc-pink:      #FF1894;
	--ggc-pink-pr:   #D40D78;
	--ggc-blue:      #0092D6;
	--ggc-concrete:  #94989B;
	--ggc-grey:      #5A5F63;
	--ggc-plaster:   #F9F7F2;
	--ggc-line:      #DCDBD4;
	--ggc-hair:      #F0EEE8;
	--ggc-disp: "Zuume", "Oswald", "Arial Narrow", sans-serif;
	--ggc-sans: "Helvetica Neue", Helvetica, Arial, sans-serif;
	background: #FFFFFF;
}

/* House reset for just this page's main so theme entry width / margins don't
 * fight the full-bleed navy sections. */
body.page-gg-companies .gg-companies-main {
	font-family: var(--ggc-sans);
	color: var(--ggc-navy);
	background: #FFFFFF;
	overflow-x: clip;
}
body.page-gg-companies .gg-companies-main *,
body.page-gg-companies .gg-companies-main *::before,
body.page-gg-companies .gg-companies-main *::after { box-sizing: border-box; }

/* Shared inner width */
body.page-gg-companies .ggc-inner {
	max-width: 1400px;
	margin: 0 auto;
	padding-inline: 36px;
}

/* Kill theme heading shrink / spacing inside our sections */
body.page-gg-companies .gg-companies-main h1,
body.page-gg-companies .gg-companies-main h2,
body.page-gg-companies .gg-companies-main h3 {
	margin: 0;
	padding: 0;
	font-weight: 700;
	line-height: 1;
	letter-spacing: normal;
}

/* =============================================================================
 * HERO  (pattern: companies-hero)
 * ============================================================================= */
body.page-gg-companies .ggc-hero {
	max-width: 1400px;
	margin: 0 auto;
	padding: 26px 36px 10px;
}
body.page-gg-companies .ggc-crumb {
	font: 700 10.5px/1 var(--ggc-sans);
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--ggc-concrete);
	margin-bottom: 16px;
}
body.page-gg-companies .ggc-crumb a { color: var(--ggc-concrete); text-decoration: none; }
body.page-gg-companies .ggc-crumb a:hover { color: var(--ggc-pink); }
body.page-gg-companies .ggc-crumb .sep { margin: 0 8px; }
body.page-gg-companies .ggc-crumb .cur { color: var(--ggc-pink); }

body.page-gg-companies .ggc-hero-grid {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 40px;
	align-items: end;
	border-bottom: 3px solid var(--ggc-navy);
	padding-bottom: 22px;
}
body.page-gg-companies .ggc-h1 {
	font-family: var(--ggc-disp);
	font-weight: 700;
	text-transform: uppercase;
	font-size: 58px;
	line-height: 0.95;
	color: var(--ggc-navy);
	margin: 0 0 12px 0;
}
body.page-gg-companies .ggc-lead {
	font: 400 16px/1.6 var(--ggc-sans);
	color: var(--ggc-grey);
	margin: 0;
	max-width: 760px;
	text-wrap: pretty;
}
body.page-gg-companies .ggc-stat { text-align: right; }
body.page-gg-companies .ggc-stat-n {
	font-family: var(--ggc-disp);
	font-weight: 700;
	font-size: 46px;
	line-height: 1;
	color: var(--ggc-pink);
}
body.page-gg-companies .ggc-stat-l {
	font: 700 10.5px/1 var(--ggc-sans);
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--ggc-concrete);
	margin-top: 4px;
}

/* =============================================================================
 * FEATURED (spotlight) BAND
 * ============================================================================= */
body.page-gg-companies .ggc-featured {
	background: var(--ggc-navy-deep);
	margin-top: 24px;
}
body.page-gg-companies .ggc-featured .ggc-inner { padding-block: 34px 38px; }
body.page-gg-companies .ggc-featured-head { margin-bottom: 22px; }
body.page-gg-companies .ggc-featured-title {
	font-family: var(--ggc-disp);
	font-weight: 700;
	text-transform: uppercase;
	font-size: 34px;
	line-height: 1;
	color: #FFFFFF;
}
body.page-gg-companies .ggc-spot-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
}
body.page-gg-companies .ggc-spot {
	position: relative;
	overflow: hidden;
	background: linear-gradient(150deg, #123363 0%, #0E1E36 72%);
	border: 1px solid rgba(255,255,255,0.14);
	display: flex;
	flex-direction: column;
	transition: border-color 220ms ease-out;
}
body.page-gg-companies .ggc-spot:hover { border-color: rgba(255,24,148,0.55); }
body.page-gg-companies .ggc-spot-ghost {
	position: absolute; right: -10px; bottom: -14px;
	width: 74%; height: 80%;
	background-position: right bottom;
	background-size: contain;
	background-repeat: no-repeat;
	opacity: 0.13;
	pointer-events: none;
}
body.page-gg-companies .ggc-spot-rankbg {
	position: absolute; right: -10px; bottom: -30px;
	font-family: var(--ggc-disp);
	font-weight: 700; font-size: 170px; line-height: 1;
	color: rgba(255,255,255,0.06);
	pointer-events: none;
}
body.page-gg-companies .ggc-spot-top {
	display: flex; justify-content: space-between; align-items: center;
	padding: 18px 22px 0;
	position: relative;
}
body.page-gg-companies .ggc-spot-eyebrow {
	font: 700 10px/1 var(--ggc-sans);
	letter-spacing: 0.18em; text-transform: uppercase;
	color: var(--ggc-pink);
}
body.page-gg-companies .ggc-spot-rank {
	font-family: var(--ggc-disp);
	font-size: 19px; line-height: 1;
	color: rgba(255,255,255,0.4);
}
body.page-gg-companies .ggc-spot-body {
	padding: 22px 22px 20px;
	display: flex; flex-direction: column; gap: 7px;
	flex: 1;
	position: relative;
	min-height: 210px;
}
body.page-gg-companies .ggc-spot-name {
	font-family: var(--ggc-disp);
	font-weight: 700; text-transform: uppercase;
	font-size: 28px; line-height: 0.95;
	color: #FFFFFF;
}
body.page-gg-companies .ggc-spot-meta {
	font: 700 10px/1.4 var(--ggc-sans);
	letter-spacing: 0.12em; text-transform: uppercase;
	color: rgba(255,255,255,0.55);
}
body.page-gg-companies .ggc-spot-why {
	font: 400 13.5px/1.65 var(--ggc-sans);
	color: rgba(255,255,255,0.82);
	margin: 2px 0 0 0;
	text-wrap: pretty;
}
body.page-gg-companies .ggc-spot-foot {
	margin-top: auto; padding-top: 14px;
	border-top: 1px solid rgba(255,255,255,0.16);
	display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center;
	gap: 8px;
}
body.page-gg-companies .ggc-spot-pill {
	display: inline-block;
	background: var(--ggc-pink); color: #FFFFFF;
	font: 700 11px/1 var(--ggc-sans);
	letter-spacing: 0.1em; text-transform: uppercase;
	padding: 11px 16px; border-radius: 999px;
	text-decoration: none;
	box-shadow: 0 6px 18px rgba(255,24,148,0.35);
	transition: background 220ms ease-out;
}
body.page-gg-companies .ggc-spot-pill:hover { background: var(--ggc-pink-pr); }
body.page-gg-companies .ggc-spot-badge {
	display: inline-flex; align-items: center; gap: 7px;
	border: 1px solid rgba(255,24,148,0.55);
	color: var(--ggc-pink);
	font: 700 10px/1 var(--ggc-sans);
	letter-spacing: 0.14em; text-transform: uppercase;
	padding: 10px 14px; border-radius: 999px;
}
body.page-gg-companies .ggc-spot-dot {
	width: 7px; height: 7px; border-radius: 50%; background: var(--ggc-pink);
}
body.page-gg-companies .ggc-spot-note {
	font: 400 11px/1 var(--ggc-sans);
	color: rgba(255,255,255,0.45);
}

/* =============================================================================
 * FILTERS + SEARCH
 * ============================================================================= */
body.page-gg-companies .ggc-filters .ggc-inner { padding-block: 26px 6px; }
body.page-gg-companies .ggc-chiprow {
	display: flex; flex-wrap: wrap; align-items: center; gap: 8px;
}
body.page-gg-companies .ggc-chip {
	display: inline-block;
	font: 700 11.5px/1 var(--ggc-sans);
	letter-spacing: 0.08em; text-transform: uppercase;
	padding: 11px 16px;
	cursor: pointer;
	/* !important guards against the theme's global button styles overriding
	   the chip fill/label (was rendering white-on-white when active). */
	background: #FFFFFF !important; color: var(--ggc-navy) !important;
	border: 1.5px solid var(--ggc-line);
	border-radius: 0;
	transition: border-color 220ms ease-out, background 220ms ease-out, color 220ms ease-out;
}
body.page-gg-companies .ggc-chip:hover { border-color: var(--ggc-pink); }
body.page-gg-companies .ggc-chip.is-active {
	background: var(--ggc-pink) !important; color: #FFFFFF !important; border-color: var(--ggc-pink) !important;
}
body.page-gg-companies .ggc-chip:focus-visible {
	outline: 2px solid var(--ggc-blue); outline-offset: 2px;
}
body.page-gg-companies .ggc-search {
	margin-left: auto;
	width: 250px;
	padding: 11px 14px;
	font: 400 13px var(--ggc-sans);
	border: 1.5px solid var(--ggc-line);
	border-radius: 0;
	color: var(--ggc-navy);
	background: #FFFFFF;
	outline: none;
}
body.page-gg-companies .ggc-search:focus {
	border-color: var(--ggc-blue);
	box-shadow: 0 0 0 3px rgba(0,146,214,0.25);
}

/* =============================================================================
 * COUNT + GRID
 * ============================================================================= */
body.page-gg-companies .ggc-gridwrap .ggc-inner { padding-block: 20px 30px; }
body.page-gg-companies .ggc-count {
	font: 700 10.5px/1 var(--ggc-sans);
	letter-spacing: 0.14em; text-transform: uppercase;
	color: var(--ggc-concrete);
	margin-bottom: 14px;
}
body.page-gg-companies .ggc-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: 18px;
}
body.page-gg-companies .ggc-empty {
	font: 400 15px/1.6 var(--ggc-sans);
	color: var(--ggc-grey);
	margin: 8px 0 0;
}
body.page-gg-companies .ggc-clear {
	background: none; border: none; padding: 0;
	color: var(--ggc-pink); font: 700 15px/1.6 var(--ggc-sans);
	cursor: pointer; text-decoration: underline;
}

/* ---- Card ---- */
body.page-gg-companies .ggc-card {
	border: 1px solid var(--ggc-line);
	background: #FFFFFF;
	display: flex; flex-direction: column;
	transition: border-color 200ms ease-out, box-shadow 200ms ease-out;
}
body.page-gg-companies .ggc-card:hover {
	border-color: var(--ggc-pink);
	box-shadow: 0 6px 20px rgba(24,53,94,0.10);
}
body.page-gg-companies .ggc-tile {
	height: 84px;
	border-bottom: 1px solid var(--ggc-hair);
	display: flex; align-items: center; justify-content: center;
	position: relative;
}
body.page-gg-companies .ggc-tile-logo {
	position: absolute; inset: 12px;
	width: calc(100% - 24px); height: calc(100% - 24px);
	object-fit: contain;
}
body.page-gg-companies .ggc-mono {
	text-align: center; display: flex; flex-direction: column; gap: 5px;
}
body.page-gg-companies .ggc-mono-letters {
	font-family: var(--ggc-disp);
	font-size: 30px; line-height: 1;
}
body.page-gg-companies .ggc-mono-chip {
	font: 700 8.5px/1.4 var(--ggc-sans);
	letter-spacing: 0.14em; text-transform: uppercase;
}
body.page-gg-companies .ggc-feat-tag {
	position: absolute; top: 8px; right: 8px;
	background: var(--ggc-pink); color: #FFFFFF;
	font: 700 8px/1 var(--ggc-sans);
	letter-spacing: 0.14em; text-transform: uppercase;
	padding: 4px 7px;
}
body.page-gg-companies .ggc-body {
	padding: 20px 24px 18px;
	display: flex; flex-direction: column; gap: 7px; flex: 1;
}
body.page-gg-companies .ggc-namerow {
	display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline;
	gap: 2px 12px;
}
body.page-gg-companies .ggc-name {
	font-family: var(--ggc-disp);
	font-weight: 700; text-transform: uppercase;
	font-size: 22px; line-height: 1;
	color: var(--ggc-navy);
}
body.page-gg-companies .ggc-hq {
	font: 400 11px/1 var(--ggc-sans);
	color: var(--ggc-concrete);
}
body.page-gg-companies .ggc-desc {
	font: 400 13px/1.55 var(--ggc-sans);
	color: var(--ggc-grey);
	margin: 0; text-wrap: pretty;
}
body.page-gg-companies .ggc-why { margin-top: 2px; }
body.page-gg-companies .ggc-why-label {
	font: 700 9px/1 var(--ggc-sans);
	letter-spacing: 0.14em; text-transform: uppercase;
	color: var(--ggc-pink);
	margin-bottom: 4px;
}
body.page-gg-companies .ggc-why-copy {
	font: 400 12.5px/1.5 var(--ggc-sans);
	color: var(--ggc-navy);
	margin: 0; text-wrap: pretty;
}
body.page-gg-companies .ggc-foot {
	display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center;
	gap: 8px;
	margin-top: auto; padding-top: 10px;
	border-top: 1px solid var(--ggc-hair);
}
body.page-gg-companies .ggc-cat {
	font: 700 9.5px/1 var(--ggc-sans);
	letter-spacing: 0.1em; text-transform: uppercase;
	color: var(--ggc-grey);
	background: var(--ggc-plaster);
	border: 1px solid var(--ggc-line);
	padding: 5px 8px;
}
body.page-gg-companies .ggc-links {
	display: flex; align-items: center; gap: 14px;
}
body.page-gg-companies .ggc-inguide {
	font: 700 12px/1 var(--ggc-sans);
	color: var(--ggc-blue);
	text-decoration: none;
}
body.page-gg-companies .ggc-inguide:hover { color: var(--ggc-pink); }
body.page-gg-companies .ggc-pagelink {
	display: inline-flex; align-items: center; gap: 7px;
	font: 700 11px/1.3 var(--ggc-sans);
	color: var(--ggc-pink);
	text-decoration: none;
	word-break: break-all;
}
body.page-gg-companies .ggc-pagelink:hover { color: var(--ggc-pink-pr); }
body.page-gg-companies .ggc-pagelink:hover .ggc-arrow { border-color: var(--ggc-pink-pr); }
body.page-gg-companies .ggc-arrow {
	display: inline-flex; align-items: center; justify-content: center;
	width: 22px; height: 22px;
	border: 1.5px solid var(--ggc-pink);
	border-radius: 50%;
	font-size: 12px; flex: none;
	transition: border-color 220ms ease-out;
}

/* =============================================================================
 * LISTING CTA  (pattern: companies-cta)
 * ============================================================================= */
body.page-gg-companies .ggc-cta { padding: 0 36px 44px; max-width: 1400px; margin: 0 auto; }
body.page-gg-companies .ggc-cta-box {
	background: var(--ggc-plaster);
	border: 1px solid var(--ggc-line);
	padding: 30px 36px;
	display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center;
	gap: 16px;
}
body.page-gg-companies .ggc-cta-title {
	font-family: var(--ggc-disp);
	font-weight: 700; text-transform: uppercase;
	font-size: 26px; line-height: 1;
	color: var(--ggc-navy);
	margin-bottom: 6px;
}
body.page-gg-companies .ggc-cta-copy {
	font: 400 14px/1.5 var(--ggc-sans);
	color: var(--ggc-grey);
	margin: 0;
}
body.page-gg-companies .ggc-cta-btn {
	display: inline-block;
	background: var(--ggc-pink); color: #FFFFFF;
	font: 700 12px/1 var(--ggc-sans);
	letter-spacing: 0.1em; text-transform: uppercase;
	padding: 15px 26px;
	text-decoration: none;
	transition: background 220ms ease-out;
	white-space: nowrap;
}
body.page-gg-companies .ggc-cta-btn:hover { background: var(--ggc-pink-pr); }

/* =============================================================================
 * FLOATING FILTER WIDGET (FAB) — appears once the inline bar scrolls away.
 * Pinned to the TOP-RIGHT, flush to the right edge (no margin), so it clears
 * the accessibility ("ally") plugin button that lives bottom-right.
 * If it overlaps the sticky site header, bump --ggc-fab-top below.
 * ============================================================================= */
body.page-gg-companies .ggc-fab {
	--ggc-fab-top: 256px;      /* fallback offset; JS measures the real header and overrides this */
	position: fixed;
	top: var(--ggc-fab-top);
	right: 0;                  /* flush to the right edge — no right margin */
	bottom: auto;
	z-index: 90;
}
body.page-gg-companies .ggc-fab[hidden] { display: none; }

/* The icon box */
body.page-gg-companies .ggc-fab-btn {
	position: relative;
	display: flex; align-items: center; justify-content: center;
	width: 40px; height: 40px;
	/* !important zeroes the theme's global <button> padding, which otherwise
	   squeezes the icon to nothing at this small box size. */
	padding: 0 !important;
	margin: 0 !important;
	line-height: 0 !important;
	min-width: 0;
	background: var(--ggc-navy) !important;
	color: #FFFFFF !important;
	border: none;
	border-radius: 0;
	cursor: pointer;
	box-shadow: 0 8px 24px rgba(14,30,54,0.32);
	transition: background 220ms ease-out, transform 220ms ease-out;
}
body.page-gg-companies .ggc-fab-btn:hover { background: var(--ggc-navy-pan) !important; }
body.page-gg-companies .ggc-fab.is-open .ggc-fab-btn { background: var(--ggc-pink) !important; }
body.page-gg-companies .ggc-fab-btn:focus-visible { outline: 2px solid var(--ggc-blue); outline-offset: 2px; }
body.page-gg-companies .ggc-fab-ico {
	width: 18px; height: 18px;
	flex: none;                 /* never let flex shrink the icon to 0 */
	display: block;
	color: #FFFFFF;             /* currentColor for the stroke, regardless of theme */
	fill: none !important;      /* theme svg{fill} rules must not fill the funnel */
	stroke: #FFFFFF !important; /* keep the funnel outline white on the navy box */
}

/* Pink "a filter is active" dot */
body.page-gg-companies .ggc-fab-dot {
	position: absolute; top: 6px; right: 6px;
	width: 8px; height: 8px; border-radius: 50%;
	background: var(--ggc-pink);
	box-shadow: 0 0 0 2px var(--ggc-navy);
	opacity: 0; transform: scale(0.4);
	transition: opacity 180ms ease-out, transform 180ms ease-out;
}
body.page-gg-companies .ggc-fab.is-filtered .ggc-fab-dot { opacity: 1; transform: scale(1); }
body.page-gg-companies .ggc-fab.is-open.is-filtered .ggc-fab-dot { box-shadow: 0 0 0 2px var(--ggc-pink); }

/* Slide-out panel (anchored below the button, opening down-and-left) */
body.page-gg-companies .ggc-fab-panel {
	position: absolute;
	right: 0;
	top: calc(100% + 12px);
	bottom: auto;
	width: min(320px, calc(100vw - 32px));
	max-height: min(72vh, 620px);
	overflow-y: auto;
	background: #FFFFFF;
	border: 1px solid var(--ggc-line);
	box-shadow: 0 18px 48px rgba(14,30,54,0.28);
	padding: 16px;
	opacity: 0;
	transform: translateY(-10px) scale(0.98);
	transform-origin: top right;
	pointer-events: none;
	transition: opacity 220ms ease-out, transform 220ms ease-out;
}
body.page-gg-companies .ggc-fab-panel[hidden] { display: none; }
body.page-gg-companies .ggc-fab.is-open .ggc-fab-panel {
	opacity: 1;
	transform: none;
	pointer-events: auto;
}
body.page-gg-companies .ggc-fab-head {
	display: flex; align-items: center; gap: 10px;
	margin-bottom: 12px;
}
body.page-gg-companies .ggc-fab-title {
	font-family: var(--ggc-disp);
	font-weight: 700; text-transform: uppercase;
	font-size: 20px; line-height: 1;
	color: var(--ggc-navy);
}
body.page-gg-companies .ggc-fab-shown {
	font: 700 10px/1 var(--ggc-sans);
	letter-spacing: 0.12em; text-transform: uppercase;
	color: var(--ggc-concrete);
}
body.page-gg-companies .ggc-fab-close {
	margin-left: auto;
	background: none; border: none; padding: 0;
	width: 28px; height: 28px;
	font-size: 24px; line-height: 1;
	color: var(--ggc-concrete);
	cursor: pointer;
	transition: color 180ms ease-out;
}
body.page-gg-companies .ggc-fab-close:hover { color: var(--ggc-pink); }
/* Panel search: full width, own row */
body.page-gg-companies .ggc-fab-searchinput {
	margin-left: 0;
	width: 100%;
	margin-bottom: 12px;
}
/* Panel chips: wrap into a compact stack */
body.page-gg-companies .ggc-fab-chiprow {
	display: flex; flex-wrap: wrap; gap: 7px;
}
body.page-gg-companies .ggc-fab-chip {
	padding: 9px 12px;
	font-size: 11px;
}

/* =============================================================================
 * RESPONSIVE
 * ============================================================================= */
@media (max-width: 1024px) {
	body.page-gg-companies .ggc-spot-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 760px) {
	/* Tighter gutters */
	body.page-gg-companies .ggc-inner,
	body.page-gg-companies .ggc-hero,
	body.page-gg-companies .ggc-cta { padding-inline: 20px; }

	/* Hero stacks; headline steps down but stays bold */
	body.page-gg-companies .ggc-hero-grid {
		grid-template-columns: 1fr;
		gap: 18px;
		align-items: start;
	}
	body.page-gg-companies .ggc-h1 { font-size: 40px; }
	body.page-gg-companies .ggc-stat { text-align: left; }

	/* Spotlight collapses to one column */
	body.page-gg-companies .ggc-spot-grid { grid-template-columns: 1fr; }
	body.page-gg-companies .ggc-spot-body { min-height: 0; }

	/* Search drops to its own full-width row under the chips */
	body.page-gg-companies .ggc-search { margin-left: 0; width: 100%; }

	/* Grid: never overflow a phone; go single column on the smallest screens */
	body.page-gg-companies .ggc-grid { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }

	/* House rule: readable running copy holds a 15px floor on mobile.
	 * (Letterspaced uppercase micro-labels — eyebrows, tags, chips, count,
	 * breadcrumb, meta — are UI chrome and keep their designed size.) */
	body.page-gg-companies .ggc-lead,
	body.page-gg-companies .ggc-desc,
	body.page-gg-companies .ggc-why-copy,
	body.page-gg-companies .ggc-spot-why,
	body.page-gg-companies .ggc-inguide,
	body.page-gg-companies .ggc-search,
	body.page-gg-companies .ggc-spot-note,
	body.page-gg-companies .ggc-hq { font-size: 15px; }
	body.page-gg-companies .ggc-cta-copy { font-size: 15px; }

	/* FAB stays flush to the right edge; JS refines the top to the real header */
	body.page-gg-companies .ggc-fab { --ggc-fab-top: 150px; right: 0; }
	body.page-gg-companies .ggc-fab-panel { width: min(300px, calc(100vw - 16px)); max-height: 72vh; }
	/* Panel search stays at the 15px readable floor on mobile */
	body.page-gg-companies .ggc-fab-searchinput { font-size: 15px; }
}

@media (max-width: 480px) {
	body.page-gg-companies .ggc-grid { grid-template-columns: 1fr; }
	body.page-gg-companies .ggc-cta-box { flex-direction: column; align-items: flex-start; }
}
