:root{--primary:#e7154f;--primary-dark:#b70d3b;--navy:#173b4d;--navy-deep:#0f2c3b;--gold:#d7a428;--cream:#f7f3ec;--paper:#fff;--ink:#21313a;--muted:#60717b;--line:#dde5e8;--shadow:0 18px 50px rgba(15,44,59,.12);--radius:18px;--container:1240px;--base-size:16px}*{box-sizing:border-box}html{scroll-behavior:smooth;font-size:var(--base-size)}body{margin:0;color:var(--ink);background:#fff;font-family:Arial,"Helvetica Neue",sans-serif;line-height:1.65;overflow-x:hidden}img{max-width:100%;height:auto;display:block}a{
    color:var(--primary-dark);
    text-decoration:none;
    transition:
        color .22s ease,
        background-color .22s ease,
        border-color .22s ease,
        box-shadow .22s ease,
        transform .22s ease,
        opacity .22s ease
}
a:hover,
a:active{
    text-decoration:none
}button,input,select,textarea{font:inherit}button{cursor:pointer}.site-container{width:min(100% - 32px,var(--container));margin-inline:auto}.skip-link{position:fixed;left:16px;top:-80px;background:var(--navy);color:#fff;padding:12px 18px;z-index:9999;border-radius:8px}.skip-link:focus{top:16px}.scroll-progress{position:fixed;top:0;left:0;width:0;height:4px;background:var(--gold);z-index:2000}.utility-bar{background:var(--navy-deep);color:#fff;font-size:.87rem}.utility-inner{min-height:38px;display:flex;align-items:center;justify-content:space-between;gap:18px}.utility-contact,.utility-actions{display:flex;gap:20px;align-items:center}.utility-bar a,.utility-button{color:#fff;background:none;border:0;padding:8px 0}.site-header{position:sticky;top:0;z-index:1000;background:rgba(255,255,255,.98);box-shadow:0 6px 25px rgba(15,44,59,.08);transition:.3s}.site-header.is-transparent{position:fixed;top:38px;left:0;right:0;background:linear-gradient(to bottom,rgba(8,29,40,.8),rgba(8,29,40,0));box-shadow:none;color:#fff}.site-header.is-transparent.scrolled{position:fixed;top:0;background:rgba(255,255,255,.98);box-shadow:0 6px 25px rgba(15,44,59,.1);color:var(--ink)}.header-inner{min-height:92px;display:flex;align-items:center;justify-content:space-between;gap:26px}.brand{display:flex;align-items:center;gap:14px;color:inherit;min-width:300px}.brand:hover{text-decoration:none}.brand img{border-radius:12px;box-shadow:0 7px 20px rgba(231,21,79,.18)}.brand-text{display:flex;flex-direction:column;line-height:1.25}.brand-text strong{font-family:Georgia,serif;font-size:1.02rem;max-width:320px}.brand-text small{margin-top:5px;color:var(--muted)}.is-transparent:not(.scrolled) .brand-text small{color:#e6eef1}.primary-nav{display:flex;align-items:center;gap:18px}.primary-nav ul{display:flex;align-items:center;gap:4px;list-style:none;padding:0;margin:0}.primary-nav a,.submenu-toggle{display:flex;align-items:center;min-height:44px;padding:10px 11px;border:0;background:none;color:inherit;font-weight:700;border-radius:9px;white-space:nowrap}.primary-nav a:hover,.primary-nav a.active,.submenu-toggle:hover,.submenu-toggle.active{background:rgba(231,21,79,.1);color:var(--primary-dark);text-decoration:none}.is-transparent:not(.scrolled) .primary-nav a,.is-transparent:not(.scrolled) .submenu-toggle{color:#fff}.is-transparent:not(.scrolled) .primary-nav a:hover,.is-transparent:not(.scrolled) .primary-nav a.active,.is-transparent:not(.scrolled) .submenu-toggle:hover,.is-transparent:not(.scrolled) .submenu-toggle.active{background:rgba(255,255,255,.14);color:#fff}.has-submenu{position:relative}.submenu{position:absolute!important;top:100%;left:0;width:300px;display:none!important;flex-direction:column!important;align-items:stretch!important;padding:12px!important;background:#fff;border-radius:14px;box-shadow:var(--shadow);border:1px solid var(--line)}.submenu a{color:var(--ink)!important}.has-submenu:hover .submenu,.has-submenu:focus-within .submenu,.has-submenu.open .submenu{display:flex!important}.donate-button,.button{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:11px 20px;border-radius:999px;border:2px solid transparent;font-weight:800;text-decoration:none;transition:.25s}.donate-button,.button.primary{background:var(--primary);color:#fff;border-color:var(--primary)}.donate-button:hover,.button.primary:hover{background:var(--primary-dark);border-color:var(--primary-dark);text-decoration:none;transform:translateY(-2px)}.button.secondary{background:var(--navy);border-color:var(--navy);color:#fff}.button.ghost{background:#fff;border-color:var(--line);color:var(--ink)}.button.light{background:#fff;color:var(--navy)}.button.outline-light{border-color:#fff;color:#fff;background:transparent}.pulse{animation:pulse 2.5s infinite}@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(231,21,79,.35)}50%{box-shadow:0 0 0 11px rgba(231,21,79,0)}}.menu-toggle{display:none;width:48px;height:48px;border:1px solid var(--line);background:#fff;border-radius:12px;padding:11px}.menu-toggle span{display:block;height:2px;background:var(--navy);margin:5px 0}.hero{min-height:780px;display:flex;align-items:flex-end;position:relative;background-image:linear-gradient(90deg,rgba(9,31,42,.88) 0%,rgba(9,31,42,.62) 48%,rgba(9,31,42,.18) 100%),var(--hero-image);background-size:cover;background-position:center}.hero-content{padding:210px 0 110px;color:#fff;max-width:760px}.eyebrow{display:inline-block;font-size:.78rem;text-transform:uppercase;letter-spacing:.16em;font-weight:800;color:var(--primary);margin-bottom:12px}.eyebrow.light{color:#ffe4ec}.hero h1,.page-banner h1,.section-heading h2,.support-cta h2{font-family:Georgia,serif;line-height:1.08;margin:0}.hero h1{font-size:clamp(2.6rem,5.5vw,5.3rem);max-width:820px}.hero p{font-size:1.2rem;max-width:690px;color:#ecf4f6}.hero-actions,.cta-actions,.modal-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.anniversary-badge{position:absolute;right:max(4vw,30px);bottom:50px;width:190px;height:190px;border-radius:50%;background:rgba(255,255,255,.94);display:grid;place-items:center;text-align:center;color:var(--navy);box-shadow:var(--shadow);border:7px solid rgba(215,164,40,.55)}.anniversary-badge strong{font-size:3rem;line-height:1;color:var(--primary);display:block}.anniversary-badge span{font-weight:800}.section{padding:90px 0}.section.alt{background:var(--cream)}.section-heading{max-width:760px;margin-bottom:38px}.section-heading.center{text-align:center;margin-inline:auto}.section-heading h2{font-size:clamp(2rem,3.8vw,3.4rem);color:var(--navy)}.section-heading p{font-size:1.08rem;color:var(--muted)}.split{display:grid;grid-template-columns:1.05fr .95fr;gap:60px;align-items:center}.split.reverse>div:first-child{order:2}.feature-image{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);position:relative}.feature-image img{width:100%;aspect-ratio:4/3;object-fit:cover}.feature-image .image-label{position:absolute;left:18px;bottom:18px;background:#fff;padding:10px 14px;border-radius:999px;font-weight:700}.card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.card-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:0 10px 34px rgba(15,44,59,.07);transition:.25s}.card:hover{transform:translateY(-5px);box-shadow:var(--shadow)}.card-image{aspect-ratio:16/10;overflow:hidden;background:#e8edef}.card-image img{width:100%;height:100%;object-fit:cover;transition:.4s}.card:hover .card-image img{transform:scale(1.035)}.card-body{padding:24px}.card h3{margin:0 0 10px;color:var(--navy);font-family:Georgia,serif;font-size:1.35rem}.card p{margin:0;color:var(--muted)}.card-meta{display:flex;gap:10px;flex-wrap:wrap;color:var(--muted);font-size:.87rem;margin-bottom:10px}.icon-card{padding:28px}.icon-bubble{width:58px;height:58px;border-radius:16px;background:rgba(231,21,79,.1);display:grid;place-items:center;color:var(--primary);font-size:1.55rem;margin-bottom:18px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.stat{background:var(--navy);color:#fff;padding:30px;border-radius:var(--radius);text-align:center}.stat strong{display:block;font-size:2.3rem;color:#fff}.stat span{color:#cbdbe2}.timeline{position:relative;margin-top:36px}.timeline:before{content:"";position:absolute;left:25px;top:0;bottom:0;width:3px;background:var(--line)}.timeline-item{position:relative;padding:0 0 34px 80px}.timeline-item:before{content:"";position:absolute;left:13px;top:5px;width:24px;height:24px;border-radius:50%;background:var(--primary);border:6px solid #fff;box-shadow:0 0 0 2px var(--primary)}.timeline-item time{font-weight:800;color:var(--primary)}.timeline-item h3{margin:4px 0;color:var(--navy)}.quote-panel{padding:46px;border-radius:var(--radius);background:var(--navy);color:#fff}.quote-panel blockquote{font-family:Georgia,serif;font-size:clamp(1.5rem,3vw,2.4rem);line-height:1.35;margin:0}.quote-panel cite{display:block;margin-top:20px;color:#d7e5ea}.page-banner{position:relative;min-height:390px;display:flex;align-items:flex-end;background-image:var(--banner-image);background-size:cover;background-position:center}.page-banner-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(9,31,42,.9),rgba(9,31,42,.35))}.page-banner-content{position:relative;color:#fff;padding:145px 0 62px}.page-banner h1{font-size:clamp(2.4rem,5vw,4.7rem)}.page-banner p{font-size:1.12rem;max-width:690px}.breadcrumbs ol{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:0 0 16px;font-size:.92rem}.breadcrumbs li:not(:last-child):after{content:"/";margin-left:8px;color:#cbdbe2}.breadcrumbs a,.breadcrumbs span{color:#fff}.profile-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.profile-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:26px;display:flex;gap:18px;align-items:flex-start}.profile-avatar{width:70px;height:70px;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--navy));display:grid;place-items:center;color:#fff;font-size:1.4rem;font-weight:900;flex:none;overflow:hidden}.profile-avatar img{width:100%;height:100%;object-fit:cover}.profile-card h3{margin:0;color:var(--navy)}.profile-card .role{color:var(--primary-dark);font-weight:800;font-size:.9rem}.profile-card p{color:var(--muted);margin-bottom:0}.meal-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.meal-card{background:#fff;border:2px solid var(--line);border-radius:var(--radius);padding:30px;text-align:center}.meal-card strong{display:block;font-size:1.65rem;color:var(--primary);margin-top:8px}.report-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.report-card{display:grid;grid-template-columns:130px 1fr;gap:20px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:18px}.report-card img{width:130px;aspect-ratio:3/4;object-fit:cover;border-radius:10px;border:1px solid var(--line)}.report-card h3{margin:0;color:var(--navy)}.report-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:14px}.report-actions a{font-weight:800}.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:220px;gap:14px}.gallery-grid figure{margin:0;border-radius:14px;overflow:hidden}.gallery-grid figure:first-child{grid-column:span 2;grid-row:span 2}.gallery-grid img{width:100%;height:100%;object-fit:cover}.contact-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:38px}.contact-cards{display:grid;gap:16px}.contact-card{padding:22px;border:1px solid var(--line);border-radius:16px;background:#fff}.form-card{background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);padding:34px;border-radius:var(--radius)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.form-group{display:flex;flex-direction:column;gap:7px}.form-group.full{grid-column:1/-1}.form-group label{font-weight:800;color:var(--navy)}input,select,textarea{width:100%;border:1px solid #b9c8cf;border-radius:10px;padding:13px 14px;background:#fff;color:var(--ink)}input:focus,select:focus,textarea:focus{outline:3px solid rgba(231,21,79,.22);border-color:var(--primary)}textarea{min-height:150px;resize:vertical}.honeypot{position:absolute!important;left:-10000px!important}.alert{padding:14px 18px;border-radius:12px;margin-bottom:18px}.alert.success{background:#e3f6eb;color:#145b34}.alert.error{background:#fde6eb;color:#87213b}.accordion{border-top:1px solid var(--line)}.accordion-item{border-bottom:1px solid var(--line)}.accordion-button{width:100%;display:flex;justify-content:space-between;gap:20px;text-align:left;background:#fff;border:0;padding:20px 0;font-weight:800;color:var(--navy)}.accordion-panel{padding:0 0 20px;color:var(--muted)}.support-cta{background:var(--primary);color:#fff;padding:65px 0}.support-cta-inner{display:flex;align-items:center;justify-content:space-between;gap:36px}.support-cta h2{font-size:clamp(2rem,4vw,3.4rem);max-width:760px}.support-cta p{max-width:700px;color:#ffeaf0}.site-footer{background:var(--navy-deep);color:#d8e5ea}.footer-grid{display:grid;grid-template-columns:1.5fr repeat(4,1fr);gap:34px;padding:70px 0}.footer-brand img{border-radius:14px}.footer-brand h2{font-family:Georgia,serif;color:#fff;font-size:1.25rem}.site-footer h3{color:#fff}.site-footer ul{list-style:none;padding:0;margin:0}.site-footer li{margin:8px 0}.site-footer a{color:#d8e5ea}.site-footer address{font-style:normal}.charity-notice{width:100%;background:#fff3c9;color:#503900;text-align:center;font-weight:800;padding:16px 20px}.footer-bottom{background:#081f2b;color:#b8c9d0;padding:18px 0;text-align:center;font-size:.9rem}.modal,.cookie-preferences{position:fixed;inset:0;z-index:3000;display:grid;place-items:center;padding:20px}.modal[hidden],.cookie-preferences[hidden],.accessibility-panel[hidden],.cookie-banner[hidden]{display:none}.modal-backdrop{position:absolute;inset:0;background:rgba(4,19,27,.72)}.modal-panel{position:relative;width:min(100%,620px);max-height:90vh;overflow:auto;background:#fff;border-radius:22px;padding:34px;box-shadow:0 30px 90px rgba(0,0,0,.3)}.modal-close{position:absolute;right:16px;top:12px;width:44px;height:44px;border:0;border-radius:50%;background:#f0f3f4;font-size:1.6rem}.bank-details{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:24px 0}.bank-details div{padding:14px;background:var(--cream);border-radius:12px}.bank-details dt{font-size:.78rem;text-transform:uppercase;color:var(--muted);font-weight:800}.bank-details dd{margin:4px 0 0}.notice-box{background:#fff6dc;border-left:5px solid var(--gold);padding:16px;border-radius:10px}.floating-action{position:fixed;z-index:1800;border:0;box-shadow:0 10px 26px rgba(0,0,0,.18)}.accessibility-fab{right:20px;bottom:90px;width:56px;height:56px;border-radius:50%;background:var(--navy);color:#fff;font-size:1.5rem}.cookie-fab{left:16px;bottom:16px;border-radius:999px;background:#fff;color:var(--navy);padding:10px 14px;border:1px solid var(--line);font-weight:800}.back-to-top{position:fixed;right:20px;bottom:20px;width:52px;height:52px;border-radius:50%;border:0;background:var(--primary);color:#fff;font-size:1.4rem;box-shadow:0 10px 26px rgba(0,0,0,.18);z-index:1700;opacity:0;pointer-events:none;transition:.25s}.back-to-top.show{opacity:1;pointer-events:auto}.accessibility-panel{position:fixed;right:20px;bottom:156px;width:min(92vw,390px);z-index:2500;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);padding:20px}.accessibility-head{display:flex;justify-content:space-between;align-items:center}.accessibility-head h2{margin:0}.accessibility-head button{border:0;background:none;font-size:1.5rem}.accessibility-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:15px}.accessibility-grid button{min-height:48px;background:var(--cream);border:1px solid var(--line);border-radius:10px;text-align:left}.cookie-banner{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);width:min(calc(100% - 32px),1060px);z-index:2600;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 24px 70px rgba(0,0,0,.22);padding:22px;display:flex;align-items:center;justify-content:space-between;gap:22px}.cookie-banner h2{margin:0}.cookie-banner p{margin:4px 0 0;color:var(--muted)}.cookie-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.switch-row{display:flex;justify-content:space-between;gap:20px;padding:17px 0;border-bottom:1px solid var(--line)}.switch-row span{display:flex;flex-direction:column}.switch-row small{color:var(--muted)}.switch-row input{width:24px}.reveal{opacity:0;transform:translateY(24px);transition:opacity .65s ease,transform .65s ease}.reveal.visible{opacity:1;transform:none}.a11y-contrast{filter:contrast(1.25)}.a11y-grayscale{filter:grayscale(1)}.a11y-underline a{text-decoration:underline!important}.a11y-no-motion *{animation:none!important;transition:none!important;scroll-behavior:auto!important}.a11y-focus *:focus{outline:4px solid #ffbf00!important;outline-offset:3px!important}.prose{max-width:860px}.prose h2,.prose h3{color:var(--navy);font-family:Georgia,serif}.prose h2{font-size:2rem;margin-top:2.2em}.prose li{margin-bottom:8px}.site-map-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.site-map-card{padding:26px;background:var(--cream);border-radius:var(--radius)}.site-map-card h2{font-family:Georgia,serif;color:var(--navy)}.site-map-card ul{padding-left:20px}.empty-state{padding:40px;text-align:center;background:var(--cream);border-radius:var(--radius)}
@media(max-width:1100px){.header-inner{min-height:78px}.brand-text strong{font-size:.92rem}.primary-nav{gap:8px}.primary-nav a,.submenu-toggle{padding:9px 7px;font-size:.88rem}.donate-button{padding-inline:14px}.footer-grid{grid-template-columns:1.4fr repeat(2,1fr)}.card-grid.four{grid-template-columns:repeat(2,1fr)}.report-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){.utility-contact a:nth-child(2){display:none}.site-header.is-transparent{top:38px}.menu-toggle{display:block}.primary-nav{position:fixed;top:0;right:-100%;width:min(90vw,420px);height:100vh;background:#fff;color:var(--ink);padding:90px 22px 30px;display:block;overflow:auto;transition:.3s;box-shadow:-20px 0 60px rgba(0,0,0,.2)}.primary-nav.open{right:0}.primary-nav ul{display:block}.primary-nav li{width:100%}.primary-nav a,.submenu-toggle{width:100%;justify-content:space-between;color:var(--ink)!important;padding:12px}.submenu{position:static!important;width:100%;box-shadow:none;border:0;background:var(--cream);margin:0 0 10px!important}.donate-button{width:100%;margin-top:16px}.split,.contact-grid{grid-template-columns:1fr}.split.reverse>div:first-child{order:0}.card-grid,.profile-grid{grid-template-columns:repeat(2,1fr)}.stats,.meal-grid{grid-template-columns:repeat(2,1fr)}.gallery-grid{grid-template-columns:repeat(2,1fr)}.footer-grid{grid-template-columns:repeat(2,1fr)}.footer-brand{grid-column:1/-1}.support-cta-inner{align-items:flex-start;flex-direction:column}.anniversary-badge{width:145px;height:145px;right:24px}.anniversary-badge strong{font-size:2.3rem}.page-banner-content{padding-top:130px}}
@media(max-width:640px){.site-container{width:min(100% - 24px,var(--container))}.utility-inner{justify-content:center}.utility-actions{display:none}.site-header.is-transparent{top:38px}.brand{min-width:0;gap:10px}.brand img{width:58px;height:58px}.brand-text strong{font-size:.82rem}.brand-text small{font-size:.72rem}.hero{min-height:700px;background-position:60% center}.hero-content{padding:180px 0 150px}.hero h1{font-size:2.75rem}.hero p{font-size:1.05rem}.anniversary-badge{bottom:20px;width:125px;height:125px}.section{padding:66px 0}.card-grid,.card-grid.four,.profile-grid,.report-grid,.site-map-grid{grid-template-columns:1fr}.stats,.meal-grid{grid-template-columns:1fr 1fr}.gallery-grid{grid-auto-rows:150px}.report-card{grid-template-columns:105px 1fr}.report-card img{width:105px}.form-grid{grid-template-columns:1fr}.bank-details{grid-template-columns:1fr}.cookie-banner{align-items:stretch;flex-direction:column}.cookie-actions{justify-content:stretch}.cookie-actions .button{width:100%}.footer-grid{grid-template-columns:1fr}.footer-brand{grid-column:auto}.support-cta{padding:52px 0}.page-banner{min-height:330px}.page-banner-content{padding:120px 0 44px}.accessibility-grid{grid-template-columns:1fr}.accessibility-panel{right:12px;bottom:150px}.cookie-fab{font-size:.75rem}.profile-card{padding:20px}.modal-panel{padding:28px 20px}}

/* =========================================================
   GLOBAL LINK STYLE AND HOVER ANIMATIONS
   ========================================================= */

/* Header contact links */
.utility-bar a{
    display:inline-block
}
.utility-bar a:hover{
    transform:scale(1.045);
    opacity:.9
}

/* Main navigation and submenu links */
.primary-nav a,
.submenu a{
    transform-origin:center
}
.primary-nav a:hover,
.submenu a:hover{
    transform:scale(1.045)
}

/* Logo and organisation name */
.brand{
    transform-origin:left center;
    transition:
        transform .22s ease,
        opacity .22s ease
}
.brand:hover{
    transform:scale(1.025);
    text-decoration:none
}

/* Breadcrumb links */
.breadcrumbs a{
    display:inline-block;
    transform-origin:left center
}
.breadcrumbs a:hover{
    transform:scale(1.04);
    text-decoration:none
}

/* Footer links */
.site-footer a,
.footer-bottom a{
    display:inline-block;
    transform-origin:left center
}
.site-footer a:hover,
.footer-bottom a:hover{
    transform:scale(1.045);
    color:#fff;
    text-decoration:none
}

/* General content links */
.prose a,
.contact-card a,
.site-map-card a,
.report-actions a,
.card-body a,
.modal-panel a{
    display:inline-block;
    transform-origin:left center
}
.prose a:hover,
.contact-card a:hover,
.site-map-card a:hover,
.report-actions a:hover,
.card-body a:hover,
.modal-panel a:hover{
    transform:scale(1.04);
    text-decoration:none
}

/* CTA and donation buttons */
.donate-button:hover,
.button:hover{
    transform:translateY(-2px) scale(1.045);
    text-decoration:none
}

/* Maintain accessible keyboard navigation */
a:focus-visible{
    outline:3px solid var(--gold);
    outline-offset:4px;
    border-radius:5px
}

/* Accessibility widget can still underline links when activated */
.a11y-underline a,
.a11y-underline a:hover{
    text-decoration:underline!important
}

/* Respect visitors who prefer reduced animation */
@media(prefers-reduced-motion:reduce){
    .utility-bar a:hover,
    .primary-nav a:hover,
    .submenu a:hover,
    .brand:hover,
    .breadcrumbs a:hover,
    .site-footer a:hover,
    .footer-bottom a:hover,
    .prose a:hover,
    .contact-card a:hover,
    .site-map-card a:hover,
    .report-actions a:hover,
    .card-body a:hover,
    .modal-panel a:hover,
    .donate-button:hover,
    .button:hover{
        transform:none
    }
}

/* =========================================================
   GLOBAL WEBSITE FONT
   ========================================================= */

html,
body,
button,
input,
select,
textarea {
    font-family: "Open Sans", Arial, "Helvetica Neue", sans-serif;
}

/* Use Open Sans for all headings and highlighted text */
h1,
h2,
h3,
h4,
h5,
h6,
.brand-text strong,
.hero h1,
.page-banner h1,
.section-heading h2,
.support-cta h2,
.card h3,
.quote-panel blockquote,
.footer-brand h2,
.prose h2,
.prose h3,
.site-map-card h2 {
    font-family: "Open Sans", Arial, "Helvetica Neue", sans-serif;
}

/* Strong heading appearance */
h1,
.hero h1,
.page-banner h1 {
    font-weight: 800;
    letter-spacing: -0.025em;
}

h2,
.section-heading h2,
.support-cta h2 {
    font-weight: 700;
    letter-spacing: -0.015em;
}

h3,
.card h3,
.site-footer h3 {
    font-weight: 700;
}

/* =========================================================
   OPEN SANS – HEADER AND FOOTER OVERRIDE
   ========================================================= */

.utility-bar,
.utility-bar *,
.site-header,
.site-header *,
.primary-nav,
.primary-nav *,
.submenu,
.submenu *,
.brand,
.brand *,
.site-footer,
.site-footer *,
.footer-bottom,
.footer-bottom *,
.charity-notice,
.charity-notice *,
.support-cta,
.support-cta * {
    font-family: "Open Sans", Arial, "Helvetica Neue", sans-serif !important;
}

/* Organisation name in the header */
.brand-text strong {
    font-family: "Open Sans", Arial, "Helvetica Neue", sans-serif !important;
    font-weight: 700;
    letter-spacing: 0;
}

/* Header navigation */
.primary-nav a,
.submenu-toggle,
.submenu a,
.donate-button {
    font-family: "Open Sans", Arial, "Helvetica Neue", sans-serif !important;
    font-weight: 700;
}

/* Footer organisation title */
.footer-brand h2 {
    font-family: "Open Sans", Arial, "Helvetica Neue", sans-serif !important;
    font-weight: 700;
    letter-spacing: 0;
}

/* Footer column headings */
.site-footer h3 {
    font-family: "Open Sans", Arial, "Helvetica Neue", sans-serif !important;
    font-weight: 700;
}

/* Footer links and contact information */
.site-footer a,
.site-footer p,
.site-footer li,
.site-footer address,
.footer-bottom,
.charity-notice {
    font-family: "Open Sans", Arial, "Helvetica Neue", sans-serif !important;
}

/* =========================================================
   HERO CONTENT CORRECT LEFT ALIGNMENT
   ========================================================= */

/*
The hero-content element also contains the site-container class.
Keep it as a normal block container instead of a flex row.
*/
.hero-content.site-container {
    display: block !important;
    width: min(100% - 32px, var(--container));
    max-width: var(--container) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    text-align: left !important;
}

/* Control the readable width without centring the whole container */
.hero-content .eyebrow,
.hero-content h1,
.hero-content p {
    max-width: 760px;
    margin-left: 0;
    margin-right: auto;
    text-align: left !important;
}

/* Keep the buttons under the paragraph */
.hero-content .hero-actions {
    display: flex;
    width: 100%;
    justify-content: flex-start;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 28px;
}

/* Reset any accidental stretching */
.hero-content .hero-actions .button,
.hero-content .hero-actions .donate-button {
    width: auto;
    flex: 0 0 auto;
}

/* Mobile alignment */
@media (max-width: 640px) {
    .hero-content.site-container {
        width: min(100% - 24px, var(--container));
        max-width: var(--container) !important;
    }

    .hero-content .eyebrow,
    .hero-content h1,
    .hero-content p {
        max-width: 100%;
    }

    .hero-content .hero-actions {
        justify-content: flex-start;
    }

    .hero-content .hero-actions .button,
    .hero-content .hero-actions .donate-button {
        width: auto;
    }
}

/* =========================================================
   CONTACT PAGE GOOGLE MAP FULL HEIGHT
   ========================================================= */

.contact-grid {
    align-items: stretch;
}

/* Stretch the map column to the full grid height */
.contact-grid > :last-child {
    display: flex;
    flex-direction: column;
    min-height: 100%;
    overflow: hidden;
}

/* Make the Google Map fill the complete available box */
.contact-grid > :last-child iframe {
    display: block;
    width: 100%;
    height: 100% !important;
    min-height: 760px;
    flex: 1 1 auto;
    border: 0;
}

/* Tablet and mobile map height */
@media (max-width: 900px) {
    .contact-grid > :last-child iframe {
        height: 500px !important;
        min-height: 500px;
    }
}

@media (max-width: 640px) {
    .contact-grid > :last-child iframe {
        height: 420px !important;
        min-height: 420px;
    }
}

/* =========================================================
   CHARITABLE INSTITUTION NOTICE MARQUEE
   ========================================================= */

/* Charitable institution notice marquee */
.charity-notice {
    width: 100%;
    overflow: hidden;
    padding: 10px 0;
    font-size: .82rem;
    line-height: 1.4;
    text-align: left;
    white-space: nowrap;
}

.charity-notice span {
    display: inline-block;
    white-space: nowrap;
    will-change: transform;
    animation: charityNoticeRightToLeft 38s linear infinite;
}

.charity-notice:hover span {
    animation-play-state: paused;
}

/* Move from right to left */
@keyframes charityNoticeRightToLeft {
    from {
        transform: translateX(100vw);
    }

    to {
        transform: translateX(-100%);
    }
}

@media (max-width: 640px) {
    .charity-notice {
        padding: 8px 0;
        font-size: .72rem;
    }

    .charity-notice span {
        animation-duration: 32s;
    }
}

@media (prefers-reduced-motion: reduce) {
    .charity-notice {
        padding: 10px 16px;
        text-align: center;
        white-space: normal;
    }

    .charity-notice span {
        white-space: normal;
        animation: none;
        transform: none;
    }
}

/* =========================================================
   RECAPTCHA BADGE POSITION
   Place it to the left of the Back to Top button
   ========================================================= */

.grecaptcha-badge {
    right: 84px !important;
    bottom: 20px !important;
    width: 70px !important;
    overflow: hidden !important;
    border-radius: 5px !important;
    z-index: 1650 !important;
    transition: width .3s ease !important;
}

/* Show the complete reCAPTCHA information when hovered */
.grecaptcha-badge:hover,
.grecaptcha-badge:focus-within {
    width: 256px !important;
}

/* Keep the Back to Top button on the right */
.back-to-top {
    right: 20px;
    bottom: 20px;
    z-index: 1700;
}

/* Mobile adjustment */
@media (max-width: 640px) {
    .grecaptcha-badge {
        right: 76px !important;
        bottom: 20px !important;
    }

    .back-to-top {
        right: 12px;
        bottom: 20px;
    }
}

/* =========================================================
   HISTORICAL PORTRAIT DISPLAY
   Used for Founder and Benefactor pages
   ========================================================= */

.historical-portrait-frame {
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f4f0e8;
}

.feature-image img.historical-portrait {
    width: 100%;
    height: 100%;
    aspect-ratio: 4 / 3;
    object-fit: contain;
    object-position: center top;
    background: #f4f0e8;
}

/* Tablet */
@media (max-width: 900px) {
    .feature-image img.historical-portrait {
        aspect-ratio: 4 / 3;
        object-fit: contain;
        object-position: center top;
    }
}

/* Mobile */
@media (max-width: 640px) {
    .feature-image img.historical-portrait {
        aspect-ratio: 3 / 4;
        object-fit: contain;
        object-position: center top;
    }
}
/* =========================================================
   Annual Report action buttons
   ========================================================= */
.report-actions {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    flex-wrap: nowrap;
    gap: 8px;
    width: 100%;
    margin-top: 14px;
}

.report-actions .button {
    display: inline-flex;
    flex: 0 0 auto;
    width: auto !important;
    min-width: 0;
    min-height: 36px;
    padding: 7px 13px;
    font-size: .82rem;
    line-height: 1.2;
    border-width: 1px;
    white-space: nowrap;
}

.report-actions .button:hover {
    transform: translateY(-1px) scale(1.03);
}

@media (max-width: 640px) {
    .report-actions {
        flex-wrap: nowrap;
        gap: 6px;
    }

    .report-actions .button {
        width: auto !important;
        min-height: 34px;
        padding: 6px 10px;
        font-size: .76rem;
    }
}

/* =========================================================
   ANNUAL REPORT INLINE FLIPBOOK READER
   ========================================================= */

.report-reader-section {
    padding: 70px 0 90px;
    background: #f5f7f8;
}

.report-reader-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 30px;
    margin-bottom: 28px;
}

.report-reader-heading > div {
    max-width: 760px;
}

.report-reader-heading h1 {
    margin: 4px 0 10px;
    color: var(--navy);
    font-size: clamp(2rem, 4vw, 3.5rem);
    line-height: 1.12;
}

.report-reader-heading p {
    margin: 0;
    color: var(--muted);
    font-size: 1.02rem;
}

.report-archive-button {
    flex: 0 0 auto;
}

.annual-report-reader {
    position: relative;
    width: 100%;
    overflow: hidden;
    background: var(--navy-deep);
    border-radius: 22px;
    box-shadow: 0 22px 70px rgba(15, 44, 59, .2);
}

/* Reader controls */
.report-reader-toolbar {
    position: relative;
    z-index: 10;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 15px 18px;
    background: #ffffff;
    border-bottom: 1px solid var(--line);
}

.report-reader-navigation,
.report-reader-options {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.reader-control {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: 7px 13px;
    border: 1px solid #c9d5da;
    border-radius: 9px;
    background: #ffffff;
    color: var(--navy);
    font-family: "Open Sans", Arial, sans-serif;
    font-size: .82rem;
    line-height: 1.2;
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
    transition:
        color .2s ease,
        background-color .2s ease,
        border-color .2s ease,
        transform .2s ease,
        box-shadow .2s ease;
}

.reader-control:hover:not(:disabled) {
    color: #ffffff;
    background: var(--navy);
    border-color: var(--navy);
    text-decoration: none;
    transform: translateY(-1px) scale(1.02);
}

.reader-control:focus-visible {
    outline: 3px solid var(--gold);
    outline-offset: 3px;
}

.reader-control:disabled {
    cursor: not-allowed;
    opacity: .42;
    transform: none;
}

.reader-download {
    color: #ffffff;
    background: var(--primary);
    border-color: var(--primary);
}

.reader-download:hover {
    background: var(--primary-dark);
    border-color: var(--primary-dark);
}

.report-page-status {
    display: flex;
    align-items: center;
    gap: 7px;
    min-height: 38px;
    padding: 5px 10px;
    border: 1px solid var(--line);
    border-radius: 9px;
    background: var(--cream);
    color: var(--navy);
    font-size: .82rem;
    font-weight: 700;
    white-space: nowrap;
}

.report-page-status input {
    width: 58px;
    min-height: 28px;
    padding: 3px 5px;
    border: 1px solid #b8c7ce;
    border-radius: 6px;
    text-align: center;
    font-size: .82rem;
}

/* Loading and error messages */
.report-reader-message {
    padding: 65px 20px;
    color: #ffffff;
    text-align: center;
    font-size: 1rem;
    font-weight: 700;
}

.report-reader-error {
    padding: 70px 28px;
    color: #ffffff;
    text-align: center;
}

.report-reader-error h2 {
    margin-top: 0;
    color: #ffffff;
}

.report-reader-error p {
    max-width: 620px;
    margin: 0 auto;
    color: #d8e5ea;
}

.report-error-actions {
    display: flex;
    justify-content: center;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 25px;
}

/* Flipbook display area */
.flipbook-stage {
    position: relative;
    width: 100%;
    min-height: 780px;
    padding: 40px 30px 55px;
    overflow: hidden;
    background:
        radial-gradient(
            circle at center,
            rgba(255, 255, 255, .1),
            rgba(255, 255, 255, 0) 55%
        ),
        linear-gradient(
            135deg,
            #173b4d,
            #081f2b
        );
}

.annual-report-flipbook {
    width: 100%;
    height: 700px;
    margin: 0 auto;
}

/* StPageFlip generated elements */
.annual-report-flipbook .stf__parent {
    margin: 0 auto !important;
}

.annual-report-flipbook .stf__block {
    background: transparent;
}

.annual-report-flipbook .stf__item {
    background: #ffffff;
    box-shadow: 0 8px 25px rgba(0, 0, 0, .22);
}

.annual-report-flipbook img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    background: #ffffff;
    user-select: none;
    -webkit-user-drag: none;
}

/* Subtle central book shadow */
.flipbook-stage::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 29px;
    width: min(78%, 900px);
    height: 26px;
    transform: translateX(-50%);
    border-radius: 50%;
    background: rgba(0, 0, 0, .28);
    filter: blur(16px);
    pointer-events: none;
}

/* Fullscreen reader */
.annual-report-reader:fullscreen {
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100%;
    border-radius: 0;
    background: var(--navy-deep);
}

.annual-report-reader:fullscreen .report-reader-toolbar {
    flex: 0 0 auto;
}

.annual-report-reader:fullscreen .flipbook-stage {
    flex: 1 1 auto;
    min-height: 0;
    padding-top: 25px;
}

.annual-report-reader:fullscreen .annual-report-flipbook {
    height: calc(100vh - 120px);
}

/* Firefox fullscreen */
.annual-report-reader:-moz-full-screen {
    width: 100%;
    height: 100%;
    border-radius: 0;
}

/* Tablet */
@media (max-width: 1000px) {
    .report-reader-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .report-reader-toolbar {
        align-items: stretch;
        flex-direction: column;
    }

    .report-reader-navigation,
    .report-reader-options {
        justify-content: center;
    }

    .flipbook-stage {
        min-height: 700px;
        padding: 32px 18px 48px;
    }

    .annual-report-flipbook {
        height: 620px;
    }
}

/* Mobile */
@media (max-width: 640px) {
    .report-reader-section {
        padding: 45px 0 65px;
    }

    .report-reader-heading {
        margin-bottom: 20px;
    }

    .report-reader-heading h1 {
        font-size: 2rem;
    }

    .report-archive-button {
        width: auto;
    }

    .annual-report-reader {
        border-radius: 14px;
    }

    .report-reader-toolbar {
        padding: 12px 10px;
        gap: 10px;
    }

    .report-reader-navigation {
        display: grid;
        grid-template-columns:
            40px
            minmax(88px, 1fr)
            minmax(110px, auto)
            minmax(75px, 1fr)
            40px;
        width: 100%;
        gap: 5px;
    }

    .report-reader-options {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        width: 100%;
        gap: 6px;
    }

    .reader-control {
        min-height: 36px;
        padding: 6px 8px;
        font-size: .72rem;
    }

    .report-page-status {
        justify-content: center;
        min-height: 36px;
        padding: 4px 6px;
        font-size: .7rem;
    }

    .report-page-status input {
        width: 43px;
        font-size: .72rem;
    }

    .flipbook-stage {
        min-height: 560px;
        padding: 24px 8px 42px;
    }

    .annual-report-flipbook {
        height: 500px;
    }

    .flipbook-stage::after {
        bottom: 22px;
        height: 18px;
    }
}

/* Very small mobile devices */
@media (max-width: 430px) {
    .report-reader-navigation {
        grid-template-columns:
            36px
            72px
            minmax(100px, auto)
            62px
            36px;
    }

    .reader-control {
        padding-inline: 5px;
        font-size: .67rem;
    }

    .report-reader-options {
        grid-template-columns: 1fr;
    }

    .flipbook-stage {
        min-height: 510px;
    }

    .annual-report-flipbook {
        height: 455px;
    }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
    .reader-control,
    .reader-control:hover {
        transition: none;
        transform: none;
    }
}

/* =========================================================
   HOW YOU CAN HELP – CARD BUTTON SPACING AND SIZE
   ========================================================= */

/* Add clear space between the paragraph and button */
.icon-card p {
    margin-bottom: 18px;
}

/* Make the card buttons slightly smaller */
.icon-card .button,
.icon-card .donate-button {
    width: auto !important;
    min-height: 38px;
    padding: 7px 15px;
    font-size: .84rem;
    line-height: 1.2;
}

/* Keep the button neatly aligned at the bottom */
.icon-card {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.icon-card .button,
.icon-card .donate-button {
    margin-top: auto;
}

/* Mobile adjustment */
@media (max-width: 640px) {
    .icon-card p {
        margin-bottom: 16px;
    }

    .icon-card .button,
    .icon-card .donate-button {
        width: auto !important;
        min-height: 36px;
        padding: 6px 13px;
        font-size: .8rem;
    }
}

/* =========================================================
   NEWS AND EVENTS – UNIFORM CARDS AND HOVER OVERLAY
   ========================================================= */

/* Keep all news cards at a consistent height */
.card-grid .card {
    display: flex;
    flex-direction: column;
    height: 100%;
}

/* Keep all news images at the same size */
.news-image-link {
    position: relative;
    display: block;
    width: 100%;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    background: var(--navy-deep);
    text-decoration: none;
    border-radius: 0;
}

/* Ensure portrait and landscape images use the same frame */
.news-image-link img {
    display: block;
    width: 100%;
    height: 100% !important;
    object-fit: cover;
    object-position: center;
    transition:
        transform .45s ease,
        filter .45s ease;
}

/* Card content */
.card-grid .card-body {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    padding: 22px;
}

/* Keep titles reasonably consistent */
.card-grid .card-body h3 {
    margin: 8px 0 10px;
    line-height: 1.35;
}

/* Limit long descriptions */
.card-grid .card-body > p:not(:last-child) {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

/* Dark hover overlay */
.news-image-overlay {
    position: absolute;
    inset: 0;
    z-index: 2;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: flex-start;
    padding: 22px;
    color: #ffffff;
    background:
        linear-gradient(
            to top,
            rgba(8, 31, 43, .97) 0%,
            rgba(8, 31, 43, .82) 48%,
            rgba(8, 31, 43, .15) 100%
        );
    opacity: 0;
    visibility: hidden;
    transform: translateY(12px);
    transition:
        opacity .32s ease,
        visibility .32s ease,
        transform .32s ease;
    pointer-events: none;
}

/* Show the overlay on mouse hover and keyboard focus */
.news-image-link:hover .news-image-overlay,
.news-image-link:focus-visible .news-image-overlay {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

/* Smooth image zoom */
.news-image-link:hover img,
.news-image-link:focus-visible img {
    transform: scale(1.07);
    filter: brightness(.58);
}

/* Category and date */
.news-overlay-meta {
    display: block;
    margin-bottom: 7px;
    color: #ffdbe5;
    font-size: .68rem;
    font-weight: 800;
    line-height: 1.4;
    letter-spacing: .09em;
    text-transform: uppercase;
}

/* Event title */
.news-overlay-title {
    display: -webkit-box;
    margin-bottom: 8px;
    overflow: hidden;
    color: #ffffff;
    font-size: 1.08rem;
    font-weight: 800;
    line-height: 1.3;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

/* Small description */
.news-overlay-summary {
    display: -webkit-box;
    margin-bottom: 14px;
    overflow: hidden;
    color: #edf5f7;
    font-size: .8rem;
    line-height: 1.5;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

/* Read More button inside the image */
.news-overlay-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 32px;
    padding: 6px 13px;
    border: 1px solid #ffffff;
    border-radius: 999px;
    color: var(--navy-deep);
    background: #ffffff;
    font-size: .74rem;
    font-weight: 800;
    line-height: 1.2;
}

/* Visible keyboard focus */
.news-image-link:focus-visible {
    outline: 4px solid var(--gold);
    outline-offset: 4px;
}

/* Keep Read More text at the bottom on News page cards */
.card-grid .card-body > p:last-child {
    margin-top: auto;
    padding-top: 12px;
}

/* Tablet */
@media (max-width: 900px) {
    .news-image-link {
        aspect-ratio: 16 / 10;
    }

    .news-image-overlay {
        padding: 18px;
    }
}

/* Mobile */
@media (max-width: 640px) {
    .news-image-link {
        aspect-ratio: 4 / 3;
    }

    .news-image-overlay {
        padding: 16px;
    }

    .news-overlay-title {
        font-size: 1rem;
    }

    .news-overlay-summary {
        font-size: .76rem;
    }

    .card-grid .card-body {
        padding: 20px;
    }
}

/*
Touchscreen visitors use the normal card content below the image,
so the overlay is not permanently displayed.
*/
@media (hover: none) {
    .news-image-overlay {
        display: none;
    }

    .news-image-link img {
        filter: none;
        transform: none;
    }
}

/* Reduced-motion accessibility */
@media (prefers-reduced-motion: reduce) {
    .news-image-link img,
    .news-image-overlay {
        transition: none;
    }

    .news-image-link:hover img,
    .news-image-link:focus-visible img {
        transform: none;
    }
}

/* =========================================================
   NEWS AND EVENTS DETAIL PAGE
   ========================================================= */

/* Display the uploaded featured image as the page banner */
.news-detail-page .page-banner {
    min-height: 520px;
    background-position: center center;
    background-repeat: no-repeat;
    background-size: cover;
}

.news-detail-page .page-banner-overlay {
    background:
        linear-gradient(
            90deg,
            rgba(8, 31, 43, .94) 0%,
            rgba(8, 31, 43, .72) 48%,
            rgba(8, 31, 43, .24) 100%
        );
}

.news-detail-page .page-banner-content {
    max-width: var(--container);
}

.news-detail-page .page-banner h1 {
    max-width: 1050px;
    font-size: clamp(2.5rem, 5vw, 4.8rem);
}

.news-detail-page .page-banner p {
    max-width: 760px;
}

/* Article section */
.news-detail-section {
    background: #f7f8f9;
}

.news-detail-article {
    width: min(100%, 920px);
    margin-inline: auto;
    padding: 48px;
    background: #ffffff;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    box-shadow: var(--shadow);
}

/* Category and date */
.news-detail-meta {
    display: flex;
    align-items: center;
    gap: 10px 18px;
    flex-wrap: wrap;
    margin-bottom: 30px;
    padding-bottom: 18px;
    border-bottom: 1px solid var(--line);
    color: var(--muted);
    font-size: .88rem;
    font-weight: 600;
}

.news-detail-category {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: 5px 12px;
    border-radius: 999px;
    color: var(--primary-dark);
    background: rgba(231, 21, 79, .1);
    font-weight: 800;
}

/* Dynamic content entered through Admin */
.news-detail-content {
    max-width: none;
    color: var(--ink);
    font-size: 1.03rem;
    line-height: 1.8;
}

.news-detail-content > :first-child {
    margin-top: 0;
}

.news-detail-content h2 {
    margin-top: 1.8em;
    margin-bottom: .65em;
    font-size: clamp(1.65rem, 3vw, 2.25rem);
}

.news-detail-content h3 {
    margin-top: 1.5em;
    margin-bottom: .55em;
    font-size: 1.4rem;
}

.news-detail-content p {
    margin: 0 0 1.25em;
}

.news-detail-content ul,
.news-detail-content ol {
    margin: 0 0 1.4em;
    padding-left: 24px;
}

.news-detail-content blockquote {
    margin: 28px 0;
    padding: 20px 24px;
    border-left: 5px solid var(--primary);
    border-radius: 0 12px 12px 0;
    color: var(--navy);
    background: var(--cream);
    font-size: 1.08rem;
}

.news-detail-content img {
    width: 100%;
    height: auto;
    margin: 28px 0;
    border-radius: 14px;
}

.news-detail-introduction {
    color: var(--navy);
    font-size: 1.15rem;
    font-weight: 600;
}

/* Back button */
.news-detail-footer {
    margin-top: 40px;
    padding-top: 24px;
    border-top: 1px solid var(--line);
}

.news-detail-footer .button {
    min-height: 40px;
    padding: 8px 17px;
    font-size: .84rem;
}

/* Tablet */
@media (max-width: 900px) {
    .news-detail-page .page-banner {
        min-height: 440px;
    }

    .news-detail-article {
        padding: 38px 30px;
    }
}

/* Mobile */
@media (max-width: 640px) {
    .news-detail-page .page-banner {
        min-height: 390px;
        background-position: center;
    }

    .news-detail-page .page-banner h1 {
        font-size: 2.3rem;
    }

    .news-detail-article {
        padding: 28px 20px;
        border-radius: 14px;
    }

    .news-detail-meta {
        align-items: flex-start;
        flex-direction: column;
        gap: 8px;
    }

    .news-detail-content {
        font-size: .98rem;
        line-height: 1.75;
    }
}

/* =========================================================
   NEWS ARTICLE – REDUCED CONTENT SPACING
   ========================================================= */

.news-detail-content h2 {
    margin-top: 1.15em;
    margin-bottom: .45em;
    line-height: 1.25;
}

.news-detail-content h3 {
    margin-top: 1em;
    margin-bottom: .4em;
    line-height: 1.3;
}

.news-detail-content p {
    margin-top: 0;
    margin-bottom: .85em;
}

.news-detail-content ul,
.news-detail-content ol {
    margin-top: .3em;
    margin-bottom: 1em;
}

/* Reduce the gap when a heading follows a paragraph or list */
.news-detail-content p + h2,
.news-detail-content ul + h2,
.news-detail-content ol + h2 {
    margin-top: 1.2em;
}

/* Remove unnecessary empty paragraphs created by the editor */
.news-detail-content p:empty {
    display: none;
}

.news-detail-content p:has(> br:only-child) {
    display: none;
}

/* Remove extra spacing after the final element */
.news-detail-content > :last-child {
    margin-bottom: 0;
}

/* =========================================================
   BOARD OF MANAGEMENT PROFILES
   ========================================================= */

.management-profile-card {
    align-items: flex-start;
}

.management-profile-card .profile-avatar {
    flex: 0 0 auto;
    overflow: hidden;
}

.management-profile-card .profile-avatar img {
    display: block;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    object-fit: cover;
    object-position: center top;
}

.management-profile-content {
    min-width: 0;
    width: 100%;
}

.management-profile-content h3 {
    margin-bottom: 3px;
}

.management-profile-bio {
    margin-top: 14px;
    margin-bottom: 0;
}

.management-profile-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 24px;
    margin: 16px 0 0;
    padding-top: 14px;
    border-top: 1px solid rgba(10, 54, 77, 0.12);
}

.management-profile-meta div {
    margin: 0;
}

.management-profile-meta dt {
    margin: 0 0 2px;
    color: #5d7180;
    font-size: 0.78rem;
    font-weight: 600;
}

.management-profile-meta dd {
    margin: 0;
    color: #0a364d;
    font-size: 0.9rem;
    font-weight: 700;
}

@media (max-width: 640px) {
    .management-profile-meta {
        display: block;
    }

    .management-profile-meta div + div {
        margin-top: 10px;
    }
}

/* =========================================================
   GOVERNANCE AND SUPPORT CARDS
   ========================================================= */

.governance-support-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    align-items: stretch;
}

.governance-support-grid .icon-card {
    height: 100%;
}

.governance-support-grid .icon-bubble {
    font-size: 1rem;
    font-weight: 800;
}

.governance-support-grid .icon-card p:last-child {
    margin-bottom: 0;
}

@media (max-width: 1050px) {
    .governance-support-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .governance-support-grid {
        grid-template-columns: 1fr;
    }
}

/* =========================================================
   CONTACT FORM INLINE VALIDATION
   ========================================================= */

.form-group .field-error {
    display: block;
    min-height: 20px;
    margin-top: 6px;
    color: #c0003b;
    font-size: 0.84rem;
    font-weight: 600;
    line-height: 1.4;
}

.form-group input.is-invalid,
.form-group select.is-invalid,
.form-group textarea.is-invalid {
    border-color: #c0003b;
    box-shadow: 0 0 0 3px rgba(192, 0, 59, 0.1);
}

.form-group input.is-invalid:focus,
.form-group select.is-invalid:focus,
.form-group textarea.is-invalid:focus {
    border-color: #c0003b;
    outline: none;
    box-shadow: 0 0 0 4px rgba(192, 0, 59, 0.15);
}

.consent-form-group {
    margin-bottom: 0;
}

.consent-label {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    cursor: pointer;
}

.consent-label input[type="checkbox"] {
    flex: 0 0 auto;
    width: 17px;
    height: 17px;
    margin-top: 4px;
}

.consent-label input[type="checkbox"].is-invalid {
    outline: 2px solid #c0003b;
    outline-offset: 2px;
}

.consent-label span {
    flex: 1;
}

@media (max-width: 640px) {
    .form-group .field-error {
        font-size: 0.8rem;
    }
}