/* App detail pages share the white hero card; app icons keep their native proportions. */
.outloud-app-detail .outloud-product-media .outloud-product-image { max-width: 14rem; }
.outloud-app-detail > .outloud-hero-copy > p { margin: 0 0 var(--wp--preset--spacing--40); }
.outloud-app-detail .wp-block-post-excerpt { max-width: 68ch; }
.outloud-app-detail .wp-block-post-excerpt__excerpt { margin: 0; }
.outloud-app-detail .wp-block-post-excerpt__more-text { display: none; }
.outloud-app-privacy {
    border-top: var(--wp--custom--card--border-width) solid var(--wp--custom--card--border);
    margin-block-start: var(--wp--custom--spacing--content);
    padding-block-start: var(--wp--custom--spacing--content);
}
.outloud-app-privacy > :first-child { margin-block-start: 0; }
.outloud-app-privacy .wp-block-post-template { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--wp--custom--spacing--content); }
.outloud-app-privacy .wp-block-post-template > li { margin: 0; }
.outloud-app-privacy .wp-block-post-template > li > :first-child { margin-top: 0; }
.outloud-app-privacy .wp-block-post-template > li > :last-child { margin-bottom: 0; }
.outloud-app-privacy p { max-width: 68ch; }
.outloud-app-description > .wp-block-post-content { max-width: 68ch; }
.outloud-app-description > .wp-block-post-content:has(> .outloud-app-section) {
    display: block;
    column-gap: var(--wp--custom--spacing--columns);
}
.outloud-app-description .outloud-app-section { min-width: 0; margin: 0; }
.outloud-app-description .outloud-app-section + .outloud-app-section { margin-block-start: var(--wp--custom--spacing--subsection); }
.outloud-app-section > :first-child { margin-block-start: 0; }
.outloud-app-section > :last-child { margin-block-end: 0; }
.outloud-app-section :is(h2, h3) { break-after: avoid; }
.outloud-app-section :is(p, li) { orphans: 3; widows: 3; }
.outloud-app-section a { overflow-wrap: anywhere; }
@media (min-width: 80rem) {
    .outloud-app-description > .wp-block-post-content:has(> .outloud-app-section) {
        max-width: none;
        column-count: 2;
        column-fill: balance;
    }
    .outloud-app-description .outloud-app-section { break-inside: avoid-column; }
}
@media (min-width: 64.001rem) {
    .outloud-app-detail .outloud-product-hero-layout { grid-template-columns: minmax(0, min(68ch, 65%)) minmax(0, 1fr); }
    .outloud-app-detail .outloud-product-media .outloud-product-image { margin-inline: 0; }
}
@media (max-width: 64rem) {
    .outloud-app-detail .outloud-product-media .outloud-product-image { max-width: 10rem; margin-inline: 0; }
    .outloud-app-privacy .wp-block-post-template { grid-template-columns: minmax(0, 1fr); }
}
/* Native Query Loop cards and the content plugin's explicit GET form. */
:is(.outloud-app-catalogue, .outloud-staff) > .wp-block-post-template > li,
.outloud-shop-card {
    --wp--custom--card--background: var(--wp--custom--card--interactive--background);
    --wp--custom--card--hover: var(--wp--custom--card--interactive--hover);
    --wp--custom--card--border: var(--wp--custom--card--interactive--border);
    --wp--custom--card--border-width: var(--wp--custom--card--interactive--border-width);
    box-shadow: var(--wp--custom--card--interactive--shadow);
}
.outloud-catalogue .wp-block-post-template {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--wp--custom--card--gap);
}
@media (max-width: 64rem) {
    .outloud-catalogue .wp-block-post-template { grid-template-columns: 1fr; }
}
@media (min-width: 80rem) {
    .outloud-home-current .outloud-training-catalogue .wp-block-post-template {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}
.outloud-catalogue .wp-block-post-template > li {
    margin-block-start: 0;
    padding: var(--wp--custom--card--padding);
    border: var(--wp--custom--card--border-width) solid var(--wp--custom--card--border);
    border-radius: var(--wp--custom--card--radius);
    background: var(--wp--custom--card--background);
}
.outloud-catalogue .wp-block-post-title { margin-block: 1rem; font-size: var(--wp--preset--font-size--x-large); }
.outloud-catalogue .wp-block-post-excerpt { margin-block: 1rem; }
.outloud-catalogue .wp-block-post-featured-image { margin: 0; }
.outloud-catalogue.outloud-training-catalogue .wp-block-post-template > li {
    background: var(--wp--custom--card--green--background);
    border-color: var(--wp--custom--card--green--border);
}
.wp-block-group.has-outloud-hero-surface-background-color {
    border-color: var(--wp--custom--card--green--border);
}
.wp-block-group:is(.has-outloud-sunlight-background-color, .has-outloud-service-surface-background-color) {
    border: var(--wp--custom--card--border-width) solid var(--wp--custom--card--yellow--border);
}
/* Optional native heading group: coloured header, outlined white body. */
.outloud-catalogue .wp-block-post-template > li:has(> .outloud-card-heading) {
    background: var(--wp--preset--color--auris-white);
}
.outloud-card-heading {
    margin: calc(-1 * var(--wp--custom--card--padding)) calc(-1 * var(--wp--custom--card--padding)) var(--wp--custom--card--text-gap);
    padding: var(--wp--custom--card--padding);
    background: var(--wp--custom--card--background);
    border-radius: calc(var(--wp--custom--card--radius) - var(--wp--custom--card--border-width)) calc(var(--wp--custom--card--radius) - var(--wp--custom--card--border-width)) 0 0;
}
.outloud-training-catalogue .outloud-card-heading {
    background: var(--wp--preset--color--outloud-hero-surface);
}
.outloud-card-heading > :first-child { margin-block-start: 0; }
.outloud-card-heading > :last-child { margin-block-end: 0; }
.outloud-card-heading > .wp-block-post-title {
    min-block-size: var(--wp--custom--card--heading--title-min-height);
}
/* The white body overlaps the heading colour, revealing it behind its corners. */
.outloud-catalogue .wp-block-post-template > li:has(> .outloud-card-body) {
    --wp--custom--card--border-width: var(--wp--custom--card--heading--border-width);
    box-shadow: 0 0 0 var(--wp--custom--card--heading--edge-width) var(--wp--custom--card--heading--edge-color);
    display: flex;
    flex-direction: column;
    padding: 0;
    background: var(--wp--custom--card--background);
}
.outloud-catalogue.outloud-training-catalogue .wp-block-post-template > li:has(> .outloud-card-body) {
    background: var(--wp--custom--card--heading--background);
    border-color: var(--wp--custom--card--heading--border);
}
.outloud-catalogue li:has(> .outloud-card-body) > .outloud-card-heading {
    margin: 0;
    background: var(--wp--custom--card--heading--background);
    padding-block-end: calc(var(--wp--custom--card--padding) + var(--wp--custom--card--radius));
}
.outloud-card-body {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: var(--wp--preset--spacing--40);
    margin: calc(-1 * var(--wp--custom--card--radius)) 0 0;
    padding: var(--wp--custom--card--padding);
    background: var(--wp--preset--color--auris-white);
    border-radius: calc(var(--wp--custom--card--radius) - var(--wp--custom--card--border-width));
}
.outloud-card-body > * { margin-block: 0; }
.outloud-card-body .wp-block-post-excerpt__excerpt { margin-block: 0; }
.outloud-card-body > :is(.wp-block-read-more, .wp-block-buttons, .outloud-card-actions):last-child {
    align-self: flex-start;
    margin-block-start: auto;
}
.outloud-card-actions {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--wp--preset--spacing--20);
}
.outloud-card-actions > * { margin-block: 0; }
.outloud-training-registration-status:empty { display: none; }
.outloud-training-registration-status {
    display: flex;
    align-items: flex-start;
    gap: var(--wp--preset--spacing--20);
}
.outloud-training-registration-status:is(.is-registration-required, .is-registration-closed)::before {
    content: "";
    flex: 0 0 1.25rem;
    height: 1.25rem;
    margin-block-start: .2em;
    background: var(--wp--preset--color--outloud-orange-text);
    mask: url('../images/material-icons/error_outline.svg') center / contain no-repeat;
}
.outloud-training-registration-status.is-registration-closed::before {
    background: var(--wp--custom--card--schedule--past-color);
    mask-image: url('../images/material-icons/block.svg');
}
.outloud-training-schedule {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: var(--wp--preset--spacing--20) var(--wp--preset--spacing--40);
}
.outloud-training-schedule > p { margin: 0; }
.outloud-training-schedule > p:not(.outloud-training-schedule-value) {
    flex-basis: 100%;
    font-weight: 600;
}
.outloud-training-schedule > .outloud-training-schedule-value {
    display: flex;
    align-items: flex-start;
    gap: var(--wp--preset--spacing--20);
    margin-block-start: 0;
    font-weight: 600;
    line-height: 1.5;
}
.outloud-training-schedule-value::before {
    content: "";
    color: var(--wp--preset--color--outloud-orange-text);
    flex: 0 0 1.5rem;
    height: 1.5rem;
    margin-block-start: .2em;
    background: currentColor;
    mask: url('../images/material-icons/calendar_today.svg') center / contain no-repeat;
}
.outloud-training-schedule-time::before { mask-image: url('../images/material-icons/schedule.svg'); }
.outloud-training-schedule-value.is-training-past,
.outloud-training-schedule-value.is-training-past::before {
    color: var(--wp--custom--card--schedule--past-color);
}
.wp-site-blocks .outloud-training-schedule-value:empty,
.wp-site-blocks .outloud-training-schedule:has(> .outloud-training-schedule-date:empty) { display: none; }
.wp-site-blocks .outloud-catalogue .wp-block-post-template > li:has(.wp-block-post-title a):is(:hover, :focus-within) > .outloud-card-heading {
    background: var(--wp--custom--card--hover);
}
.outloud-catalogue.outloud-staff .wp-block-post-template > li {
    padding: var(--wp--custom--card--padding);
}
/* Extend the native title link across its card; keep other links above it.
   Front-end only so the overlay cannot intercept block-editor controls. */
