/* Responsive compositions; loaded after styles.css. */
.advantage-grid h3,
.enquiry .privacy {
  overflow-wrap: anywhere;
}
@media (min-width: 64rem) {
  .header-inner {
    height: auto;
    min-height: 96px;
    flex-wrap: wrap;
    row-gap: 0px;
  }
  .site-header nav {
    max-width: 100%;
    flex-wrap: wrap;
  }
}
.hero h1,
.hero-intro,
.billing h3,
.billing li p,
.enquiry .steps li,
.enquiry .contact h2 {
  overflow-wrap: anywhere;
  -webkit-hyphens: auto;
  hyphens: auto;
  hyphenate-limit-chars: 10 4 4;
}
.hero-service-emphasis {
  white-space: normal;
  -webkit-hyphens: manual;
  hyphens: manual;
}
.enquiry .mission-marker {
  max-width: 100%;
  white-space: normal;
}
.service-media {
  display: block;
}
.footer-links a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
}
.footer-contact a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  max-width: 100%;
}
@media (min-width: 64rem) {
  .hero-inner {
    min-height: clamp(35rem, 19rem + 25vw, 43rem);
    padding-block: clamp(2.5rem, -0.5rem + 4.6875vw, 4rem);
  }
}
@media (max-width: 79.99rem) {
  .hero h1 {
    font-size: clamp(2rem, 3.8vw, 3rem);
  }
}
@media (max-width: 63.99rem) {
  :root {
    --space: clamp(20px,4vw,40px);
    --section-gap: 64px;
    --type-heading-compact: clamp(1.875rem,calc(4.6875vw - .75rem),2.25rem);
  }
  .services h2,
  .mission.about-approved h2 {
    font-size: var(--type-heading-compact);
  }
  .funding h2,
  .enquiry .steps h2,
  .enquiry .contact h2 {
    font-size: min(2rem,var(--type-heading-compact));
  }
  .header-inner {
    height: auto;
    min-height: 0px;
    flex-wrap: wrap;
    gap: 0px 20px;
    padding-block: 24px 0px;
  }
  .site-header .logo {
    width: clamp(180px, 20vw, 200px);
    max-width: 100%;
  }
  .site-header nav,
  .hero-photo {
    display: none;
  }
  .hero {
    display: flex;
    flex-direction: column;
  }
  .hero-inner {
    min-height: 0px;
    padding-block: 24px;
    order: 0;
  }
  .hero-copy {
    width: 100%;
    max-width: none;
  }
  .hero h1 {
    max-width: none;
  }
  .hero-intro {
    max-width: 65ch;
  }
  .hero::before,
  .hero::after {
    display: none;
  }
  .advantages {
    padding-block: 0px;
    background: none;
  }
  .advantages > .shell {
    width: 100%;
    max-width: none;
  }
  .advantage-grid {
    grid-template-columns: minmax(0px, 1fr);
    gap: 0px;
  }
  .advantage-grid article {
    grid-template-columns: 64px minmax(0px, 1fr);
    gap: 16px;
    padding: 32px max(var(--space), var(--safe-inline));
    background: var(--soft-section-background);
  }
  .advantage-illustration {
    width: 64px;
    height: 64px;
  }
  .advantage-grid h3 {
    max-width: none;
    font-size: 1.375rem;
    overflow-wrap: anywhere;
    -webkit-hyphens: auto;
    hyphens: auto;
  }
  .services {
    padding-top: 48px;
    --services-heading-gap: 32px;
    --services-close-gap: 40px;
  }
  .services .service-grid {
    grid-template-columns: repeat(2, minmax(0px, 1fr));
    gap: 16px;
  }
  .services .service-grid > li {
    padding: 16px 0px;
    border: 0px;
    background: transparent;
  }
  .services .service-media {
    padding: 8px;
    border-radius: var(--radius-surface);
    background: var(--service-surface);
  }
  .services .service-grid > li:nth-child(1) {
    --service-surface: var(--service-household);
  }
  .services .service-grid > li:nth-child(2) {
    --service-surface: var(--service-mobility);
  }
  .services .service-grid > li:nth-child(3) {
    --service-surface: var(--service-social);
  }
  .services .service-grid > li:nth-child(4) {
    --service-surface: var(--service-memory);
  }
  .services .service-grid > li:nth-child(5) {
    --service-surface: var(--service-organization);
  }
  .services .service-grid > li:nth-child(6) {
    --service-surface: var(--service-digital);
  }
  .services .service-grid h3 {
    font-size: clamp(1.375rem, var(--type-support) + 1vw, 1.5rem);
  }
  .services .service-photo {
    width: 112px;
    height: 112px;
    aspect-ratio: 1 / 1;
    object-fit: contain;
    border-radius: 0px;
    background: transparent;
    box-shadow: none;
  }
  .services .service-copy {
    padding: 16px 0px 0px;
  }
  .services .service-close {
    grid-template-columns: minmax(0px, 1fr);
    gap: 0px;
    padding: 24px;
  }
  .services .service-close-portrait {
    display: none;
  }
  .services .service-close-copy {
    padding-bottom: 0px;
  }
  .service-close-action {
    gap: 12px;
  }
  .service-close-action p + p {
    white-space: normal;
  }
  .funding {
    --funding-frame-inset: 0px;
  }
  .funding-rows > div {
    grid-template-columns: minmax(0px, 2fr) minmax(0px, 3fr);
    gap: 24px;
  }
  .funding .billing {
    grid-template-columns: minmax(0px, 2fr) minmax(0px, 3fr);
    gap: 24px;
    padding: 24px;
    margin-top: 32px;
  }
  .billing-plane {
    width: min(100%, 180px);
  }
  .enquiry-grid {
    grid-template-columns: 1fr;
    gap: 40px;
    max-width: 720px;
  }
  .enquiry .steps {
    padding: 0px;
  }
  .enquiry .steps h2 {
    margin-bottom: 32px;
  }
  .enquiry .contact {
    padding: 32px;
  }
}
@media (min-width: 40rem) and (max-width: 63.99rem) {
  .mission.about-approved .shell {
    --space: clamp(20px,5.6vw,88px);
  }
  .services .service-grid > li {
    grid-row: span 2;
    grid-template-columns: auto minmax(0px, 1fr);
    grid-template-rows: subgrid;
    gap: 16px 12px;
    background: transparent;
  }
  .services .service-media {
    grid-area: 1 / 1;
    align-self: center;
  }
  .services .service-photo {
    width: clamp(48px, -16px + 10vw, 80px);
    height: auto;
  }
  .services .service-copy {
    display: contents;
  }
  .services .service-grid h3 {
    grid-area: 1 / 2;
    align-self: center;
    margin: 0px;
  }
  .services .service-details {
    grid-area: 2 / 1 / auto / -1;
  }
}
@media (max-width: 74.999rem) {
  .mission.about-approved .local-photo {
    grid-row: 1;
  }
  .mission.about-approved .qualifications {
    grid-column: 1 / -1;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, max(20rem, 50% - 12px)), 1fr));
  }
}
@media (min-width: 50rem) and (max-width: 60rem) {
  .mission.about-approved h2 {
    font-size: var(--type-heading-compact);
  }
}
@media (min-width: 50rem) and (max-width: 74.999rem) {
  .mission.about-approved .about-main {
    display: flow-root;
  }
  .mission.about-approved .local-photo {
    float: left;
    width: 32%;
    margin: -16px clamp(32px, 4.44444vw, 64px) 24px 0px;
  }
  .mission.about-approved .about-copy > p {
    max-width: none;
  }
  .mission.about-approved .about-copy > p:last-child {
    clear: left;
  }
  .mission.about-approved blockquote {
    display: flow-root;
  }
  .mission.about-approved .qualifications {
    clear: both;
  }
}
@media (min-width: 56rem) and (max-width: 74.999rem) {
  .mission.about-approved .about-copy > p:last-child {
    clear: none;
    display: flow-root;
  }
}
@media (max-width: 49.999rem) {
  .mission.about-approved .about-main {
    grid-template-columns: 1fr;
    row-gap: 24px;
  }
  .mission.about-approved .about-copy {
    grid-column: 1;
  }
  .mission.about-approved .local-photo img {
    transform: none;
  }
  .mission.about-approved .qualifications {
    margin-top: 8px;
  }
}
@media (max-width: 39.99rem) {
  :root {
    --space: 20px;
    --section-gap: 48px;
  }
  .hero-service-emphasis {
    white-space: normal;
    overflow-wrap: anywhere;
  }
  .hero-intro {
    font-size: var(--type-body-compact);
    margin: 20px 0px 0px;
  }
  .hero-actions {
    justify-content: flex-start;
    flex-wrap: wrap;
    gap: 8px 24px;
    margin-top: 24px;
  }
  .hero-actions .button {
    width: auto;
    max-width: 100%;
    justify-content: center;
  }
  .hero-secondary-link,
  .hero .recognition {
    display: none;
  }
  .services h2,
  .mission.about-approved h2,
  .funding h2,
  .enquiry h2,
  .enquiry .steps h2 {
    font-size: 1.875rem;
    line-height: 1.22;
  }
  .services .service-grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }
  .services .service-grid > li {
    display: grid;
    grid-row: auto;
    grid-template-columns: auto minmax(0px, 1fr);
    grid-template-rows: auto;
    gap: 0px 12px;
    align-items: center;
    padding: 0px;
  }
  .services .service-media {
    grid-area: 1 / 1;
  }
  .services .service-photo {
    width: clamp(36px, 24px + 3.75vw, 48px);
    height: auto;
  }
  .services .service-copy {
    display: contents;
  }
  .services .service-grid h3 {
    grid-area: 1 / 2;
    margin: 0px;
  }
  .services .service-details {
    display: none;
  }
  .services .service-close {
    display: block;
    width: calc(100% + var(--space)*2);
    margin-inline: calc(-1*var(--space));
    padding: 24px var(--space);
    border-radius: 0px;
  }
  .service-close-copy {
    order: 0;
    padding-bottom: 0px;
    width: 100%;
  }
  .service-close-portrait {
    order: 1;
    width: 180px;
    max-width: 80%;
    align-self: center;
  }
  .service-close-copy h3 {
    font-size: 1.5rem;
  }
  .service-close-action {
    display: flex;
    justify-content: flex-start;
  }
  .services .service-close-action p + p {
    display: none;
  }
  .service-close-action p {
    width: auto;
  }
  .service-close-action .button {
    width: auto;
    justify-content: center;
    text-align: center;
    max-width: 100%;
  }
  .funding-rows {
    margin-top: 24px;
  }
  .funding .billing {
    grid-template-columns: 1fr;
    padding: 24px 20px;
    gap: 24px;
  }
  .billing-intro {
    display: block;
  }
  .billing h3 {
    min-width: 0px;
    max-width: none;
  }
  .billing-plane {
    display: none;
  }
  .billing li {
    gap: 12px;
  }
  .funding .shell > .funding-note {
    margin-top: 24px;
  }
  .mission.about-approved h2 {
    margin-bottom: 28px;
  }
  .mission.about-approved .local-photo {
    display: none;
  }
  .mission.about-approved .about-copy p {
    font-size: var(--type-body-compact);
  }
  .mission.about-approved .about-copy blockquote p {
    font-size: var(--type-large);
  }
  .enquiry-grid {
    gap: 32px;
  }
  .enquiry .contact {
    padding: 28px 20px;
  }
  .enquiry .contact h2 {
    font-size: 1.75rem;
    margin-bottom: 28px;
  }
  .enquiry .steps strong {
    font-size: var(--type-large);
    text-wrap: pretty;
  }
  .enquiry .steps li {
    padding-left: 60px;
  }
  .enquiry .privacy {
    grid-template-columns: 24px minmax(0px, 1fr);
    gap: 8px;
    overflow-wrap: anywhere;
  }
  .enquiry .privacy-icon {
    width: 24px;
  }
  .footer-contacts {
    gap: 20px;
  }
}
@media (max-width: 35rem) {
  .enquiry .contact h2 {
    text-align: left;
  }
}
@media (min-width: 32rem) and (max-width: 49.999rem) {
  .mission.about-approved .shell {
    --space: clamp(20px,5.6vw,88px);
    display: grid;
    grid-template-columns: minmax(160px, 28%) minmax(0px, 1fr);
    gap: 24px clamp(20px, 4vw, 32px);
  }
  .mission.about-approved .about-main {
    display: contents;
  }
  .mission.about-approved h2 {
    grid-area: 1 / 2;
    align-self: center;
    font-size: min(clamp(1.75rem,5vw,2rem),var(--type-heading-compact));
    text-align: left;
    margin: 0px;
  }
  .mission.about-approved .local-photo {
    display: block;
    grid-area: 1 / 1;
    width: 100%;
    max-width: none;
    margin: 0px;
    aspect-ratio: 1 / 1;
  }
  .mission.about-approved .local-photo img {
    aspect-ratio: 1 / 1;
  }
  .mission.about-approved .about-copy {
    grid-column: 1 / -1;
  }
}
@media (max-width: 31.999rem) {
  .mission.about-approved h2 {
    text-align: left;
    font-size: 1.75rem;
  }
}
@media (max-width: 425px) {
  .advantage-grid article {
    grid-template-columns: minmax(0px, 1fr);
    gap: 0px;
  }
  .advantage-illustration {
    display: none;
  }
}
.funding-rows {
  container: funding-budgets / inline-size;
}
.funding dt,
.funding-rows dd,
.funding h2 {
  -webkit-hyphens: auto;
  hyphens: auto;
  overflow-wrap: anywhere;
}
@container funding-budgets (max-width: 37.5rem) {
  .funding-rows > div {
    grid-template-columns: minmax(0px, 1fr);
    gap: 12px;
  }
  .funding dt {
    display: flex;
    align-items: baseline;
    gap: 12px;
    min-width: 0px;
  }
  .funding .law {
    flex: 0 0 auto;
    margin-top: 0px;
    white-space: nowrap;
  }
}
/* ResizeObserver applies these classes only without container queries. */
@supports not (container-type: inline-size) {
  .funding-rows:where(.cq-budget-stack) > div {
    grid-template-columns: minmax(0px, 1fr);
    gap: 12px;
  }
  .funding :where(.cq-budget-stack) dt {
    display: flex;
    align-items: baseline;
    gap: 12px;
    min-width: 0px;
  }
  .funding :where(.cq-budget-stack) .law {
    flex: 0 0 auto;
    margin-top: 0px;
    white-space: nowrap;
  }
}

