/* CC 2026 — Projet. Presentation only: existing modules, copy, photographs,
   partner logos and navigation remain managed by Joomla without content edits. */
body.cc-project-page .container-component {
    --cc-link: var(--cc-blue-accessible);
    --cc-link-hover: var(--cc-black);
    color: var(--cc-text);
    font-weight: var(--cc-weight-body);
}

/* Keep the photograph and the introduction, without a lavender wash or glow. */
body.cc-project-page .cc-project-hero__media {
    background: var(--cc-background-alt);
    border-radius: var(--cc-radius-lg);
    box-shadow: none;
}
body.cc-project-page .cc-project-hero__content {
    color: var(--cc-text);
    background: var(--cc-white);
    border-color: var(--cc-border);
    border-radius: var(--cc-radius-lg);
    box-shadow: none;
}
body.cc-project-page .cc-project-eyebrow {
    color: var(--cc-blue-accessible);
    font-weight: var(--cc-weight-nav);
    letter-spacing: .08em;
    line-height: 1.4;
}
body.cc-project-page .cc-project-hero h1 {
    color: var(--cc-text-heading);
    font-size: clamp(2.35rem, 5.2vw, 4.25rem);
    font-weight: 700;
    letter-spacing: -.025em;
    line-height: 1.1;
    text-wrap: balance;
}
body.cc-project-page .cc-project-hero__content > p:not(.cc-project-eyebrow),
body.cc-project-page .cc-project-copy > p:not(.cc-project-eyebrow) {
    color: #625F5B;
    font-weight: var(--cc-weight-body);
    font-size: clamp(14px, 1.1vw, 16px);
    line-height: 1.6;
    margin-bottom: .85rem;
}
body.cc-project-page .container-component strong {
    font-weight: var(--cc-weight-title);
}

