/* Purple Frog Signs — shared correction layer, followed only by final-completion.css. */

/* Directional links use the approved accent on every surface. */
.link-arrow {
    display: inline-grid;
    flex: 0 0 auto;
    place-items: center;
    color: #A3165E;
    font: inherit;
    line-height: 1;
    vertical-align: -.04em;
    transition: color 160ms ease, transform 180ms ease;
}

/* Beat legacy component-level `span` colour rules without changing link text. */
.pagination .link-arrow,
.inner-hero__principles span::after {
    color: #A3165E;
}

.inner-hero__principles span::after {
    display: inline-grid;
    min-width: 1.65rem;
    min-height: 1.65rem;
    flex: 0 0 auto;
    place-items: center;
    border: 1px solid rgba(39,19,48,.1);
    border-radius: 999px;
    background: #FFFFFF;
    line-height: 1;
    box-shadow: 0 1px 2px rgba(39,19,48,.12);
}

a:hover .link-arrow,
a:focus-visible .link-arrow {
    color: #7D1448;
}

.pagination a:hover .link-arrow,
.pagination a:focus-visible .link-arrow {
    color: #7D1448;
}

.text-link:hover .link-arrow,
.text-link:focus-visible .link-arrow,
.inner-item__link:hover .link-arrow,
.inner-item__link:focus-visible .link-arrow {
    transform: translateX(.28rem);
}

/* Magenta does not meet non-text contrast directly on aubergine. Dark surfaces
   therefore place the approved glyph on a compact warm-white container instead
   of substituting a white glyph. */
.text-link--light .link-arrow,
.home-capability .link-arrow,
.home-sectors .link-arrow,
.page--home .home-method .link-arrow,
.mega-menu__intro .link-arrow,
.mega-menu__media .link-arrow,
.site-footer .link-arrow,
.final-cta .link-arrow,
.testimonials-section__actions .link-arrow,
.reviews-summary .link-arrow,
.review-card--featured .link-arrow,
.reviews-grid .review-card:nth-child(4n + 1) .link-arrow,
.inner-section--quote_details .link-arrow,
.content-section--quote_details .content-section__actions .link-arrow,
.inner-items--feature-row .inner-item:first-child .link-arrow,
.signage-finder-card__action .link-arrow,
.home-capabilities .link-arrow,
.services-pathway--tone-dark .link-arrow,
.services-coordination .link-arrow,
.product-bespoke .link-arrow,
.archive-cta .link-arrow,
.inner-section--colour-break .link-arrow,
.surface--dark .link-arrow {
    min-width: 1.65rem;
    min-height: 1.65rem;
    padding: .16rem .34rem;
    border: 1px solid rgba(39,19,48,.1);
    border-radius: 999px;
    background: #A3165E;
    color: #FFFFFF;
    box-shadow: 0 1px 2px rgba(39,19,48,.12);
}

