/* Companies page. Reference: 1440 px, 64 px gutters. */

.co-page {
	--co-h2: clamp(32px, 3.75vw, 54px);
	--co-h3: clamp(26px, 3.056vw, 44px);
	--co-name: clamp(22px, 1.944vw, 28px);
}
.co-page [hidden],
.co-cta [hidden] { display: none !important; }

/* Intro */
.co-intro { padding-top: clamp(24px, 3.2vw, 46px); }
.co-intro__split { --split-left: 761fr; --split-right: 551fr; }
.co-intro .jdl-eyebrow { margin-bottom: clamp(12px, 1.4vw, 20px); }
.co-intro__line { display: block; }
.co-intro__lede {
	font-size: clamp(16px, 1.25vw, 18px);
	line-height: 1.45;
	max-width: 30em;
}
.co-shortcuts {
	display: flex;
	flex-wrap: wrap;
	gap: 0 clamp(14px, 1.1vw, 16px);
	margin-top: clamp(4px, 1vw, 12px);
}
.co-shortcuts a {
	display: inline-flex;
	align-items: center;
	min-height: var(--tap);
	font-family: var(--font-serif);
	font-size: clamp(17px, 1.39vw, 20px);
	color: var(--blue);
	text-decoration: none;
}
.co-shortcuts a:hover,
.co-shortcuts a:focus-visible { text-decoration: underline; text-underline-offset: 0.2em; }
@media (min-width: 1000px) { .co-shortcuts a { min-height: 32px; } }

/* Filters */
.co-filters {
	display: flex;
	flex-wrap: wrap;
	gap: 0 clamp(14px, 1.7vw, 24px);
	margin-top: clamp(8px, 1.5vw, 20px);
	padding-top: clamp(8px, 1vw, 14px);
	border-top: 2px solid var(--rule);
}
.co-filter {
	min-height: var(--tap);
	padding: 0 2px;
	border: 0;
	border-bottom: 2px solid transparent;
	background: none;
	color: var(--ink);
	font-family: var(--font-sans);
	font-size: clamp(14px, 1vw, 14px);
	line-height: 1.2;
	cursor: pointer;
}
.co-filter:hover { border-bottom-color: var(--rule); }
.co-filter[aria-pressed="true"] {
	color: var(--blue);
	border-bottom-color: var(--blue);
}
.co-filter { min-width: var(--tap); }
@media (min-width: 1000px) { .co-filter { min-height: 36px; min-width: 0; } }

/* Sections */
.co-section {
	padding-block: clamp(28px, 2.1vw, 30px);
}
.co-section + .co-section { border-top: 2px solid var(--rule); }
.co-section--current { padding-top: clamp(20px, 2.2vw, 32px); padding-bottom: clamp(28px, 3.4vw, 48px); }
.co-h2 {
	font-size: var(--co-h2);
	line-height: 1.1;
}
.portfolio-subsection-heading {
	font-family: var(--font-serif);
	font-size: var(--co-h3);
	font-weight: 400;
	line-height: 1.1;
	color: var(--ink);
}
.co-head {
	--split-left: 761fr;
	--split-right: 551fr;
	align-items: center;
	margin-bottom: clamp(20px, 1.9vw, 26px);
}
.co-head__aside {
	text-align: center;
	font-size: 14px;
	line-height: 1.3;
	color: var(--gray);
}
.co-head__aside--accent {
	font-size: 11.5px;
	letter-spacing: 0.02em;
	color: var(--blue);
}
@media (max-width: 860px) {
	.co-head__aside { text-align: left; }
}

.co-section--past .co-h2 { margin-bottom: clamp(16px, 1.8vw, 24px); }
.co-subsection + .co-subsection {
	margin-top: clamp(32px, 3.5vw, 50px);
	padding-top: clamp(24px, 2.1vw, 30px);
	border-top: 2px solid var(--rule);
}
.co-subsection .portfolio-subsection-heading { margin-bottom: clamp(20px, 2.2vw, 32px); }

/* Grids */
.co-grid {
	display: grid;
	gap: 34px 35px;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}
.co-grid--4 {
	gap: 52px 28px;
	grid-template-columns: repeat(4, minmax(0, 1fr));
}
@media (max-width: 1099px) {
	.co-grid, .co-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 24px; }
}
@media (max-width: 599px) {
	.co-grid, .co-grid--4 { grid-template-columns: minmax(0, 1fr); row-gap: 36px; }
}
.co-grid--3 { margin: 0; }

/* Cards */
.co-card { min-width: 0; }
.co-card__link {
	display: block;
	color: inherit;
	text-decoration: none;
}
.co-card__body {
	display: block;
	margin-top: 16px;
}
.co-card__link:hover .co-card__name { text-decoration: underline; text-underline-offset: 0.15em; text-decoration-thickness: 1px; }
.co-card__name {
	display: block;
	margin: 0;
	font-family: var(--font-serif);
	font-size: var(--co-name);
	line-height: 1.04;
	color: var(--ink);
}
.co-card__label {
	display: block;
	margin: 8px 0 0;
	font-size: 12px;
	line-height: 1.3;
	color: var(--gray);
}
.co-card--past { cursor: default; }

/* Brand frames */
.co-card--current-florida-trade-specialists .jdl-frame img { transform: translateX(5.5%); }
.co-card--current-virtual-dining-concepts .jdl-frame {
	background: #FEFAF0 url("../img/vdc_gradient.png") center / 100% 100% no-repeat;
}
.co-card--current-virtual-dining-concepts .jdl-frame img { width: 86%; margin-inline: auto; }

.co-card--current-florida-private-providers .jdl-frame img { width: 80%; margin-inline: auto; }
.co-card--current-all-florida-permits .jdl-frame img { width: 72%; margin-inline: auto; }
.co-card--current-florida-plumbing-specialists .jdl-frame img { width: 78%; margin-inline: auto; }
.co-card--current-club-space .jdl-frame img { width: 72%; margin-inline: auto; }

/* Text listings */

/* CTA */
.co-cta { margin-top: clamp(16px, 2vw, 32px); }
.co-cta__split { --split-left: 1fr; --split-right: 262px; column-gap: 32px; }
.co-cta__title { font-size: clamp(30px, 3.05vw, 44px); line-height: 1.1; }
.co-cta__text { margin-top: 16px; font-size: clamp(16px, 1.25vw, 18px); }
.co-cta__action .jdl-btn { width: 100%; min-height: 52px; }
@media (max-width: 860px) {
	.co-cta__split { --split-right: 1fr; }
	.co-cta__action .jdl-btn { width: auto; }
}

.co-empty { margin-top: 32px; padding-bottom: 32px; font-size: var(--fs-body); color: var(--gray); }
