.cg-c19-availability {
	width: 100%;
	box-sizing: border-box;
	color: var(--cg-text-color);
}

.cg-c19-availability__list {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--cg-space-6);
	margin: 0;
	padding: 0;
	list-style: none;
}

.cg-c19-availability__item {
	min-width: 0;
	box-sizing: border-box;
	padding: var(--cg-space-6);
	background: var(--cg-color-white);
	border: 1px solid var(--cg-color-border);
}

.cg-c19-availability__heading {
	margin: 0 0 var(--cg-space-4);
}

.cg-c19-availability__title,
.cg-c19-availability__location,
.cg-c19-availability__label,
.cg-c19-availability__available,
.cg-c19-availability__requirement {
	margin-top: 0;
	margin-bottom: 0;
}

.cg-c19-availability__location {
	margin-top: var(--cg-space-1);
	font-weight: var(--cg-font-weight-semibold);
}

.cg-c19-availability__facts {
	display: grid;
	gap: var(--cg-space-4);
}

.cg-c19-availability__fact {
	min-width: 0;
}

.cg-c19-availability__label {
	margin-bottom: var(--cg-space-1);
	font-weight: var(--cg-font-weight-semibold);
}

.cg-c19-availability__available {
	font-weight: var(--cg-font-weight-semibold);
}

.cg-c19-availability__requirement--local {
	margin-top: var(--cg-space-3);
}

.cg-c19-availability__status > .cg-c16-status,
.cg-c19-availability__status > .cg-c16-status-group {
	margin-top: 0;
}

.cg-c19-availability__link {
	display: inline-flex;
	align-items: center;
	min-height: var(--cg-control-min-height);
	font-weight: var(--cg-font-weight-semibold);
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

.cg-c19-availability__link:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 2px;
}

@media (max-width: 980px) {
	.cg-c19-availability__list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 767px) {
	.cg-c19-availability__list {
		grid-template-columns: minmax(0, 1fr);
		gap: var(--cg-space-4);
	}

	.cg-c19-availability__item {
		padding: var(--cg-space-4);
	}
}

/*
 * Long public service names must never widen a C19 card.
 * Presentation-only robustness; no grid, data or status change.
 */
.cg-c19-availability__title {
        overflow-wrap: anywhere;
        hyphens: auto;
}

/* 0.6.3 curated location */

.cg-c19-availability__heading {
        margin-bottom: 0;
}

.cg-c19-availability__facts {
        margin-top: var(--cg-space-4);
}

.cg-c19-availability__facts:empty {
        display: none;
        margin-top: 0;
}

.cg-c19-availability__featured-list .cg-c19-availability__item {
        padding: var(--cg-space-4);
}

.cg-c19-availability__details {
        margin-top: var(--cg-space-6);
}

.cg-c19-availability__summary {
        width: fit-content;
        cursor: pointer;
        font-weight: var(--cg-font-weight-semibold);
        text-decoration: underline;
        text-underline-offset: 0.15em;
}

.cg-c19-availability__summary:focus-visible {
        outline: 2px solid currentColor;
        outline-offset: 3px;
}

.cg-c19-availability__groups {
        display: grid;
        grid-template-columns:
                repeat(3, minmax(0, 1fr));
        gap: var(--cg-space-6);
        margin-top: var(--cg-space-6);
}

.cg-c19-availability__group {
        min-width: 0;
        box-sizing: border-box;
        padding: var(--cg-space-4);
        background: var(--cg-color-white);
        border: 1px solid var(--cg-color-border);
}

.cg-c19-availability__group-title {
        margin-top: 0;
        margin-bottom: var(--cg-space-4);
}

.cg-c19-availability__group-list {
        margin: 0;
        padding: 0;
        list-style: none;
}

.cg-c19-availability__item--compact {
        padding: var(--cg-space-3) 0;
        background: transparent;
        border: 0;
        border-top:
                1px solid var(--cg-color-border);
}

.cg-c19-availability__item--compact:first-child {
        padding-top: 0;
        border-top: 0;
}

.cg-c19-availability__item--compact:last-child {
        padding-bottom: 0;
}

.cg-c19-availability__item--compact
.cg-c19-availability__title {
        font-size: 1rem;
        line-height: 1.4;
        font-weight:
                var(--cg-font-weight-semibold);
}

@media (max-width: 980px) {
        .cg-c19-availability__groups {
                grid-template-columns:
                        repeat(
                                2,
                                minmax(0, 1fr)
                        );
        }
}

@media (max-width: 767px) {
        .cg-c19-availability__groups {
                grid-template-columns:
                        minmax(0, 1fr);
                gap: var(--cg-space-4);
        }

        .cg-c19-availability__details,
        .cg-c19-availability__groups {
                margin-top: var(--cg-space-4);
        }
}


/*
 * 0.6.4 curated-location presentation
 *
 * Presentation only.
 * No resolver, data, status or availability changes.
 */

/*
 * All featured cards form one visual set.
 * Equal implicit grid-row sizing makes both rows equally high.
 */
.cg-c19-availability__featured-list {
        grid-auto-rows: 1fr;
}

.cg-c19-availability__featured-list
.cg-c19-availability__item {
        height: 100%;
        min-height: 92px;
        display: flex;
        flex-direction: column;
        justify-content: center;
}

/*
 * The disclosure itself is a relevant navigation element,
 * not small auxiliary text.
 */
.cg-c19-availability__summary {
        font-size: 18px;
        line-height: 1.4;
}

/*
 * Each service group should end with its real content.
 * A short group such as Firmenfitness must not stretch
 * to the height of Physiotherapie.
 */
.cg-c19-availability__groups {
        align-items: start;
}

.cg-c19-availability__group {
        align-self: start;
}

/*
 * Full service index: normal readable website text size.
 */
.cg-c19-availability__item--compact {
        padding-top: 15px;
        padding-bottom: 15px;
}

.cg-c19-availability__item--compact:first-child {
        padding-top: 0;
}

.cg-c19-availability__item--compact:last-child {
        padding-bottom: 0;
}

.cg-c19-availability__item--compact
.cg-c19-availability__title {
        font-size: 18px;
        line-height: 1.45;
        font-weight: 500;
}

@media (max-width: 767px) {
        .cg-c19-availability__featured-list
        .cg-c19-availability__item {
                min-height: 76px;
        }
}