.text-link--light:hover .link-arrow,
.text-link--light:focus-visible .link-arrow,
.home-capability a:hover .link-arrow,
.home-capability a:focus-visible .link-arrow,
.home-sectors a:hover .link-arrow,
.home-sectors a:focus-visible .link-arrow,
.page--home .home-method a:hover .link-arrow,
.page--home .home-method a:focus-visible .link-arrow,
.mega-menu__intro a:hover .link-arrow,
.mega-menu__intro a:focus-visible .link-arrow,
.mega-menu__media a:hover .link-arrow,
.mega-menu__media a:focus-visible .link-arrow,
.site-footer a:hover .link-arrow,
.site-footer a:focus-visible .link-arrow,
.final-cta a:hover .link-arrow,
.final-cta a:focus-visible .link-arrow,
.testimonials-section__actions a:hover .link-arrow,
.testimonials-section__actions a:focus-visible .link-arrow,
.reviews-summary a:hover .link-arrow,
.reviews-summary a:focus-visible .link-arrow,
.review-card--featured a:hover .link-arrow,
.review-card--featured a:focus-visible .link-arrow,
.reviews-grid .review-card:nth-child(4n + 1) a:hover .link-arrow,
.reviews-grid .review-card:nth-child(4n + 1) a:focus-visible .link-arrow,
.inner-section--quote_details a:hover .link-arrow,
.inner-section--quote_details a:focus-visible .link-arrow,
.content-section--quote_details .content-section__actions a:hover .link-arrow,
.content-section--quote_details .content-section__actions a:focus-visible .link-arrow,
.inner-items--feature-row .inner-item:first-child a:hover .link-arrow,
.inner-items--feature-row .inner-item:first-child a:focus-visible .link-arrow,
.signage-finder-card__link:hover .signage-finder-card__action .link-arrow,
.signage-finder-card__link:focus-visible .signage-finder-card__action .link-arrow,
.home-capabilities a:hover .link-arrow,
.home-capabilities a:focus-visible .link-arrow,
.services-pathway--tone-dark a:hover .link-arrow,
.services-pathway--tone-dark a:focus-visible .link-arrow,
.services-coordination a:hover .link-arrow,
.services-coordination a:focus-visible .link-arrow,
.product-bespoke a:hover .link-arrow,
.product-bespoke a:focus-visible .link-arrow,
.archive-cta a:hover .link-arrow,
.archive-cta a:focus-visible .link-arrow,
.inner-section--colour-break a:hover .link-arrow,
.inner-section--colour-break a:focus-visible .link-arrow,
.surface--dark a:hover .link-arrow,
.surface--dark a:focus-visible .link-arrow {
    background: #F1EDE8;
    color: #7D1448;
}

/* Homepage review cards alternate dark and light surfaces. Light cards keep
   the uncontained treatment; the featured dark card uses the rule above. */
.testimonials-section .review-card:not(.review-card--featured) .link-arrow {
    min-width: 0;
    min-height: 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: #A3165E;
    box-shadow: none;
}

.testimonials-section .review-card:not(.review-card--featured) a:hover .link-arrow,
.testimonials-section .review-card:not(.review-card--featured) a:focus-visible .link-arrow {
    background: transparent;
    color: #7D1448;
}

/* Numbered content rows: real links, visible without motion, and no empty shells. */
.inner-items {
    padding: 0;
    margin: 2.25rem 0 0;
    list-style: none;
}

.inner-items .inner-item,
.inner-items--editorial-list .inner-item,
.inner-items--editorial-list .inner-item:nth-child(even) {
    display: block;
    grid-template-columns: none;
    gap: 0;
    padding: 0;
}

.inner-items--editorial-list .inner-item--link:hover,
.inner-items--editorial-list .inner-item--link:focus-within {
    padding: 0;
}

.inner-item__link {
    position: relative;
    display: grid;
    box-sizing: border-box;
    width: 100%;
    grid-template-columns: 2.5rem minmax(0, 1fr);
    gap: 1rem;
    min-height: 100%;
    padding: 1.5rem 3.6rem 1.5rem 1.5rem;
    color: #1E1D22;
    text-decoration: none;
}

.inner-item__copy {
    display: grid;
    min-width: 0;
    gap: .45rem;
    align-content: start;
}

.inner-item__title {
    color: #271330;
    font-size: clamp(1.05rem, 1.45vw, 1.35rem);
    font-weight: 780;
    line-height: 1.35;
    overflow-wrap: anywhere;
}

.inner-item__description {
    color: #1E1D22;
    font-size: .94rem;
    line-height: 1.58;
    overflow-wrap: anywhere;
}

.inner-item__index,
.inner-item__arrow {
    color: #A3165E;
}

.inner-item--link:hover,
.inner-item--link:focus-within,
.inner-flow--sector .inner-section--alternate .inner-item--link:hover,
.inner-flow--sector .inner-section--alternate .inner-item--link:focus-within {
    background: #EEEAE6;
    color: #271330;
}

