/* CPS editorial system: one family; heading, body and interface roles.
   The named layer lets these deliberate rules supersede legacy page rules. */
@font-face{font-family:"CPS Sans";font-style:normal;font-weight:400;font-display:swap;src:url('/assets/fonts/cps-sans-400.woff2') format('woff2')}
@font-face{font-family:"CPS Sans";font-style:normal;font-weight:500;font-display:swap;src:url('/assets/fonts/cps-sans-500.woff2') format('woff2')}
@font-face{font-family:"CPS Sans";font-style:normal;font-weight:700;font-display:swap;src:url('/assets/fonts/cps-sans-700.woff2') format('woff2')}
@layer cpsTypography{
 body[data-cps-typography]{--cps-type-heading:#00172d;--cps-type-body:#34465a;--cps-type-muted:#526477;--cps-type-link:#6e2b8c;--cps-type-accent:#6e2b8c;--cps-type-blue:#006c9a;font-family:"CPS Sans",Arial,sans-serif!important;font-weight:400!important;font-synthesis:none}
 body[data-cps-typography] *,body[data-cps-typography] *::before,body[data-cps-typography] *::after{font-family:inherit!important;font-weight:inherit!important}
 body[data-cps-typography] :is(h1,h2,h3,h4,h5,h6,strong,b){font-weight:700!important}
 body[data-cps-typography] :is(button,input,select,textarea,.btn,.quote,.navlinks,.dropdown,.mobile-menu,.eyebrow,[class*="-eyebrow"],.kicker,label,.cps-main-home,.cps-irish-owned,.cps-v13-strip,.status-button){font-weight:500!important}
 body[data-cps-typography="public"]{font-size:16px!important;line-height:1.65!important;color:var(--cps-type-body)!important}
 body[data-cps-typography="public"] :is(.inner-hero,.cps-welcome-hero,.cps-v13-hero,.footer,.cta,.cps-choice,.cps-flip-back,.cps-division-feature,.cps-config-intro,.cps-inhouse-hero,.cps-home-expertise-media,.cps-home-story,.cps-doc-contact,.topbar,.status-maintenance,.contact-card,.cps-history,[data-map-theme="navy"]){--cps-type-heading:#fff;--cps-type-body:#d8e2ed;--cps-type-muted:#d8e2ed;--cps-type-link:#fff;--cps-type-accent:#c06aef;--cps-type-blue:#55cafa}
 body[data-cps-typography="public"].status-maintenance{--cps-type-heading:#fff;--cps-type-body:#d8e2ed;--cps-type-muted:#d8e2ed;--cps-type-link:#fff;--cps-type-accent:#c06aef;--cps-type-blue:#55cafa}
 body[data-cps-typography="public"] :is(h1,h2,h3,h4,h5,h6){color:var(--cps-type-heading)!important;letter-spacing:-.025em!important;text-transform:none!important;line-height:1.2!important;overflow-wrap:break-word}
 body[data-cps-typography="public"] h1{font-size:clamp(32px,3.6vw,48px)!important;line-height:1.15!important}
 body[data-cps-typography="public"] h2{font-size:clamp(26px,2.65vw,34px)!important}
 body[data-cps-typography="public"] h3{font-size:22px!important}
 body[data-cps-typography="public"] :is(h4,h5,h6){font-size:18px!important}
 body[data-cps-typography="public"] :is(.cps-choice h2,.cps-doc-card h3,.card h3,.cps-workshop-card h3){font-size:22px!important;line-height:1.3!important}
 body[data-cps-typography="public"] :is(p,li){font-size:16px!important;line-height:1.65!important;color:var(--cps-type-body)!important}
 /* Natural spacing keeps short and multi-line copy readable at every width.
    Never stretch words to force both edges of a paragraph into alignment. */
 body[data-cps-typography="public"] :is(p,li){text-align:start!important;text-align-last:start!important;text-justify:auto;word-spacing:normal!important;text-wrap:pretty;word-break:normal;overflow-wrap:break-word;hyphens:manual}
 /* These are deliberately centred introductions, rather than prose columns. */
 body[data-cps-typography="public"] :is(.cps-welcome-intro,.cps-paths-intro,.status-launch .status-copy) p{ text-align:center!important;text-align-last:center!important }
 /* Navigation, interface labels and metadata retain their own alignment. */
 body[data-cps-typography="public"] :is(nav,.navlinks,.dropdown,.mobile-menu,.footer-bottom) li,
 body[data-cps-typography="public"] :is(p.eyebrow,p[class*="-eyebrow"],p.kicker,p.status-label){text-align:start!important;text-align-last:start!important;text-wrap:wrap;hyphens:manual}
 /* Anchored copy stays visible below the fixed page header. */
 body[data-cps-typography="public"] :is(section[id],h1[id],h2[id],h3[id]){scroll-margin-block-start:120px}
 body[data-cps-typography="public"] :is(.footer p,.footer li,.footer a,.cps-notice-footer a,small,figcaption,.note,.muted){font-size:14px!important;line-height:1.65!important;color:var(--cps-type-muted)!important}
 body[data-cps-typography="public"] a{color:var(--cps-type-link)!important}
 body[data-cps-typography="public"] :is(.btn,.quote,button,.eyebrow,[class*="-eyebrow"],.kicker,.cps-main-home,label,.status-button){font-size:13px!important;line-height:1.45!important;letter-spacing:.025em!important}
 body[data-cps-typography="public"] :is(.eyebrow,[class*="-eyebrow"],.kicker){color:var(--cps-type-accent)!important}
 body[data-cps-typography="public"] :is(.navlinks> .navitem>a,.cps-v13-strip a){font-size:12px!important;line-height:1.45!important;font-weight:500!important}
 body[data-cps-typography="public"] a.cps-main-home{font-size:13px!important;line-height:1.15!important;font-weight:700!important;letter-spacing:.065em!important;color:#6e2b8c!important}
 @media(max-width:980px){body[data-cps-typography="public"] a.cps-main-home{font-size:12px!important}}
 @media(max-width:620px){body[data-cps-typography="public"] a.cps-main-home{font-size:11.5px!important;letter-spacing:.045em!important}}
 body[data-cps-typography="public"] :is(.dropdown a,#mobileMenu a){font-size:14px!important;line-height:1.5!important;font-weight:500!important}
 body[data-cps-typography="public"] :is(.cps-hero-accent,.cps-doc-hero-accent,.cps-title-highlight,.cps-headline-accent){color:var(--cps-type-accent)!important}
 body[data-cps-typography="public"] :is(.blue,.cps-headline-accent-perform){color:var(--cps-type-blue)!important}
 body[data-cps-typography="public"] .cps-history .cps-history-year{font-weight:700!important}
 body[data-cps-typography="public"] .cps-history .cps-history-copy h3{font-size:20px!important;line-height:1.3!important}
 body[data-cps-typography="public"] .cps-history .cps-history-copy p{font-size:15px!important;line-height:1.65!important}
 body[data-cps-typography="public"] .cps-history .cps-history-end a{font-size:13px!important;font-weight:500!important}
 body[data-cps-typography="public"] .cps-v13-tiles .cap h3{font-size:14px!important;font-weight:500!important;line-height:1.4!important;letter-spacing:0!important}
 body[data-cps-typography="public"] :is(.btn.primary,.quote,.status-button.primary,.cps-flip-back .btn){background:#6e2b8c!important;color:#fff!important}
 body[data-cps-typography="public"] :is(.inner-hero,.cps-welcome-hero,.cta,.cps-doc-contact,.cps-division-feature) .btn{color:#fff!important}
 body[data-cps-typography="public"] :is(.social-link,.footer-social-link){color:#fff!important}
 body[data-cps-typography="public"] .cps-irish-owned{font-size:12px!important;line-height:18px!important;color:#fff!important}
 body[data-cps-typography="public"] .cps-irish-owned span{font-weight:500!important}
 body[data-cps-typography="public"] .topbar :is(a,span){font-size:12px!important}
 body[data-cps-typography="public"] .footer h4{font-size:16px!important}
 body[data-cps-typography="public"] .cps-choice p{font-size:15px!important}
 body[data-cps-typography="public"] .cps-doc-card ul{line-height:1.65!important}
 /* The launch announcement keeps its approved display scale. */
 body[data-cps-typography="public"].status-launch h1{font-size:inherit!important}
 body[data-cps-typography="public"].status-launch .launch-big{font-size:clamp(76px,11.5vw,176px)!important;font-weight:700!important;line-height:.92!important}
 @media(max-width:620px){body[data-cps-typography="public"] .cps-choice h2{font-size:24px!important}body[data-cps-typography="public"].status-launch .launch-big{font-size:clamp(62px,15vw,100px)!important}}
}
