/* Text links keep their appearance; only the underline animates. */
body .elementor :is(.subscribe-card .elementor-button,a.rhf-read-more),
body .elementor :is(.subscribe-card .elementor-button,a.rhf-read-more):is(:hover,:focus-visible){background:transparent!important;color:#D22530!important;box-shadow:none!important;transform:none!important;text-decoration:none!important;}
body .elementor :is(.subscribe-card .elementor-button,a.rhf-read-more) .elementor-button-text{position:relative;display:inline-block;text-decoration:none!important;}
body .elementor :is(.subscribe-card .elementor-button,a.rhf-read-more) .elementor-button-text::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:1.5px;background:currentColor;transform:scaleX(0);transform-origin:left center;transition:transform 260ms cubic-bezier(.22,.61,.36,1);}
body .elementor :is(.subscribe-card .elementor-button,a.rhf-read-more):is(:hover,:focus-visible) .elementor-button-text::after{transform:scaleX(1);}
/* Replace Elementor's pointer animation with the same smooth reveal. */
body .elementor-location-header .elementor-nav-menu a.elementor-item{text-decoration:none!important;}
body .elementor-location-header .elementor-nav-menu a.elementor-item::before{display:none!important;}
body .elementor-location-header .elementor-nav-menu a.elementor-item::after{content:""!important;position:absolute;left:20px!important;right:20px!important;top:auto!important;bottom:7px!important;width:auto!important;height:1.5px!important;background:currentColor!important;opacity:1!important;transform:scaleX(0)!important;transform-origin:left center!important;transition:transform 260ms cubic-bezier(.22,.61,.36,1)!important;}
body .elementor-location-header .elementor-nav-menu a.elementor-item:is(:hover,:focus-visible,.elementor-item-active)::after{transform:scaleX(1)!important;}
@media(prefers-reduced-motion:reduce){body .elementor .elementor-button .elementor-button-text::after,body .elementor-location-header .elementor-nav-menu a.elementor-item::after{transition:none!important;}}

/* Shared editorial cards: a gentle zoom inside the existing image frame. */
body .elementor :is(.rhf-news-card,.subscribe-card) .elementor-widget-image,
body .elementor .rhf-card-image-frame {overflow:hidden;border-radius:inherit;}
body .elementor :is(.rhf-news-card,.subscribe-card) .elementor-widget-image img,
body .elementor .rhf-card-image-frame img {transition:transform 450ms cubic-bezier(.22,.61,.36,1);transform:scale(1);transform-origin:center;}
body .elementor .rhf-card-image-frame {display:block;border-radius:8px;}
body .elementor .rhf-card-image-frame img {display:block;width:100%;}
/* The image and CTA react together when any card link receives focus. */
body .elementor :is(.rhf-news-card,.subscribe-card):focus-within .elementor-widget-image img,
body .elementor .rhf-story-card:focus-within .rhf-card-image-frame img {transform:scale(1.045);}
body .elementor :is(.rhf-news-card,.subscribe-card) .elementor-button-text {position:relative;display:inline-block;}
body .elementor :is(.rhf-news-card,.subscribe-card) .elementor-button-text::after {content:"";position:absolute;left:0;right:0;bottom:-4px;height:1.5px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform 260ms cubic-bezier(.22,.61,.36,1);}
body .elementor :is(.rhf-news-card,.subscribe-card):focus-within .elementor-button-text::after {transform:scaleX(1);}
body .elementor .rhf-story-card h3 a {text-decoration:none;background-image:linear-gradient(currentColor,currentColor);background-repeat:no-repeat;background-position:left bottom;background-size:0% 1.5px;transition:background-size 260ms ease;box-decoration-break:clone;}
body .elementor .rhf-story-card:focus-within h3 a {background-size:100% 1.5px;}
@media(hover:hover) and (pointer:fine){
 body .elementor :is(.rhf-news-card,.subscribe-card):hover .elementor-widget-image img,
 body .elementor .rhf-story-card:hover .rhf-card-image-frame img {transform:scale(1.045);}
 body .elementor :is(.rhf-news-card,.subscribe-card):hover .elementor-button-text::after {transform:scaleX(1);}
 body .elementor .rhf-story-card:hover h3 a {background-size:100% 1.5px;}
}
@media(prefers-reduced-motion:reduce){
 body .elementor :is(.rhf-news-card,.subscribe-card) .elementor-widget-image img,
 body .elementor .rhf-card-image-frame img {transition:none!important;transform:none!important;}
 body .elementor :is(.rhf-news-card,.subscribe-card) .elementor-button-text::after,
 body .elementor .rhf-story-card h3 a {transition:none!important;}
}