.inner-item--link:hover .inner-item__title,
.inner-item--link:focus-within .inner-item__title,
.inner-item--link:hover .inner-item__description,
.inner-item--link:focus-within .inner-item__description,
.inner-flow--sector .inner-section--alternate .inner-item--link:hover .inner-item__title,
.inner-flow--sector .inner-section--alternate .inner-item--link:focus-within .inner-item__title,
.inner-flow--sector .inner-section--alternate .inner-item--link:hover .inner-item__description,
.inner-flow--sector .inner-section--alternate .inner-item--link:focus-within .inner-item__description {
    color: #1E1D22;
}

.inner-item__link:focus-visible {
    z-index: 1;
    outline: 3px solid #A3165E;
    outline-offset: -4px;
}

.inner-items--feature-row .inner-item:first-child .inner-item__link:focus-visible,
.inner-section--quote_details .inner-item__link:focus-visible {
    outline-color: #FFFFFF;
}

.inner-items--editorial-list {
    border: 1px solid var(--color-line);
    background: #FFFFFF;
}

.inner-items--editorial-list .inner-item {
    border-bottom: 1px solid var(--color-line);
    background: #FFFFFF;
}

.inner-items--editorial-list .inner-item:last-child {
    border-bottom: 0;
}

.inner-items--editorial-list .inner-item__link,
.inner-items--editorial-list .inner-item--link:hover .inner-item__link {
    padding: 1.35rem 3.6rem 1.35rem 1.35rem;
}

.inner-items--feature-row .inner-item:first-child {
    padding: 0;
}

.inner-items--feature-row .inner-item:first-child .inner-item__link {
    align-content: center;
    min-height: 12rem;
    padding: clamp(1.5rem, 4vw, 3rem);
    padding-right: clamp(3.8rem, 6vw, 5rem);
    color: #FFFFFF;
}

.inner-items--feature-row .inner-item:first-child .inner-item__title,
.inner-items--feature-row .inner-item:first-child .inner-item__description {
    color: #FFFFFF;
}

.inner-items--feature-row .inner-item:first-child:hover,
.inner-items--feature-row .inner-item:first-child:focus-within {
    background: #7D1448;
}

.inner-flow--sector .inner-section--alternate .inner-items {
    border-color: var(--color-line);
    background: #FFFFFF;
}

.inner-flow--sector .inner-section--alternate .inner-item {
    border-color: var(--color-line);
    background: #FFFFFF;
    color: #1E1D22;
}

.inner-flow--sector .inner-section--alternate .inner-item__title {
    color: #271330;
}

.inner-flow--sector .inner-section--alternate .inner-item__description {
    color: #1E1D22;
}

.inner-flow--sector .inner-section--alternate .inner-items--feature-row .inner-item:first-child .inner-item__link,
.inner-flow--sector .inner-section--alternate .inner-items--feature-row .inner-item:first-child .inner-item__title,
.inner-flow--sector .inner-section--alternate .inner-items--feature-row .inner-item:first-child .inner-item__description {
    color: #1E1D22;
}

.inner-flow--sector .inner-section--alternate .inner-items--feature-row .inner-item:first-child:hover,
.inner-flow--sector .inner-section--alternate .inner-items--feature-row .inner-item:first-child:focus-within {
    background: #EEEAE6;
}

/* Alternate sector sections use white rows, including feature-row leaders. */
.inner-flow--sector .inner-section--alternate .inner-item .link-arrow {
    color: #A3165E;
}

.inner-flow--sector .inner-section--alternate .inner-item a:hover .link-arrow,
.inner-flow--sector .inner-section--alternate .inner-item a:focus-visible .link-arrow {
    color: #7D1448;
}

.inner-flow--sector .inner-section--alternate .inner-item__link:focus-visible {
    outline-color: #A3165E;
}

/* Controlled colour rhythm: one substantial aubergine break after every
   three editorial sections, without changing content order or page structure. */
.inner-section--colour-break {
    position: relative;
    overflow: hidden;
    background: #271330;
    color: #FFFFFF;
}

.inner-section--colour-break::after {
    position: absolute;
    inset: 0 0 0 62%;
    background-image: radial-gradient(circle at 1px 1px, rgba(255,255,255,.045) 1px, transparent 1.2px);
    background-size: 12px 12px;
    content: "";
    pointer-events: none;
}

