@layer fc.components {
.fc-card {
container: fc-card / inline-size;
position: relative;
display: flex;
flex-direction: column;
min-inline-size: 0;
background-color: var(--fc-card-bg, var(--fc-color-bg-surface));
color: var(--fc-color-text-default);
border: var(--fc-border-width-surface, var(--fc-border-width-thin)) var(--fc-card-border-style, solid) var(--fc-card-border, var(--fc-color-border-subtle));
border-radius: var(--fc-radius-xl);
box-shadow: var(--fc-card-shadow, none);
overflow: clip;
transition:
box-shadow var(--fc-duration-normal) var(--fc-easing-standard),
border-color var(--fc-duration-normal) var(--fc-easing-standard),
translate var(--fc-duration-normal) var(--fc-easing-standard);
}
.fc-card--feature {
background-color: var(--fc-theme-feature-bg, var(--fc-color-bg-surface));
background-image: var(--fc-theme-feature-image, none);
text-shadow: var(--fc-theme-feature-text-shadow, none);
color: var(--fc-theme-feature-fg, var(--fc-color-text-default));
padding: var(--fc-space-6);
}
@media (forced-colors: active) {
.fc-card--feature { text-shadow: none; background-image: none; background-color: Canvas; color: CanvasText; }
}
.fc-card--elevated {
border-color: transparent;
box-shadow: var(--fc-shadow-raised);
}
.fc-card--subtle {
background-color: var(--fc-color-bg-subtle);
border-color: transparent;
}
.fc-card__media {
display: block;
inline-size: 100%;
aspect-ratio: 16 / 9;
object-fit: cover;
background-color: var(--fc-color-bg-muted);
}
.fc-card__header,
.fc-card__body,
.fc-card__footer {
padding-inline: var(--fc-space-5);
}
.fc-card__header {
display: flex;
align-items: start;
gap: var(--fc-space-3);
padding-block-start: var(--fc-space-5);
}
.fc-card__heading {
display: flex;
flex-direction: column;
gap: var(--fc-space-1);
flex: 1;
min-inline-size: 0;
}
.fc-card__title {
margin: 0;
font-size: var(--fc-font-size-lg);
font-weight: var(--fc-font-weight-semibold);
line-height: var(--fc-line-height-snug);
}
.fc-card__subtitle {
margin: 0;
font-size: var(--fc-font-size-sm);
color: var(--fc-color-text-muted);
}
.fc-card__body {
display: flex;
flex-direction: column;
gap: var(--fc-space-4);
flex: 1;
padding-block: var(--fc-space-5);
font-size: var(--fc-font-size-sm);
color: var(--fc-color-text-muted);
}
.fc-card__body > * {
margin-block: 0;
}
.fc-card__footer {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: var(--fc-space-2);
padding-block: var(--fc-space-3) var(--fc-space-5);
}
.fc-card__footer--divided {
border-block-start: var(--fc-border-width-thin) solid var(--fc-color-border-subtle);
padding-block-start: var(--fc-space-4);
}
.fc-card__layout {
display: grid;
grid-template-columns: 1fr;
}
@container fc-card (inline-size >= 34rem) {
.fc-card__layout {
grid-template-columns: minmax(12rem, 2fr) 3fr;
}
.fc-card__layout > .fc-card__media {
block-size: 100%;
aspect-ratio: auto;
}
}
@container fc-card (inline-size < 18rem) {
.fc-card__header,
.fc-card__body,
.fc-card__footer {
padding-inline: var(--fc-space-3);
}
.fc-card__header {
padding-block-start: var(--fc-space-3);
}
.fc-card__title {
font-size: var(--fc-font-size-md);
}
}
.fc-card__link {
color: inherit;
text-decoration: none;
}
.fc-card__link::after {
content: "";
position: absolute;
inset: 0;
z-index: var(--fc-z-base);
}
.fc-card:has(.fc-card__link:focus-visible) {
border-color: var(--fc-color-accent-border);
}
.fc-card:has(.fc-card__link):hover {
border-color: var(--fc-color-border-default);
box-shadow: var(--fc-shadow-overlay);
}
.fc-card:has(.fc-card__link):active {
translate: 0 var(--fc-space-px);
box-shadow: var(--fc-shadow-raised);
}
.fc-card__footer :is(a, button) {
position: relative;
z-index: var(--fc-z-raised);
}
.fc-card:has(input:checked) {
border-color: var(--fc-color-accent-border);
background-color: var(--fc-color-accent-bg-subtle);
}
.fc-card:has(:disabled) {
opacity: 1;
cursor: not-allowed;
}
@media (forced-colors: active) {
.fc-card {
border-color: CanvasText;
}
.fc-card:has(input:checked) {
border-color: Highlight;
border-width: var(--fc-border-width-thick);
}
}
}