/* White editorial blocks; colour identifies content, not entire surfaces. */
body.cc-project-page :is(
    [data-position="cc-main-top-02"],
    [data-position="cc-main-top-03"],
    [data-position="cc-main-top-04"]
) {
    background: var(--cc-white);
    border-color: var(--cc-border);
    border-radius: var(--cc-radius-md);
    box-shadow: none;
}
body.cc-project-page .cc-project-copy h2,
body.cc-project-page .cc-project-section-heading h2 {
    color: var(--cc-text-heading);
    font-size: clamp(1.8rem, 3.3vw, 2.75rem);
    font-weight: var(--cc-weight-title);
    letter-spacing: -.02em;
    line-height: 1.18;
    text-wrap: balance;
}
body.cc-project-page [data-position="cc-main-top-02"] h2 {
    color: var(--cc-black);
}
body.cc-project-page [data-position="cc-main-top-04"] h2 {
    color: var(--cc-black);
}
body.cc-project-page [data-position="cc-main-top-05"] .cc-project-eyebrow {
    color: var(--cc-blue-accessible);
}
body.cc-project-page [data-position="cc-main-top-02"] .cc-project-eyebrow { color: #582583; }
body.cc-project-page [data-position="cc-main-top-04"] .cc-project-eyebrow { color: #582583; }
body.cc-project-page .cc-project-copy a:not(.cc-project-cta) {
    color: var(--cc-link);
    font-weight: var(--cc-weight-title);
    text-decoration-color: currentColor;
}
body.cc-project-page .cc-project-copy a:not(.cc-project-cta):is(:hover, :focus-visible) {
    color: var(--cc-link-hover);
}
body.cc-project-page .cc-project-photo {
    height: auto;
    background: var(--cc-background-alt);
}
/* Let pictures fill their actual row rather than leaving a blank lower edge. */
body.cc-project-page :is(
    [data-position="cc-main-top-02"],
    [data-position="cc-main-top-03"],
    [data-position="cc-main-top-04"]
) > :has(.cc-project-photo),
body.cc-project-page .mod-custom:has(> .cc-project-photo) {
    display: flex;
    min-width: 0;
}
body.cc-project-page .mod-custom:has(> .cc-project-photo) {
    width: 100%;
}
body.cc-project-page .cc-project-photo img {
    filter: none;
    transition: none;
}
body.cc-project-page :is(
    [data-position="cc-main-top-02"],
    [data-position="cc-main-top-03"],
    [data-position="cc-main-top-04"]
):hover .cc-project-photo img {
    transform: none;
}

/* Neutral actions let photographs and semantic accents carry the identity. */
body.cc-project-page .cc-project-cta {
    color: var(--cc-button-primary-text);
    background: var(--cc-black);
    border-color: var(--cc-black);
    border-radius: var(--cc-radius-button);
    font-weight: var(--cc-weight-title);
    line-height: 1.3;
    box-shadow: none;
    transition: background .18s ease, border-color .18s ease;
}
body.cc-project-page .cc-project-cta:is(:hover, :focus-visible) {
    color: var(--cc-button-primary-text);
    background: #36332F;
    border-color: #36332F;
    box-shadow: none;
    transform: none;
}

/* The three axes retain the shared semantic colours, with readable text tones. */
body.cc-project-page .cc-project-pillars li {
    --cc-project-axis: var(--cc-partition-text);
    border-color: var(--cc-border);
}
body.cc-project-page .cc-project-pillars li:nth-child(2) {
    --cc-project-axis: var(--cc-event-text);
}
body.cc-project-page .cc-project-pillars li:nth-child(3) {
    --cc-project-axis: var(--cc-formation-text);
}
body.cc-project-page .cc-project-number {
    display: grid;
    place-items: center;
    align-self: start;
    min-height: 2rem;
    height: 2rem;
    border-radius: 8px;
    color: var(--cc-black);
    background: #27B9D7;
    font-weight: var(--cc-weight-title);
    letter-spacing: .04em;
}
body.cc-project-page .cc-project-pillars li:nth-child(2) .cc-project-number {
    color: #FFFFFF;
    background: #582583;
}
body.cc-project-page .cc-project-pillars li:nth-child(3) .cc-project-number {
    color: #161412;
    background: #F9B900;
}
body.cc-project-page .cc-project-pillars h3 {
    color: var(--cc-text-heading);
    font-size: 1.125rem;
    font-weight: 600;
    line-height: 1.35;
}
body.cc-project-page .cc-project-copy .cc-project-pillars h3 a,
body.cc-project-page .cc-project-copy .cc-project-pillars h3 a:is(:hover, :focus-visible) {
    color: var(--cc-black);
    font-weight: var(--cc-weight-title);
}
body.cc-project-page .cc-project-pillars p,
body.cc-project-page .cc-project-section-heading > p:not(.cc-project-eyebrow) {
    color: var(--cc-text-muted);
    font-weight: var(--cc-weight-body);
    line-height: 1.6;
}

/* Partner logos keep their own original colours. */
body.cc-project-page .cc-partner-card,
body.cc-project-page .cc-partner-card:is(:hover, :focus-visible) {
    color: var(--cc-text-heading);
    background: var(--cc-white);
    border-color: var(--cc-border);
    border-radius: var(--cc-radius-md);
    box-shadow: none;
    font-weight: var(--cc-weight-title);
    transition: none;
    transform: none;
}
body.cc-project-page .cc-partner-card .cc-partner-card__link,
body.cc-project-page .cc-partner-card .cc-partner-card__link:visited {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    max-width: 100%;
    padding: 0;
    box-sizing: border-box;
    color: var(--cc-black);
    background: transparent;
    border: 0;
    border-radius: 0;
    font: inherit;
    font-weight: 500;
    line-height: 1.4;
    text-decoration: none !important;
    transition: color .16s ease;
}
body.cc-project-page .cc-partner-card .cc-partner-card__link > span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}
body.cc-project-page .cc-partner-card .cc-partner-card__link:is(:hover, :focus-visible) {
    color: var(--cc-blue-accessible);
    background: transparent;
    text-decoration: none !important;
}
@media (prefers-reduced-motion: reduce) {
    body.cc-project-page .cc-partner-card .cc-partner-card__link { transition: none; }
}
body.cc-project-page .container-component a:focus-visible {
    outline: 2px solid var(--cc-focus);
    outline-offset: 4px;
}

@media (max-width: 767.98px) {
    body.cc-project-page .cc-project-hero h1 {
        font-size: clamp(2rem, 9vw, 3rem);
    }
    body.cc-project-page .cc-project-hero__content {
        padding-block: 1.35rem;
    }
    body.cc-project-page .cc-project-copy h2,
    body.cc-project-page .cc-project-section-heading h2 {
        font-size: clamp(1.75rem, 7vw, 2.25rem);
    }
    body.cc-project-page .cc-project-cta {
        max-width: 100%;
        white-space: normal;
    }
}