.inner-section--colour-break .inner-section__grid {
    position: relative;
    z-index: 1;
}

.inner-section--colour-break h2,
.inner-section--colour-break .inner-section__content > p,
.inner-section--colour-break .inner-section__number,
.inner-section--colour-break .inner-section__icon,
.inner-section--colour-break .text-link {
    color: #FFFFFF;
}

.inner-section--colour-break .inner-items,
.inner-section--colour-break .inner-item {
    border-color: rgba(255,255,255,.22);
}

/* A low-intensity paper grain sits only at the outer edge of selected stone
   sections. It is decorative, carries no DOM content and never sits behind
   the dense copy column. */
.inner-flow--service .inner-section--alternate:not(.inner-section--colour-break),
.inner-flow--product .inner-section--alternate:not(.inner-section--colour-break),
.inner-flow--overview .inner-section--alternate:not(.inner-section--colour-break) {
    position: relative;
    overflow: hidden;
}

.inner-flow--service .inner-section--alternate:not(.inner-section--colour-break)::after,
.inner-flow--product .inner-section--alternate:not(.inner-section--colour-break)::after,
.inner-flow--overview .inner-section--alternate:not(.inner-section--colour-break)::after {
    position: absolute;
    inset: 0 0 0 78%;
    background-image: repeating-linear-gradient(0deg, rgba(39,19,48,.025) 0 1px, transparent 1px 5px);
    content: "";
    -webkit-mask-image: linear-gradient(90deg, transparent, #000);
    mask-image: linear-gradient(90deg, transparent, #000);
    pointer-events: none;
}

.inner-flow--service .inner-section--alternate:not(.inner-section--colour-break) .inner-section__grid,
.inner-flow--product .inner-section--alternate:not(.inner-section--colour-break) .inner-section__grid,
.inner-flow--overview .inner-section--alternate:not(.inner-section--colour-break) .inner-section__grid {
    position: relative;
    z-index: 1;
}

@media (max-width: 50rem) {
    .inner-section--colour-break::after { inset: 56% 0 0; }
}

@media (forced-colors: active) {
    .inner-section--colour-break::after,
    .inner-flow--service .inner-section--alternate:not(.inner-section--colour-break)::after,
    .inner-flow--product .inner-section--alternate:not(.inner-section--colour-break)::after,
    .inner-flow--overview .inner-section--alternate:not(.inner-section--colour-break)::after { display: none; }
}

.inner-section--product.inner-section--quote_details .inner-items,
.inner-section--product.inner-section--quote_details .inner-item {
    border-color: rgba(255,255,255,.24);
    background: rgba(255,255,255,.08);
}

.inner-section--product.inner-section--quote_details .inner-item__link,
.inner-section--product.inner-section--quote_details .inner-item__title,
.inner-section--product.inner-section--quote_details .inner-item__description {
    color: #FFFFFF;
}

.inner-section--product.inner-section--quote_details .inner-item--link:hover,
.inner-section--product.inner-section--quote_details .inner-item--link:focus-within {
    background: rgba(255,255,255,.16);
}

@media (max-width: 50rem) {
    .inner-item__link,
    .inner-items--editorial-list .inner-item__link,
    .inner-items--editorial-list .inner-item--link:hover .inner-item__link {
        grid-template-columns: 2rem minmax(0, 1fr);
        gap: .75rem;
        padding: 1.15rem 3rem 1.15rem 1rem;
    }

    .inner-item__arrow {
        top: 1.05rem;
        right: 1rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .link-arrow {
        transition: none;
        transform: none !important;
    }
}

/* Purple Frog global arrow-button treatment — 2026-09-05 */
.link-arrow {
    background: var(--magenta);
    color: var(--white);
    border-color: var(--magenta);
}

a:hover .link-arrow,
a:focus-visible .link-arrow {
    background: var(--magenta);
    color: var(--white);
    border-color: var(--magenta);
}