@container funding-budgets (max-width: 27.5rem) {
  .funding-rows > div {
    gap: 0px;
  }
  .funding-rows dd {
    display: none;
  }
}
/* ResizeObserver applies these classes only without container queries. */
@supports not (container-type: inline-size) {
  .funding-rows:where(.cq-budget-compact) > div {
    gap: 0px;
  }
  .funding-rows:where(.cq-budget-compact) dd {
    display: none;
  }
}

@container funding-budgets (max-width: 20.5rem) {
  .funding .law {
    display: none;
  }
}
/* ResizeObserver applies these classes only without container queries. */
@supports not (container-type: inline-size) {
  .funding :where(.cq-budget-no-law) .law {
    display: none;
  }
}

@media (max-width: 39.99rem) {
  .funding .billing {
    grid-template-columns: minmax(0px, 1fr);
  }
  .billing h3,
  .billing li p {
    -webkit-hyphens: auto;
    hyphens: auto;
    overflow-wrap: anywhere;
  }
}

/* Older engines retain the same columns; the small compatibility script aligns
   paired headings where native subgrid is unavailable. */
@supports not (grid-template-rows: subgrid) {
  @media (min-width: 64rem) {
    .services .service-grid > li {
      grid-row: auto;
      grid-template-rows: auto 1fr;
    }
    .services .service-copy {
      grid-row: auto;
      grid-template-rows: var(--service-heading-track, auto) 1fr;
    }
  }
  @media (min-width: 40rem) and (max-width: 63.99rem) {
    .services .service-grid > li {
      grid-row: auto;
      grid-template-rows: var(--service-heading-track, auto) 1fr;
    }
  }
}