.wp-site-blocks .outloud-catalogue .wp-block-post-template > li,
.wp-site-blocks .outloud-shop-card {
    position: relative;
    isolation: isolate;
}
.wp-site-blocks .outloud-catalogue .wp-block-post-template > li:has(.wp-block-post-title a):is(:hover, :focus-within),
.wp-site-blocks .outloud-shop-card:has(.wp-block-post-title a):is(:hover, :focus-within) {
    background: var(--wp--custom--card--hover);
}
.wp-site-blocks :is(.outloud-catalogue, .outloud-shop-card) .wp-block-post-title a::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    border-radius: var(--wp--custom--card--radius);
}
.wp-site-blocks :is(.outloud-catalogue, .outloud-shop-card) a:not(.wp-block-post-title > a) {
    position: relative;
    z-index: 2;
}
.wp-site-blocks :is(.outloud-catalogue, .outloud-shop-card) .wp-block-post-title a:focus-visible {
    outline: none;
    box-shadow: none;
}
.wp-site-blocks :is(.outloud-catalogue, .outloud-shop-card) .wp-block-post-title a:focus-visible::after {
    outline: var(--wp--custom--focus--width) solid var(--wp--custom--focus--color);
    outline-offset: var(--wp--custom--focus--offset);
}
.outloud-catalogue.outloud-staff .wp-block-post-template {
    gap: var(--wp--custom--card--gap);
    align-items: stretch;
}
.outloud-staff-card {
    display: grid;
    grid-template-columns: clamp(7rem, 9vw, 9rem) minmax(0, 1fr);
    align-items: start;
    gap: clamp(1rem, 1.25vw, 1.5rem);
}
.outloud-staff-card .wp-block-post-featured-image { min-width: 100%; max-width: 100%; }
.outloud-staff-card .wp-block-post-featured-image img { min-width: 100%; border-radius: var(--wp--custom--radius--image); }
.outloud-staff-card-body {
    display: flex;
    flex-direction: column;
    gap: var(--wp--custom--card--text-gap);
    min-width: 0;
    max-width: 28rem;
}
.outloud-staff-card .outloud-staff-card-body,
.outloud-staff-card-body > .wp-block-post-title,
.outloud-staff-card-body > * { margin: 0; }
.outloud-staff-card-body .wp-block-buttons { gap: .5rem; }
.outloud-staff-card-body .wp-block-button__link,
.outloud-app-card-body .wp-block-button__link {
    padding: var(--wp--custom--button--compact--padding-block) var(--wp--custom--button--compact--padding-inline);
    min-height: var(--wp--custom--button--compact--min-height);
    font-size: var(--wp--custom--button--compact--font-size);
}
.outloud-staff-card-body .wp-block-button__link {
    --outloud-button-bg: transparent;
    --outloud-button-hover: var(--wp--custom--interaction--hover-background);
    --outloud-button-active: var(--wp--custom--interaction--pressed-background);
    --outloud-button-border: transparent;
    --outloud-button-hover-border: transparent;
    --outloud-button-active-border: transparent;
    padding-inline: 0;
    text-align: left;
    text-decoration: underline;
}
.outloud-staff-card-body .wp-block-button__link:hover { text-decoration: underline; }
@media (max-width: 37.5rem) {
    .outloud-staff-card { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
    .outloud-staff-card .wp-block-post-featured-image { min-width: 0; }
    .outloud-staff-card .wp-block-post-featured-image img { min-width: 0; }
}
/* Equal-height app cards per row, with store links aligned at the bottom. */
.outloud-app-catalogue .wp-block-post-template { align-items: stretch; }
.outloud-app-catalogue .wp-block-post-template > li { display: flex; }
@media (min-width: 64.001rem) {
    .outloud-app-catalogue .wp-block-post-template > li {
        min-height: 20rem;
        box-sizing: border-box;
    }
}
.outloud-app-card {
    display: grid;
    flex: 1;
    min-width: 0;
    grid-template-columns: 7rem minmax(0, 1fr);
    align-items: stretch;
    gap: 1.5rem;
}
.outloud-app-card .wp-block-post-featured-image { align-self: start; }
.outloud-app-card .wp-block-post-featured-image img { border-radius: var(--wp--custom--radius--image); }
.outloud-app-card-body {
    display: flex;
    flex-direction: column;
    gap: var(--wp--custom--card--text-gap);
    min-width: 0;
}
.outloud-app-card .outloud-app-card-body,
.outloud-app-card-body > .wp-block-post-title,
.outloud-app-card-body > .wp-block-post-excerpt,
.outloud-app-card-body .wp-block-post-excerpt__excerpt,
.outloud-app-card-body > .wp-block-buttons { margin: 0; }
.outloud-app-card-body .wp-block-buttons { gap: .75rem; }
.outloud-app-card-body > .wp-block-buttons { margin-block-start: auto; }
@media (max-width: 37.5rem) {
    .outloud-app-card { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
    .outloud-app-card .wp-block-post-featured-image { max-width: 5rem; }
    .outloud-app-card .wp-block-post-featured-image img { max-width: 100%; }
}
.outloud-training-badges { gap: .25rem 1rem; margin-block: 0 1rem; }
.outloud-training-badge {
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--wp--preset--color--auris-navy);
    font-size: var(--wp--preset--font-size--small);
    font-weight: 400;
    line-height: 1.5;
}
.outloud-training-badge:empty { display: none; }
/* Compact native history rows override the theme's general article-list spacing. */
.outloud-training-history .wp-block-post-template > li + li { margin-block-start: 0; }
.outloud-filters fieldset { margin: 0; padding: 1.5rem; border: 2px solid var(--wp--preset--color--auris-navy); border-radius: .5rem; min-width: 0; }
.outloud-filters legend { padding-inline: .5rem; font-weight: 600; }
.outloud-filter-fields { display: flex; flex-wrap: wrap; align-items: end; gap: 1.25rem; }
.outloud-filter-fields > div { flex: 1 1 15rem; min-width: 0; }
.outloud-filter-fields label { display: block; margin-block-end: .5rem; font-weight: 600; }
.outloud-filter-fields select { width: 100%; }
.outloud-filter-fields a { display: inline-flex; align-items: center; min-height: 2.75rem; }
.outloud-related-policies .wp-block-post-title a { text-decoration: underline; display: inline-block; padding-block: .5rem; }
.outloud-filter-controls,
.outloud-training-filters {
    padding: 0;
    background: var(--wp--preset--color--auris-white);
}
.outloud-people-section .outloud-staff-section { margin-block-start: var(--wp--custom--spacing--subsection); }
.outloud-filter-controls fieldset,
.outloud-training-filters fieldset { padding: 0; margin: 0; border: 0; min-width: 0; }
.outloud-filter-controls legend,
.outloud-training-filters legend { margin-block-end: .75rem; font-weight: 600; }
.outloud-filter-controls form + form { margin-block-start: 1.5rem; }
.outloud-filter-controls > :last-child,
.outloud-training-filters > :last-child { margin-block-end: 0; }
.outloud-filter-controls [role="status"],
.outloud-training-filters [role="status"] { font-size: var(--wp--preset--font-size--small); margin-block-end: 0; }
.outloud-filter-chips {
    display: flex;
    flex-wrap: wrap;
    gap: .375rem .5rem;
    width: fit-content;
    max-width: 100%;
    padding: .5rem;
    border: var(--wp--custom--filter--border-width) solid var(--wp--custom--filter--border);
    background: var(--wp--custom--filter--background);
    border-radius: var(--wp--custom--filter--radius);
}
/* Section jumps are grouped text links; filters remain separate choices. */
.outloud-filter-chips:is(:hover, :focus-within) {
    background: var(--wp--custom--filter--hover);
}
.outloud-section-links { display: flex; flex-wrap: wrap; gap: .75rem 1.5rem; }
.outloud-section-links > p { margin: 0; }
.outloud-section-links a { display: inline-flex; align-items: center; min-height: 2.75rem; }
.outloud-filter-chips .wp-element-button {
    --outloud-button-bg: transparent;
    --outloud-button-hover: transparent;
    --outloud-button-active: transparent;
    --outloud-button-text: var(--wp--preset--color--auris-navy);
    --outloud-button-border: transparent;
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    gap: .7rem;
    min-height: 2.75rem;
    max-width: 100%;
    border: 2px solid transparent;
    border-radius: .5rem;
    padding: .6rem .875rem;
    font-size: var(--wp--preset--font-size--small);
    text-align: left;
    text-decoration: none;
}
/* A filled circle marks the current choice without changing its accessible name. */
.outloud-filter-chips .wp-element-button::before {
    content: "";
    flex: 0 0 .75rem;
    width: .75rem;
    height: .75rem;
    border: 2px solid transparent;
    border-radius: 50%;
    background: transparent;
}
.outloud-filter-chips .wp-element-button[aria-pressed="true"]::before {
    border-color: var(--wp--custom--filter--marker);
    background: var(--wp--custom--filter--marker);
}
@media (max-width: 37.5rem) {
    .outloud-filter-chips { display: grid; grid-template-columns: minmax(0, 1fr); gap: .25rem; width: 100%; border-radius: var(--wp--custom--filter--mobile-radius); }
}
.outloud-staff-section[hidden],
.outloud-training-section[hidden] { display: none; }
.outloud-catalogue .wp-block-post-template > li[hidden],
.outloud-filter-controls [data-empty-results][hidden] { display: none; }
@media (forced-colors: active) {
    :is(.outloud-app-catalogue, .outloud-staff) > .wp-block-post-template > li {
        border: 1px solid CanvasText;
        box-shadow: none;
    }
    .outloud-filter-chips { border-color: CanvasText; }
    .outloud-filter-chips .wp-element-button { border-color: ButtonText; }
    .outloud-filter-chips .wp-element-button[aria-pressed="false"]::before { visibility: hidden; }
    .outloud-filter-chips .wp-element-button[aria-pressed="true"]::before { border-color: ButtonText; background: ButtonText; }
    .outloud-filter-chips .wp-element-button[aria-pressed="true"] { outline: 2px solid ButtonText; outline-offset: -5px; }
    .outloud-filter-chips .wp-element-button:focus { outline: 3px solid Highlight; outline-offset: 3px; }
}