/* Shared Figma previous/next artwork for every Elementor slider. */
body .elementor .elementor-swiper-button:not(.elementor-widget-slides *).elementor-swiper-button-prev,
body .elementor .elementor-swiper-button:not(.elementor-widget-slides *).elementor-swiper-button-next {
 min-width:44px;min-height:44px;border:0!important;
 background-color:transparent!important;background-repeat:no-repeat!important;
 background-position:center!important;background-size:contain!important;
}
body .elementor .elementor-swiper-button:not(.elementor-widget-slides *).elementor-swiper-button-prev {background-image:url('rhf-slider-assets/PrevBtn.svg')!important;}
body .elementor .elementor-swiper-button:not(.elementor-widget-slides *).elementor-swiper-button-next {background-image:url('rhf-slider-assets/NextBtn.svg')!important;}
body .elementor .elementor-swiper-button:not(.elementor-widget-slides *).elementor-swiper-button-prev::before,
body .elementor .elementor-swiper-button:not(.elementor-widget-slides *).elementor-swiper-button-prev::after,
body .elementor .elementor-swiper-button:not(.elementor-widget-slides *).elementor-swiper-button-next::before,
body .elementor .elementor-swiper-button:not(.elementor-widget-slides *).elementor-swiper-button-next::after {content:none!important;}
body .elementor .elementor-swiper-button:not(.elementor-widget-slides *) :is(svg,i){display:none!important;}
body .elementor .elementor-swiper-button:not(.elementor-widget-slides *):focus-visible {outline:3px solid #D22530;outline-offset:4px;}

/* White artwork on coloured sections. Hero slides retain their original controls.
   Add rhf-slider-on-dark in Elementor for future coloured slider sections. */
body .elementor :is(.impact-featured,.rhf-slider-on-dark) .elementor-swiper-button:not(.elementor-widget-slides *).elementor-swiper-button-prev {background-image:url('rhf-slider-assets/PrevBtn-white.svg')!important;}
body .elementor :is(.impact-featured,.rhf-slider-on-dark) .elementor-swiper-button:not(.elementor-widget-slides *).elementor-swiper-button-next {background-image:url('rhf-slider-assets/NextBtn-white.svg')!important;}
body .elementor :is(.impact-featured,.rhf-slider-on-dark) .elementor-swiper-button:not(.elementor-widget-slides *):focus-visible {outline-color:#fff;box-shadow:0 0 0 2px #0a0b0b;}

/* Side-by-side story cards: the photo fills the text-driven card height. */
@media(min-width:768px){
 body .elementor .rhf-news-card .rhf-news-image {position:relative;align-self:stretch;min-height:380px;border-radius:0;}
 body .elementor .rhf-news-card .rhf-news-image > .elementor-widget-container,
 body .elementor .rhf-news-card .rhf-news-image a {position:absolute;inset:0;display:block;width:100%;height:100%;}
 body .elementor .rhf-news-card .rhf-news-image img {position:absolute;inset:0;display:block;width:100%;height:100%!important;max-height:none;object-fit:cover;aspect-ratio:auto;border-radius:0;}
}

/* Newsletter cards retain a fixed, square-cornered photo crop during zoom. */
body .elementor .subscribe-cards .subscribe-card {padding:36px;gap:24px;border-radius:20px;min-height:376px;}
body .elementor .subscribe-cards .subscribe-card .elementor-widget-image {position:relative;width:100%;height:auto;aspect-ratio:302/155;flex:0 0 auto;overflow:hidden;border-radius:0!important;}
body .elementor .subscribe-cards .subscribe-card .elementor-widget-image > .elementor-widget-container,
body .elementor .subscribe-cards .subscribe-card .elementor-widget-image a {position:absolute;inset:0;display:block;width:100%;height:100%;border-radius:0;}
body .elementor .subscribe-cards .subscribe-card .elementor-widget-image img {display:block;width:100%;height:100%!important;object-fit:cover;border-radius:0!important;}
body .elementor .subscribe-cards .subscribe-card h3 {font-size:20px;line-height:1.25!important;}
body .elementor .rhf-shared-newsletter .rhf-newsletter-subtitle .elementor-heading-title {font-family:Alexandria,sans-serif!important;font-size:24px;font-weight:700;letter-spacing:.03em;color:#fff!important;line-height:1.3!important;}
@media(max-width:767px){body .elementor .subscribe-cards .subscribe-card{padding:24px;}body .elementor .rhf-shared-newsletter .rhf-newsletter-subtitle .elementor-heading-title{font-size:22px;}}

/* Shared newsletter CTA colours, including the pending integration state. */
body .elementor .rhf-shared-newsletter .rhf-signup-pending button,
body .elementor .rhf-shared-newsletter .rhf-signup-pending button:is(:hover,:focus,:disabled) {background:#0a0b0b!important;color:#fff!important;border-color:#0a0b0b!important;opacity:1;}

/* Featured-story controls keep a page gutter while cards reach the edge. */
body .elementor .impact-featured .impact-story-carousel.elementor-widget.elementor-widget-n-carousel .elementor-swiper-button-next {right:clamp(24px,5.3vw,80px)!important;left:auto!important;}
body .elementor .impact-featured .impact-story-carousel.elementor-widget.elementor-widget-n-carousel .elementor-swiper-button-prev {right:calc(clamp(24px,5.3vw,80px) + 56px)!important;left:auto!important;}

/* Featured stories pagination: solid white 8px dots and 24px active pill. */
body .elementor .impact-featured .impact-story-carousel.elementor-widget.elementor-widget-n-carousel .swiper-pagination-bullet {width:8px!important;height:8px!important;background:#fff!important;opacity:1!important;border-radius:8px!important;flex-shrink:0;}
body .elementor .impact-featured .impact-story-carousel.elementor-widget.elementor-widget-n-carousel .swiper-pagination-bullet-active {width:24px!important;height:8px!important;}

/* Keep only the animated CTA underline on news cards. */
body .elementor .rhf-news-card .rhf-news-link .elementor-button,
body .elementor .rhf-news-card .rhf-news-link .elementor-button:is(:hover,:focus-visible),
body .elementor .rhf-news-card .rhf-news-link .elementor-button-text {
 text-decoration:none!important;border-bottom:0!important;box-shadow:none!important;
}
/* Stretch the newsletter release link across its card, retaining a native link. */
body .elementor .subscribe-cards .subscribe-card {position:relative;}
body .elementor .subscribe-cards .subscribe-card .elementor-widget-button,
body .elementor .subscribe-cards .subscribe-card .elementor-widget-button .elementor-widget-container,
body .elementor .subscribe-cards .subscribe-card .elementor-button-wrapper,
body .elementor .subscribe-cards .subscribe-card .elementor-button {position:static;}
body .elementor .subscribe-cards .subscribe-card .elementor-button::after {content:"";position:absolute;inset:0;z-index:2;cursor:pointer;border-radius:inherit;}
body.elementor-editor-active .elementor .subscribe-cards .subscribe-card .elementor-button::after {display:none;}

/* Footer text links use the same left-to-right underline reveal as navigation. */
body .elementor-location-footer .rhf-footer-nav a{position:relative;display:inline-block;width:fit-content;text-decoration:none!important}
body .elementor-location-footer .rhf-footer-nav a::after{content:'';position:absolute;left:0;right:0;bottom:-4px;height:1.5px;background:currentColor;transform:scaleX(0);transform-origin:left center;transition:transform 260ms cubic-bezier(.22,.61,.36,1)}
body .elementor-location-footer .rhf-footer-nav a:focus-visible::after{transform:scaleX(1)}

/* Board and leadership portraits and CTAs respond together across each card. */
body .elementor .rhf-person .elementor-widget-image{overflow:hidden;border-radius:6px}
body .elementor .rhf-person .elementor-widget-image img{display:block;transform:scale(1);transform-origin:center;transition:transform 450ms cubic-bezier(.22,.61,.36,1)}
body .elementor .rhf-person .rhf-person-link .elementor-button,
body .elementor .rhf-person .rhf-person-link .elementor-button:is(:hover,:focus-visible){background:transparent!important;text-decoration:none!important;box-shadow:none!important}
body .elementor .rhf-person .rhf-person-link .elementor-button-text{position:relative;display:inline-block;text-decoration:none!important}
body .elementor .rhf-person .rhf-person-link .elementor-button-text::after{content:'';position:absolute;left:0;right:0;bottom:-4px;height:1.5px;background:currentColor;transform:scaleX(0);transform-origin:left center;transition:transform 260ms cubic-bezier(.22,.61,.36,1)}
body .elementor .rhf-person:focus-within .elementor-widget-image img{transform:scale(1.045)}
body .elementor .rhf-person:focus-within .rhf-person-link .elementor-button-text::after{transform:scaleX(1)}
@media(hover:hover) and (pointer:fine){
 body .elementor-location-footer .rhf-footer-nav a:hover::after{transform:scaleX(1)}
 body .elementor .rhf-person:hover .elementor-widget-image img{transform:scale(1.045)}
 body .elementor .rhf-person:hover .rhf-person-link .elementor-button-text::after{transform:scaleX(1)}
}
@media(prefers-reduced-motion:reduce){
 body .elementor-location-footer .rhf-footer-nav a::after,
 body .elementor .rhf-person .rhf-person-link .elementor-button-text::after{transition:none}
 body .elementor .rhf-person .elementor-widget-image img{transition:none!important;transform:none!important}
}

/* One native biography link covers the whole person card. */
body .elementor .rhf-person{position:relative}
body .elementor .rhf-person .rhf-person-link,
body .elementor .rhf-person .rhf-person-link .elementor-widget-container,
body .elementor .rhf-person .rhf-person-link .elementor-button-wrapper,
body .elementor .rhf-person .rhf-person-link .elementor-button{position:static}
body .elementor .rhf-person .rhf-person-link .elementor-button::before{content:'';position:absolute;inset:0;z-index:2;border-radius:inherit;cursor:pointer}
body .elementor .rhf-person:has(.rhf-person-link a:focus-visible){outline:3px solid #D22530;outline-offset:4px}
body .elementor .rhf-person .rhf-person-link a:focus-visible{outline:none!important}

/* Biography names keep the approved type size; cards reflow before names squeeze. */
body .elementor .rhf-about-content .rhf-people-grid{
 grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))!important;
}
body .elementor .rhf-about-content .rhf-person .elementor-heading-title{
 font-family:Alexandria,Arial,sans-serif!important;font-size:20px!important;
 font-style:normal!important;font-weight:700!important;line-height:normal!important;
 letter-spacing:.6px!important;word-break:normal;overflow-wrap:normal;hyphens:none;
}
@media(max-width:767px){
 body .elementor .rhf-about-content .rhf-people-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:600px){
 body .elementor .rhf-about-content .rhf-people-grid{grid-template-columns:minmax(0,1fr)!important}
 body .elementor .rhf-about-content .rhf-about-leadership .rhf-person:nth-child(3){width:100%;grid-column:auto;justify-self:stretch}
}

/* Biography card captions, roles and links. */
body .elementor .rhf-about-content .rhf-person :is(.rhf-person-role,.elementor-widget-text-editor,.elementor-widget-text-editor p,figcaption,.widget-image-caption),
body .elementor .rhf-about-content .rhf-person .rhf-person-link :is(.elementor-button,.elementor-button-text){
 font-size:14px!important;
}

/* Governance columns share the same heading start line. */
body .elementor .rhf-about-content .rhf-about-founder > .rhf-founder-aside{
 align-self:start;justify-content:flex-start;
}

/* About Us involvement pills keep button styling on hover. */
body .elementor .rhf-about-involve .rhf-involve-buttons .elementor-button,
body .elementor .rhf-about-involve .rhf-involve-buttons .elementor-button .elementor-button-text{
 text-decoration:none!important;background-image:none!important;
}
body .elementor .rhf-about-involve .rhf-involve-buttons .elementor-button .elementor-button-text::after{content:none!important}

/* Pill labels do not reserve the extra underline space used by text links. */
body .elementor .rhf-about-involve .rhf-involve-buttons .elementor-button .elementor-button-text{padding-bottom:0!important}
body .elementor .rhf-about-involve .rhf-involve-buttons .elementor-button{
 display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;
 height:48px;min-height:48px;padding-top:12px;padding-bottom:12px;
}
body .elementor .rhf-about-involve .rhf-involve-buttons .elementor-button-content-wrapper{align-items:center}
