:root {
    --primary: #b52178;
    --primary-dark: #7b1551;
    --primary-deep: #40112f;
    --secondary: #1d4ed8;
    --secondary-dark: #153b9f;
    --accent: #ff4db8;
    --ink: #16151b;
    --muted: #686471;
    --surface: #ffffff;
    --soft: #fff5fb;
    --soft-blue: #eef5ff;
    --line: #eadde7;
    --success: #17855a;
    --warning: #9b5b00;
    --shadow-sm: 0 10px 30px rgba(56, 18, 43, .08);
    --shadow-lg: 0 28px 80px rgba(64, 17, 47, .18);
    --radius-sm: 14px;
    --radius: 24px;
    --radius-lg: 36px;
    --container: 1180px;
    --header-height: 88px;
    --ease: cubic-bezier(.2, .8, .2, 1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    color: var(--ink);
    background: #fff;
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    line-height: 1.65;
    overflow-x: hidden;
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }
svg { width: 1.2em; height: 1.2em; }
::selection { background: rgba(181, 33, 120, .2); color: var(--primary-deep); }

.container { width: min(var(--container), calc(100% - 40px)); margin-inline: auto; }
.section { padding: 100px 0; position: relative; }
.section-soft { background: linear-gradient(180deg, #fff8fc 0%, #fff 100%); }
.section-blue { background: linear-gradient(180deg, #f5f8ff 0%, #fff 100%); }
.section-dark { background: var(--primary-deep); color: #fff; }
.section-heading { max-width: 760px; margin-bottom: 46px; }
.section-heading.center { text-align: center; margin-inline: auto; }
.section-heading h2, .page-hero h1, .hero h1, .cta-band h2 {
    font-family: Georgia, "Times New Roman", serif;
    letter-spacing: -.045em;
    line-height: 1.06;
}
.section-heading h2 { font-size: clamp(2rem, 4vw, 3.7rem); margin: 12px 0 18px; }
.section-heading p { color: var(--muted); font-size: 1.08rem; margin: 0; }
.section-dark .section-heading p { color: rgba(255,255,255,.72); }
.eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--primary);
    font-size: .78rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .14em;
}
.eyebrow::before { content: ""; width: 28px; height: 2px; background: currentColor; border-radius: 99px; }
.eyebrow.light { color: #ffd0ed; }
.lead { font-size: clamp(1.05rem, 2vw, 1.3rem); color: var(--muted); }

.skip-link { position: fixed; z-index: 9999; top: 12px; left: 12px; padding: 10px 14px; background: #fff; color: var(--ink); border-radius: 10px; transform: translateY(-180%); box-shadow: var(--shadow-sm); }
.skip-link:focus { transform: translateY(0); }
.sr-only { position: absolute!important; width: 1px!important; height: 1px!important; padding: 0!important; margin: -1px!important; overflow: hidden!important; clip: rect(0,0,0,0)!important; white-space: nowrap!important; border: 0!important; }

.topbar { background: var(--primary-deep); color: #fff; font-size: .82rem; }
.topbar-inner { min-height: 39px; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.topbar p { margin: 0; display: flex; align-items: center; gap: 10px; }
.topbar-links { display: flex; align-items: center; gap: 24px; color: rgba(255,255,255,.8); }
.topbar-links a:hover { color: #fff; }
.pulse-dot { width: 8px; height: 8px; background: #ff76c8; border-radius: 50%; box-shadow: 0 0 0 0 rgba(255,118,200,.6); animation: pulse 2s infinite; }
@keyframes pulse { 70% { box-shadow: 0 0 0 10px rgba(255,118,200,0); } 100% { box-shadow: 0 0 0 0 rgba(255,118,200,0); } }

.site-header { position: sticky; top: 0; z-index: 1000; background: rgba(255,255,255,.92); backdrop-filter: blur(18px); border-bottom: 1px solid rgba(234,221,231,.75); transition: box-shadow .3s ease, transform .3s ease; }
.site-header.scrolled { box-shadow: 0 14px 40px rgba(56,18,43,.08); }
.navbar { min-height: var(--header-height); display: flex; align-items: center; gap: 28px; }
.brand { display: inline-flex; align-items: center; gap: 11px; flex: 0 0 auto; }
.brand img { width: 54px; height: 58px; object-fit: contain; border-radius: 50%; background: #fff; }
.brand span { display: flex; flex-direction: column; line-height: 1.12; }
.brand strong { font-size: 1.18rem; color: var(--primary-deep); letter-spacing: .08em; }
.brand small { max-width: 185px; color: var(--muted); font-size: .68rem; margin-top: 4px; }
.primary-nav { display: flex; align-items: center; justify-content: center; gap: 3px; margin-left: auto; }
.nav-link { padding: 12px 11px; border-radius: 12px; color: #39333b; font-size: .9rem; font-weight: 650; transition: .25s ease; }
.nav-link:hover, .nav-link.active { color: var(--primary); background: var(--soft); }
.nav-actions { display: flex; align-items: center; gap: 12px; }
.language-switch { display: flex; background: #f3eef2; border-radius: 999px; padding: 3px; }
.language-switch a { width: 34px; height: 30px; display: grid; place-items: center; border-radius: 999px; font-size: .73rem; font-weight: 800; color: #6c626b; }
.language-switch a.active { background: #fff; color: var(--primary); box-shadow: 0 4px 12px rgba(50,15,36,.1); }
.menu-toggle { display: none; width: 44px; height: 44px; border: 0; border-radius: 12px; background: var(--soft); padding: 11px; }
.menu-toggle span { display: block; height: 2px; margin: 5px 0; background: var(--primary-deep); border-radius: 99px; transition: .3s ease; }
.menu-toggle.active span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.menu-toggle.active span:nth-child(2) { opacity: 0; }
.menu-toggle.active span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

.btn { display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-height: 50px; padding: 0 24px; border: 1px solid transparent; border-radius: 999px; font-weight: 800; transition: transform .25s var(--ease), box-shadow .25s ease, background .25s ease; }
.btn:hover { transform: translateY(-2px); }
.btn svg { flex: 0 0 auto; }
.btn-primary { color: #fff; background: linear-gradient(135deg, var(--primary), #d62b91); box-shadow: 0 12px 28px rgba(181,33,120,.25); }
.btn-primary:hover { box-shadow: 0 18px 34px rgba(181,33,120,.34); }
.btn-secondary { color: #fff; background: var(--secondary); box-shadow: 0 12px 28px rgba(29,78,216,.22); }
.btn-soft { color: var(--primary-dark); background: var(--soft); border-color: #f4d8e9; }
.btn-light { color: var(--primary-deep); background: #fff; }
.btn-outline-light { color: #fff; border-color: rgba(255,255,255,.42); background: transparent; }
.btn-outline { color: var(--primary); border-color: rgba(181,33,120,.28); background: #fff; }
.btn-donate { color: #fff; background: linear-gradient(135deg, #cc2e8c, #9c1a66); box-shadow: 0 10px 24px rgba(181,33,120,.25); }
.btn-small { min-height: 42px; padding: 0 18px; font-size: .85rem; }
.btn-block { width: 100%; }
.text-link { color: var(--primary); font-weight: 800; display: inline-flex; align-items: center; gap: 8px; }
.text-link:hover svg { transform: translateX(4px); }
.text-link svg { transition: transform .2s ease; }

.hero { min-height: calc(100vh - 127px); display: grid; align-items: center; padding: 72px 0 90px; overflow: hidden; background: radial-gradient(circle at 78% 15%, rgba(255,102,194,.14), transparent 27%), radial-gradient(circle at 15% 85%, rgba(29,78,216,.1), transparent 25%), linear-gradient(180deg, #fff 0%, #fff9fd 100%); }
.hero::before, .hero::after { content: ""; position: absolute; border-radius: 50%; filter: blur(3px); pointer-events: none; }
.hero::before { width: 320px; height: 320px; right: -120px; top: 160px; background: rgba(181,33,120,.06); }
.hero::after { width: 200px; height: 200px; left: -80px; bottom: 100px; background: rgba(29,78,216,.06); }
.hero-grid { display: grid; grid-template-columns: minmax(0, 1.02fr) minmax(0, .98fr); gap: 70px; align-items: center; position: relative; z-index: 1; }
.hero-copy h1 { font-size: clamp(3.1rem, 6vw, 6.1rem); margin: 17px 0 24px; max-width: 830px; }
.hero-copy h1 span { color: var(--primary); position: relative; white-space: nowrap; }
.hero-copy h1 span::after { content: ""; position: absolute; height: 9px; left: 2%; right: 2%; bottom: .04em; background: rgba(255,77,184,.2); border-radius: 99px; transform: rotate(-1deg); z-index: -1; }
.hero-copy .lead { max-width: 670px; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 34px; }
.hero-trust { display: flex; flex-wrap: wrap; gap: 18px 28px; margin-top: 34px; color: #544d55; font-size: .88rem; }
.hero-trust span { display: inline-flex; align-items: center; gap: 8px; }
.hero-trust svg { color: var(--success); }
.hero-visual { min-height: 570px; position: relative; }
.hero-image-main { position: absolute; inset: 22px 34px 38px 30px; border-radius: 48% 52% 36% 64% / 43% 38% 62% 57%; overflow: hidden; box-shadow: var(--shadow-lg); transform: rotate(1.5deg); }
.hero-image-main::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 45%, rgba(42,6,29,.28)); }
.hero-image-main img { width: 100%; height: 100%; object-fit: cover; }
.hero-orbit { position: absolute; inset: 0; border: 1px dashed rgba(181,33,120,.26); border-radius: 50%; animation: slowspin 28s linear infinite; }
@keyframes slowspin { to { transform: rotate(360deg); } }
.float-card { position: absolute; z-index: 3; background: rgba(255,255,255,.95); backdrop-filter: blur(12px); border: 1px solid rgba(255,255,255,.8); box-shadow: 0 18px 45px rgba(53,12,38,.16); border-radius: 18px; padding: 15px 18px; animation: float 5s ease-in-out infinite; }
.float-card.one { left: -8px; top: 80px; }
.float-card.two { right: -5px; bottom: 62px; animation-delay: -2.2s; }
.float-card strong { display: block; color: var(--primary-deep); font-size: 1.05rem; }
.float-card small { display: block; color: var(--muted); margin-top: 2px; }
.float-icon { width: 42px; height: 42px; border-radius: 14px; display: grid; place-items: center; background: var(--soft); color: var(--primary); float: left; margin-right: 12px; }
@keyframes float { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-9px); } }
.hero-badge { position: absolute; right: 25px; top: 14px; width: 112px; height: 112px; border-radius: 50%; background: var(--primary-deep); color: #fff; display: grid; place-items: center; text-align: center; font-weight: 800; font-size: .76rem; line-height: 1.25; box-shadow: 0 14px 30px rgba(64,17,47,.2); transform: rotate(9deg); }
.hero-badge::before { content: ""; position: absolute; inset: 8px; border: 1px dashed rgba(255,255,255,.55); border-radius: inherit; }

.stats-strip { margin-top: -42px; position: relative; z-index: 6; }
.stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); background: #fff; border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow-sm); overflow: hidden; }
.stat { padding: 30px; position: relative; }
.stat + .stat { border-left: 1px solid var(--line); }
.stat strong { display: block; color: var(--primary); font-size: 2rem; font-family: Georgia, serif; line-height: 1; }
.stat span { display: block; color: var(--muted); font-size: .86rem; margin-top: 9px; }

.about-split { display: grid; grid-template-columns: .9fr 1.1fr; gap: 74px; align-items: center; }
.photo-stack { position: relative; min-height: 580px; }
.photo-stack .photo-a { position: absolute; inset: 0 85px 90px 0; border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-lg); }
.photo-stack .photo-a img, .photo-stack .photo-b img { width: 100%; height: 100%; object-fit: cover; }
.photo-stack .photo-b { position: absolute; right: 0; bottom: 0; width: 48%; height: 46%; border: 9px solid #fff; border-radius: 28px; overflow: hidden; box-shadow: var(--shadow-sm); }
.photo-note { position: absolute; left: 30px; bottom: 52px; background: var(--primary-deep); color: #fff; padding: 20px 23px; border-radius: 18px; max-width: 230px; box-shadow: var(--shadow-sm); }
.photo-note strong { display: block; font-size: 1.4rem; }
.photo-note span { font-size: .8rem; color: rgba(255,255,255,.72); }
.check-list { display: grid; gap: 13px; margin: 26px 0 32px; padding: 0; list-style: none; }
.check-list li { display: flex; gap: 12px; align-items: flex-start; }
.check-list .check { width: 26px; height: 26px; flex: 0 0 26px; display: grid; place-items: center; border-radius: 50%; background: #ecfaf4; color: var(--success); margin-top: 1px; }

.program-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.program-card { min-height: 320px; padding: 30px 26px; border-radius: var(--radius); background: #fff; border: 1px solid var(--line); box-shadow: 0 8px 30px rgba(56,18,43,.05); position: relative; overflow: hidden; transition: transform .35s var(--ease), box-shadow .35s ease, border-color .35s ease; }
.program-card::before { content: ""; position: absolute; width: 100px; height: 100px; border-radius: 50%; right: -50px; top: -50px; background: rgba(181,33,120,.07); transition: transform .35s ease; }
.program-card:hover { transform: translateY(-8px); box-shadow: var(--shadow-sm); border-color: rgba(181,33,120,.25); }
.program-card:hover::before { transform: scale(1.7); }
.program-icon { width: 56px; height: 56px; display: grid; place-items: center; border-radius: 18px; color: var(--primary); background: var(--soft); margin-bottom: 26px; }
.program-icon.blue { color: var(--secondary); background: var(--soft-blue); }
.program-card h3 { margin: 0 0 12px; font-size: 1.25rem; line-height: 1.25; }
.program-card p { color: var(--muted); font-size: .93rem; margin: 0 0 22px; }
.program-card .text-link { font-size: .86rem; }

.ipam-wrap { display: grid; grid-template-columns: .85fr 1.15fr; gap: 72px; align-items: center; }
.ipam-visual { position: relative; min-height: 520px; display: grid; place-items: center; }
.ipam-center { width: 190px; height: 190px; border-radius: 50%; background: linear-gradient(135deg, var(--primary-deep), var(--primary)); color: #fff; display: grid; place-items: center; text-align: center; box-shadow: 0 25px 70px rgba(181,33,120,.3); position: relative; z-index: 2; }
.ipam-center strong { font-family: Georgia, serif; font-size: 2.25rem; }
.ipam-center small { display: block; color: rgba(255,255,255,.75); max-width: 120px; margin: 4px auto 0; }
.ipam-ring { position: absolute; width: 430px; height: 430px; border: 1px dashed rgba(181,33,120,.25); border-radius: 50%; animation: slowspin 38s linear infinite reverse; }
.ipam-node { position: absolute; width: 148px; min-height: 100px; background: #fff; border: 1px solid var(--line); border-radius: 18px; padding: 18px; box-shadow: var(--shadow-sm); z-index: 3; }
.ipam-node strong { display: block; color: var(--primary); margin-bottom: 4px; }
.ipam-node small { color: var(--muted); line-height: 1.4; display: block; }
.ipam-node.inform { top: 22px; left: 24px; }
.ipam-node.provide { right: 0; top: 195px; }
.ipam-node.advocate { left: 32px; bottom: 16px; }
.ipam-copy h2 { font-family: Georgia, serif; font-size: clamp(2.2rem,4vw,4rem); line-height: 1.07; margin: 12px 0 22px; }
.ipam-step { display: grid; grid-template-columns: 52px 1fr; gap: 16px; margin-top: 22px; }
.ipam-step span { width: 52px; height: 52px; display: grid; place-items: center; border-radius: 16px; background: var(--soft); color: var(--primary); font-weight: 900; }
.ipam-step h3 { margin: 0 0 3px; }
.ipam-step p { margin: 0; color: var(--muted); }

.story-grid { display: grid; grid-template-columns: 1.2fr .8fr; gap: 24px; }
.story-main, .story-side { border-radius: var(--radius); overflow: hidden; position: relative; min-height: 500px; }
.story-main img, .story-side img { width: 100%; height: 100%; object-fit: cover; }
.story-main::after, .story-side::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 30%, rgba(32,6,23,.86)); }
.story-content { position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; padding: 34px; color: #fff; }
.story-content h3 { font-size: 1.65rem; margin: 8px 0 8px; }
.story-content p { color: rgba(255,255,255,.78); margin: 0; }
.story-label { display: inline-flex; padding: 6px 10px; border-radius: 999px; background: rgba(255,255,255,.14); backdrop-filter: blur(8px); font-size: .74rem; font-weight: 800; }

.partner-row { display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; }
.partner-pill { min-height: 92px; display: grid; place-items: center; text-align: center; padding: 18px; border: 1px solid var(--line); border-radius: 18px; background: #fff; color: #5f5862; font-weight: 750; font-size: .88rem; }

.page-hero { padding: 86px 0 76px; background: radial-gradient(circle at 80% 20%, rgba(255,77,184,.12), transparent 30%), linear-gradient(180deg, #fff9fd, #fff); position: relative; overflow: hidden; }
.page-hero-grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: 60px; align-items: center; }
.page-hero h1 { font-size: clamp(3rem, 6vw, 5.7rem); margin: 14px 0 22px; }
.page-hero .lead { max-width: 700px; }
.page-hero-image { min-height: 420px; border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-lg); position: relative; }
.page-hero-image img { width: 100%; height: 100%; object-fit: cover; }
.page-hero-image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 60%, rgba(64,17,47,.3)); }
.breadcrumb { display: flex; gap: 8px; align-items: center; color: var(--muted); font-size: .84rem; }
.breadcrumb a { color: var(--primary); font-weight: 750; }

.values-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; }
.value-card { border-radius: var(--radius); padding: 30px; border: 1px solid var(--line); background: #fff; }
.value-card span { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 15px; background: var(--soft); color: var(--primary); font-weight: 900; }
.value-card h3 { margin: 22px 0 9px; }
.value-card p { margin: 0; color: var(--muted); }

.mission-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.mission-card { padding: 42px; border-radius: var(--radius); min-height: 320px; position: relative; overflow: hidden; }
.mission-card:first-child { background: var(--primary-deep); color: #fff; }
.mission-card:last-child { background: var(--soft-blue); color: var(--ink); }
.mission-card .label { font-size: .78rem; font-weight: 850; text-transform: uppercase; letter-spacing: .12em; opacity: .75; }
.mission-card h2 { font-family: Georgia, serif; font-size: clamp(2rem,4vw,3.25rem); line-height: 1.1; margin: 16px 0 20px; }
.mission-card p { font-size: 1.05rem; max-width: 570px; }
.mission-card:first-child p { color: rgba(255,255,255,.75); }

.timeline { position: relative; max-width: 900px; margin-inline: auto; }
.timeline::before { content: ""; position: absolute; left: 25px; top: 0; bottom: 0; width: 2px; background: var(--line); }
.timeline-item { display: grid; grid-template-columns: 52px 1fr; gap: 26px; margin-bottom: 34px; position: relative; }
.timeline-dot { width: 52px; height: 52px; display: grid; place-items: center; border-radius: 50%; background: var(--primary); color: #fff; font-weight: 900; z-index: 2; box-shadow: 0 0 0 8px #fff; }
.timeline-card { padding: 26px 28px; border: 1px solid var(--line); border-radius: 20px; background: #fff; box-shadow: var(--shadow-sm); }
.timeline-card h3 { margin: 0 0 8px; }
.timeline-card p { color: var(--muted); margin: 0; }

.program-detail { display: grid; grid-template-columns: .85fr 1.15fr; gap: 52px; padding: 52px 0; border-bottom: 1px solid var(--line); align-items: center; }
.program-detail:nth-child(even) .program-detail-media { order: 2; }
.program-detail-media { border-radius: var(--radius); min-height: 390px; overflow: hidden; position: relative; }
.program-detail-media img { width: 100%; height: 100%; object-fit: cover; }
.program-detail-copy .program-number { color: rgba(181,33,120,.18); font-family: Georgia, serif; font-size: 4rem; line-height: 1; }
.program-detail-copy h2 { font-family: Georgia, serif; font-size: clamp(2rem,4vw,3.3rem); line-height: 1.1; margin: 4px 0 18px; }
.program-detail-copy p { color: var(--muted); }
.tag-list { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 22px; }
.tag { padding: 7px 12px; background: var(--soft); color: var(--primary-dark); border-radius: 999px; font-size: .78rem; font-weight: 750; }

.impact-counters { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.impact-counter { background: #fff; border: 1px solid var(--line); border-radius: 20px; padding: 30px; text-align: center; box-shadow: var(--shadow-sm); }
.impact-counter strong { display: block; color: var(--primary); font-family: Georgia, serif; font-size: 2.6rem; }
.impact-counter span { color: var(--muted); font-size: .9rem; }
.impact-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.impact-card { padding: 30px; border-radius: var(--radius); background: #fff; border: 1px solid var(--line); }
.impact-card .impact-icon { width: 52px; height: 52px; display: grid; place-items: center; border-radius: 16px; background: var(--soft-blue); color: var(--secondary); }
.impact-card h3 { margin: 20px 0 10px; }
.impact-card p { color: var(--muted); margin: 0; }
.quote-card { padding: 48px; border-radius: var(--radius); background: linear-gradient(135deg, var(--primary-deep), #7c1452); color: #fff; position: relative; overflow: hidden; }
.quote-card > svg { width: 58px; height: 58px; color: rgba(255,255,255,.22); }
.quote-card blockquote { font-family: Georgia, serif; font-size: clamp(1.6rem,3vw,2.5rem); line-height: 1.3; margin: 18px 0; max-width: 920px; }
.quote-card cite { color: rgba(255,255,255,.72); font-style: normal; }

.involvement-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; }
.involvement-card { padding: 32px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; min-height: 320px; display: flex; flex-direction: column; }
.involvement-card h3 { margin: 20px 0 10px; }
.involvement-card p { color: var(--muted); flex: 1; }
.involvement-icon { width: 54px; height: 54px; display: grid; place-items: center; border-radius: 17px; background: var(--soft); color: var(--primary); }

.contact-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: 48px; }
.contact-cards { display: grid; gap: 14px; }
.contact-card { display: flex; gap: 16px; padding: 22px; border: 1px solid var(--line); border-radius: 18px; background: #fff; }
.contact-card .icon { width: 44px; height: 44px; flex: 0 0 44px; display: grid; place-items: center; border-radius: 14px; background: var(--soft); color: var(--primary); }
.contact-card strong { display: block; margin-bottom: 3px; }
.contact-card span, .contact-card a { color: var(--muted); font-size: .92rem; }
.form-card { padding: 36px; border-radius: var(--radius); border: 1px solid var(--line); background: #fff; box-shadow: var(--shadow-sm); }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.form-group { display: grid; gap: 7px; }
.form-group.full { grid-column: 1 / -1; }
.form-group label { font-weight: 750; font-size: .88rem; }
.form-control { width: 100%; min-height: 52px; border: 1px solid #ddd1da; border-radius: 13px; padding: 0 15px; background: #fff; color: var(--ink); outline: none; transition: border .2s ease, box-shadow .2s ease; }
textarea.form-control { min-height: 145px; resize: vertical; padding-top: 14px; }
.form-control:focus { border-color: var(--primary); box-shadow: 0 0 0 4px rgba(181,33,120,.1); }
.form-note { color: var(--muted); font-size: .8rem; }
.checkbox { display: flex; align-items: flex-start; gap: 10px; }
.checkbox input { margin-top: 5px; accent-color: var(--primary); }
.alert { padding: 14px 16px; border-radius: 13px; margin-bottom: 22px; }
.alert.success { background: #eaf8f2; color: #11613f; border: 1px solid #cdebdc; }
.alert.error { background: #fff0f2; color: #8d2031; border: 1px solid #f4cbd2; }

.donate-layout { display: grid; grid-template-columns: .85fr 1.15fr; gap: 42px; align-items: start; }
.donation-summary { position: sticky; top: 120px; padding: 34px; border-radius: var(--radius); background: var(--primary-deep); color: #fff; }
.donation-summary h2 { font-family: Georgia, serif; font-size: 2.3rem; line-height: 1.12; margin: 10px 0 18px; }
.donation-summary p { color: rgba(255,255,255,.75); }
.donation-summary .mini-stat { padding: 18px 0; border-top: 1px solid rgba(255,255,255,.14); }
.donation-summary .mini-stat strong { display: block; color: #ffd0ed; }
.amount-buttons { display: grid; grid-template-columns: repeat(4,1fr); gap: 10px; }
.amount-button { min-height: 48px; border: 1px solid #e7d9e3; border-radius: 12px; background: #fff; font-weight: 800; color: var(--primary-dark); }
.amount-button.active, .amount-button:hover { background: var(--soft); border-color: var(--primary); }

.cta-band { background: linear-gradient(120deg, var(--primary), #7c1452); color: #fff; padding: 68px 0; position: relative; overflow: hidden; }
.cta-band::after { content: ""; position: absolute; width: 420px; height: 420px; border: 1px solid rgba(255,255,255,.12); border-radius: 50%; right: -120px; top: -210px; box-shadow: 0 0 0 50px rgba(255,255,255,.04), 0 0 0 100px rgba(255,255,255,.025); }
.cta-band-inner { display: flex; align-items: center; justify-content: space-between; gap: 40px; position: relative; z-index: 2; }
.cta-band h2 { font-size: clamp(2rem,4vw,3.6rem); max-width: 760px; margin: 12px 0 0; }
.cta-actions { display: flex; flex-wrap: wrap; gap: 12px; justify-content: flex-end; }

.site-footer { background: #130d12; color: #fff; padding: 74px 0 24px; }
.footer-grid { display: grid; grid-template-columns: 1.35fr .75fr 1fr 1fr; gap: 44px; }
.brand-footer strong { color: #fff; }
.brand-footer small { color: rgba(255,255,255,.6); }
.footer-brand > p, .site-footer p { color: rgba(255,255,255,.62); }
.site-footer h3 { font-size: 1rem; margin: 0 0 20px; }
.footer-links, .contact-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 11px; }
.footer-links a, .contact-list a, .contact-list span { color: rgba(255,255,255,.64); font-size: .88rem; }
.footer-links a:hover, .contact-list a:hover { color: #fff; }
.contact-list li { display: flex; gap: 10px; align-items: flex-start; }
.contact-list svg { color: #f680c4; margin-top: 4px; flex: 0 0 auto; }
.social-row { display: flex; gap: 10px; margin-top: 22px; }
.social-row a { width: 39px; height: 39px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.14); border-radius: 50%; color: rgba(255,255,255,.75); }
.social-row a:hover { background: var(--primary); color: #fff; border-color: var(--primary); }
.newsletter-form { display: flex; margin: 18px 0 12px; }
.newsletter-form input { min-width: 0; flex: 1; height: 46px; border: 1px solid rgba(255,255,255,.18); border-radius: 12px 0 0 12px; background: rgba(255,255,255,.07); color: #fff; padding: 0 13px; outline: none; }
.newsletter-form input::placeholder { color: rgba(255,255,255,.42); }
.newsletter-form button { width: 48px; border: 0; background: var(--primary); color: #fff; border-radius: 0 12px 12px 0; }
.site-footer small { color: rgba(255,255,255,.45); }
.footer-bottom { display: flex; justify-content: space-between; gap: 20px; border-top: 1px solid rgba(255,255,255,.1); margin-top: 58px; padding-top: 22px; font-size: .79rem; }
.footer-bottom p { margin: 0; }

.modal { position: fixed; inset: 0; z-index: 3000; display: grid; place-items: center; padding: 20px; opacity: 0; visibility: hidden; transition: .25s ease; }
.modal.open { opacity: 1; visibility: visible; }
.modal-backdrop { position: absolute; inset: 0; background: rgba(15,8,13,.68); backdrop-filter: blur(8px); }
.modal-panel { position: relative; z-index: 2; width: min(580px, 100%); max-height: min(760px, calc(100vh - 30px)); overflow: auto; border-radius: 26px; background: #fff; padding: 34px; box-shadow: 0 35px 120px rgba(0,0,0,.32); transform: translateY(20px) scale(.98); transition: transform .3s var(--ease); }
.modal.open .modal-panel { transform: translateY(0) scale(1); }
.modal-panel h2 { font-family: Georgia, serif; font-size: 2.2rem; line-height: 1.1; margin: 10px 0 10px; }
.modal-panel > p { color: var(--muted); }
.modal-close { position: absolute; top: 16px; right: 16px; width: 38px; height: 38px; border: 0; border-radius: 50%; background: #f7f1f5; font-size: 1.45rem; color: var(--ink); }
.donation-tabs { display: grid; grid-template-columns: repeat(3,1fr); gap: 6px; padding: 5px; background: #f4eef2; border-radius: 14px; margin: 24px 0 17px; }
.donation-tabs button { border: 0; border-radius: 10px; padding: 10px 7px; background: transparent; color: var(--muted); font-size: .82rem; font-weight: 800; }
.donation-tabs button.active { background: #fff; color: var(--primary); box-shadow: 0 5px 14px rgba(43,12,32,.08); }
.tab-panel { display: none; }
.tab-panel.active { display: block; animation: fadein .25s ease; }
@keyframes fadein { from { opacity: 0; transform: translateY(5px); } }
.payment-row { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 13px 0; border-bottom: 1px solid var(--line); }
.payment-row span { display: flex; flex-direction: column; }
.payment-row small { color: var(--muted); }
.copy-value { display: inline-flex; align-items: center; gap: 8px; border: 0; background: var(--soft); color: var(--primary-dark); border-radius: 10px; padding: 9px 10px; font-size: .8rem; font-weight: 800; }
.notice { margin-top: 14px; border-radius: 12px; padding: 12px 14px; font-size: .78rem; }
.notice.warning { background: #fff7e6; color: var(--warning); border: 1px solid #f4dfb6; }
.bank-details { margin: 0; }
.bank-details div { display: grid; grid-template-columns: 145px 1fr; gap: 10px; padding: 10px 0; border-bottom: 1px solid var(--line); }
.bank-details dt { color: var(--muted); }
.bank-details dd { margin: 0; font-weight: 800; overflow-wrap: anywhere; }
.modal-actions { display: grid; gap: 10px; margin-top: 22px; }
body.modal-open { overflow: hidden; }
.toast { position: fixed; left: 50%; bottom: 30px; transform: translate(-50%, 20px); opacity: 0; visibility: hidden; z-index: 4000; padding: 11px 16px; border-radius: 999px; background: var(--ink); color: #fff; box-shadow: var(--shadow-sm); font-size: .84rem; transition: .25s ease; }
.toast.show { opacity: 1; visibility: visible; transform: translate(-50%, 0); }
.back-to-top { position: fixed; right: 22px; bottom: 22px; z-index: 900; width: 46px; height: 46px; border: 0; border-radius: 50%; background: var(--primary); color: #fff; box-shadow: 0 12px 25px rgba(181,33,120,.3); opacity: 0; visibility: hidden; transform: translateY(10px); transition: .25s ease; }
.back-to-top.show { opacity: 1; visibility: visible; transform: translateY(0); }

.js .reveal { opacity: 0; transform: translateY(26px); transition: opacity .75s var(--ease), transform .75s var(--ease); }
.js .reveal.revealed { opacity: 1; transform: translateY(0); }
.js .reveal-left { opacity: 0; transform: translateX(-28px); transition: opacity .75s var(--ease), transform .75s var(--ease); }
.js .reveal-right { opacity: 0; transform: translateX(28px); transition: opacity .75s var(--ease), transform .75s var(--ease); }
.js .reveal-left.revealed, .js .reveal-right.revealed { opacity: 1; transform: translateX(0); }
.delay-1 { transition-delay: .08s!important; }
.delay-2 { transition-delay: .16s!important; }
.delay-3 { transition-delay: .24s!important; }

@media (max-width: 1120px) {
    .navbar { gap: 15px; }
    .brand small { display: none; }
    .nav-link { padding-inline: 8px; font-size: .84rem; }
    .program-grid { grid-template-columns: repeat(2,1fr); }
    .footer-grid { grid-template-columns: 1.2fr .8fr 1fr; }
    .footer-grid > div:last-child { grid-column: 1 / -1; max-width: 520px; }
}

@media (max-width: 960px) {
    :root { --header-height: 76px; }
    .topbar-links { display: none; }
    .topbar-inner { justify-content: center; text-align: center; }
    .navbar { position: relative; }
    .menu-toggle { display: block; margin-left: auto; }
    .primary-nav { position: absolute; left: 20px; right: 20px; top: calc(100% + 10px); display: grid; gap: 4px; padding: 16px; background: #fff; border: 1px solid var(--line); border-radius: 20px; box-shadow: var(--shadow-lg); opacity: 0; visibility: hidden; transform: translateY(-8px); transition: .25s ease; }
    .primary-nav.open { opacity: 1; visibility: visible; transform: translateY(0); }
    .nav-link { padding: 12px 14px; }
    .nav-actions .language-switch { display: none; }
    .hero { min-height: auto; padding-top: 58px; }
    .hero-grid, .page-hero-grid, .about-split, .ipam-wrap, .contact-grid, .donate-layout { grid-template-columns: 1fr; }
    .hero-copy { text-align: center; }
    .hero-copy .lead { margin-inline: auto; }
    .hero-actions, .hero-trust { justify-content: center; }
    .hero-visual { min-height: 540px; max-width: 650px; width: 100%; margin-inline: auto; }
    .stats-grid { grid-template-columns: repeat(2,1fr); }
    .stat:nth-child(3) { border-left: 0; border-top: 1px solid var(--line); }
    .stat:nth-child(4) { border-top: 1px solid var(--line); }
    .about-split { gap: 48px; }
    .photo-stack { max-width: 670px; width: 100%; margin-inline: auto; }
    .ipam-wrap { gap: 40px; }
    .ipam-copy { text-align: center; }
    .ipam-step { text-align: left; }
    .story-grid { grid-template-columns: 1fr; }
    .story-main, .story-side { min-height: 440px; }
    .page-hero { padding-top: 60px; }
    .page-hero-image { min-height: 400px; }
    .impact-counters { grid-template-columns: repeat(2,1fr); }
    .program-detail { grid-template-columns: 1fr; }
    .program-detail:nth-child(even) .program-detail-media { order: initial; }
    .donation-summary { position: static; }
    .cta-band-inner { flex-direction: column; align-items: flex-start; }
    .cta-actions { justify-content: flex-start; }
}

@media (max-width: 720px) {
    .container { width: min(100% - 28px, var(--container)); }
    .section { padding: 72px 0; }
    .topbar { font-size: .72rem; }
    .topbar-inner { min-height: 34px; }
    .brand img { width: 48px; height: 52px; }
    .nav-actions .btn-donate { width: 43px; padding: 0; border-radius: 50%; }
    .nav-actions .btn-donate svg { margin: 0; }
    .nav-actions .btn-donate { font-size: 0; }
    .nav-actions .btn-donate svg { font-size: 1rem; }
    .hero-copy h1 { font-size: clamp(2.7rem, 14vw, 4.2rem); }
    .hero-visual { min-height: 450px; }
    .hero-image-main { inset: 28px 8px 25px 8px; }
    .hero-orbit { inset: 24px; }
    .float-card.one { top: 18px; left: 0; }
    .float-card.two { right: 0; bottom: 10px; }
    .hero-badge { width: 92px; height: 92px; right: 6px; top: 0; font-size: .66rem; }
    .stats-strip { margin-top: -20px; }
    .stats-grid { grid-template-columns: 1fr 1fr; }
    .stat { padding: 22px 18px; }
    .stat strong { font-size: 1.7rem; }
    .program-grid, .values-grid, .impact-grid, .involvement-grid, .mission-grid { grid-template-columns: 1fr; }
    .program-card { min-height: auto; }
    .photo-stack { min-height: 450px; }
    .photo-stack .photo-a { inset: 0 38px 70px 0; }
    .photo-stack .photo-b { width: 54%; height: 42%; border-width: 6px; }
    .photo-note { left: 12px; bottom: 25px; padding: 14px 16px; }
    .ipam-visual { min-height: 430px; transform: scale(.88); margin-inline: -20px; }
    .partner-row { grid-template-columns: repeat(2,1fr); }
    .partner-row .partner-pill:last-child { grid-column: 1 / -1; }
    .page-hero-grid { gap: 34px; }
    .page-hero h1 { font-size: clamp(2.6rem, 13vw, 4.2rem); }
    .page-hero-image { min-height: 310px; }
    .mission-card { padding: 30px; min-height: auto; }
    .program-detail { gap: 28px; padding: 38px 0; }
    .program-detail-media { min-height: 300px; }
    .impact-counters { grid-template-columns: 1fr 1fr; }
    .impact-counter { padding: 22px 12px; }
    .impact-counter strong { font-size: 2rem; }
    .quote-card { padding: 30px 24px; }
    .form-grid { grid-template-columns: 1fr; }
    .form-group.full { grid-column: auto; }
    .form-card { padding: 24px; }
    .amount-buttons { grid-template-columns: repeat(2,1fr); }
    .footer-grid { grid-template-columns: 1fr; gap: 34px; }
    .footer-grid > div:last-child { grid-column: auto; }
    .footer-bottom { flex-direction: column; }
    .modal-panel { padding: 28px 20px 22px; }
    .modal-panel h2 { font-size: 1.8rem; }
    .bank-details div { grid-template-columns: 1fr; gap: 2px; }
}

@media (max-width: 420px) {
    .hero-actions .btn { width: 100%; }
    .hero-trust { display: grid; justify-items: start; text-align: left; }
    .float-card { padding: 11px 13px; }
    .float-card strong { font-size: .9rem; }
    .float-card small { font-size: .7rem; }
    .float-icon { width: 36px; height: 36px; }
    .stats-grid { grid-template-columns: 1fr; }
    .stat + .stat { border-left: 0; border-top: 1px solid var(--line); }
    .impact-counters { grid-template-columns: 1fr; }
    .donation-tabs { grid-template-columns: 1fr; }
    .payment-row { align-items: flex-start; flex-direction: column; }
    .copy-value { width: 100%; justify-content: space-between; }
    .cta-actions .btn { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration: .001ms!important; animation-iteration-count: 1!important; scroll-behavior: auto!important; transition-duration: .001ms!important; }
    .js .reveal, .js .reveal-left, .js .reveal-right { opacity: 1; transform: none; }
}


/* ===== SKWT v2 additions: news, article, polished details ===== */
.display-title { font-family: Georgia, "Times New Roman", serif; font-size: clamp(2.2rem,4.5vw,4rem); line-height:1.08; letter-spacing:-.04em; margin:12px 0 20px; }
.brand img, .brand-footer img { object-fit: contain; border-radius: 14px; background:#fff; }
.topbar-links a, .top-donation-link { display:inline-flex; align-items:center; gap:7px; }
.top-donation-link { border:0; background:transparent; color:#fff; padding:0; font-size:inherit; }
.top-donation-link:hover { color:#ffb9df; }
.topbar-links svg { width:1em; height:1em; }
.section-action { display:flex; justify-content:center; margin-top:38px; }
.hp-field { position:absolute!important; left:-9999px!important; opacity:0!important; pointer-events:none!important; }
.page-hero.compact { padding-block:72px 64px; }
.news-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; }
.news-grid-full { grid-template-columns:repeat(3,minmax(0,1fr)); }
.news-card { display:flex; flex-direction:column; min-width:0; background:#fff; border:1px solid var(--line); border-radius:22px; overflow:hidden; box-shadow:0 8px 30px rgba(56,18,43,.06); transition:transform .35s var(--ease), box-shadow .35s ease; }
.news-card:hover { transform:translateY(-7px); box-shadow:var(--shadow-sm); }
.news-image { height:220px; position:relative; overflow:hidden; background:#eee; }
.news-image img { width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease); }
.news-card:hover .news-image img { transform:scale(1.055); }
.news-category { position:absolute; left:16px; top:16px; display:inline-flex; padding:7px 11px; border-radius:999px; color:#fff; background:rgba(64,17,47,.9); backdrop-filter:blur(8px); font-size:.72rem; font-weight:850; }
.news-category.static { position:static; color:var(--primary-dark); background:var(--soft); margin-top:22px; }
.news-body { display:flex; flex:1; flex-direction:column; padding:24px; }
.news-meta, .article-meta { display:flex; align-items:center; gap:7px; color:var(--muted); font-size:.78rem; }
.news-meta svg, .article-meta svg { color:var(--primary); }
.news-card h2, .news-card h3 { font-size:1.18rem; line-height:1.3; margin:12px 0 10px; }
.news-card h2 { font-size:1.32rem; }
.news-card h2 a:hover, .news-card h3 a:hover { color:var(--primary); }
.news-card p { color:var(--muted); font-size:.9rem; margin:0 0 20px; flex:1; }
.article-hero { padding:82px 0 52px; background:radial-gradient(circle at 80% 10%,rgba(255,77,184,.12),transparent 28%),linear-gradient(180deg,#fff9fd,#fff); }
.article-header { max-width:940px; }
.article-header h1 { font-family:Georgia,"Times New Roman",serif; font-size:clamp(2.8rem,6vw,5.4rem); line-height:1.06; letter-spacing:-.045em; margin:18px 0 22px; }
.article-meta { gap:22px; flex-wrap:wrap; }
.article-meta span { display:inline-flex; align-items:center; gap:8px; }
.article-section { padding-top:42px; }
.article-wrap { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:46px; align-items:start; }
.article-cover { margin:0 0 34px; border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-lg); }
.article-cover img { width:100%; max-height:620px; object-fit:cover; }
.article-content { max-width:820px; font-size:1.05rem; }
.article-content p { color:#4d4650; margin:0 0 22px; }
.article-content .article-lead { font-size:1.3rem; color:var(--primary-deep); font-weight:650; }
.article-callout { display:flex; gap:18px; margin-top:38px; padding:28px; border-radius:20px; background:var(--soft); border:1px solid #f1d9e8; }
.article-callout>svg { width:42px; height:42px; color:var(--primary); flex:0 0 auto; }
.article-callout strong { font-size:1.15rem; }
.article-callout p { margin:5px 0 16px; }
.article-aside { position:sticky; top:120px; }
.aside-card { padding:26px; border:1px solid var(--line); border-radius:20px; background:#fff; box-shadow:var(--shadow-sm); }
.aside-card h3 { margin-top:0; }
.aside-card p { color:var(--muted); }
.aside-card .btn+.btn { margin-top:10px; }
.empty-state, .thank-you { text-align:center; }
.empty-state { max-width:700px; }
.empty-state h1, .thank-you-card h1 { font-family:Georgia,serif; font-size:clamp(2.4rem,5vw,4.6rem); line-height:1.1; }
.thank-you { min-height:70vh; display:grid; align-items:center; background:linear-gradient(180deg,#fff8fc,#fff); }
.thank-you-card { max-width:760px; margin:auto; padding:50px; background:#fff; border:1px solid var(--line); border-radius:30px; box-shadow:var(--shadow-lg); }
.success-mark { width:82px; height:82px; display:grid; place-items:center; margin:0 auto 22px; border-radius:50%; background:#eaf8f2; color:var(--success); font-size:2rem; }
.reference-box { display:inline-grid; gap:5px; margin:22px 0; padding:14px 20px; border-radius:14px; background:var(--soft-blue); }
.reference-box span { color:var(--muted); font-size:.8rem; }
.reference-box strong { color:var(--secondary-dark); }
.thank-you-card .hero-actions { justify-content:center; }
.form-card h2 { font-family:Georgia,serif; font-size:clamp(1.8rem,3vw,2.6rem); line-height:1.12; margin:10px 0 24px; }
@media (max-width:1180px){ .primary-nav{gap:0}.nav-link{padding-inline:7px;font-size:.82rem}.news-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.news-grid-full{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:1040px){ .menu-toggle{display:block;margin-left:auto}.primary-nav{position:absolute;left:20px;right:20px;top:calc(100% + 10px);display:grid;gap:4px;padding:16px;background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow-lg);opacity:0;visibility:hidden;transform:translateY(-8px);transition:.25s ease}.primary-nav.open{opacity:1;visibility:visible;transform:translateY(0)}.nav-link{padding:12px 14px}.nav-actions .language-switch{display:none}.article-wrap{grid-template-columns:1fr}.article-aside{position:static}.article-aside .aside-card{max-width:600px} }
@media (max-width:720px){ .news-grid,.news-grid-full{grid-template-columns:1fr}.news-image{height:240px}.article-callout{flex-direction:column}.thank-you-card{padding:34px 22px}.article-header h1{font-size:clamp(2.4rem,12vw,4rem)} }

/* ===== Dynamic programme CMS additions ===== */
.program-mini-icon { width: 46px; height: 46px; display: grid; place-items: center; margin: 4px 0 14px; border-radius: 14px; color: var(--primary); background: var(--soft); font-size: 1.25rem; }
.program-detail-link { margin-top: 22px; }
.programme-hero-icon { width: 70px; height: 70px; display: grid; place-items: center; margin-top: 24px; border-radius: 20px; color: #fff; background: linear-gradient(135deg,var(--primary),#d83496); box-shadow: 0 16px 32px rgba(181,33,120,.24); font-size: 1.8rem; }
.program-article-hero .lead { max-width: 820px; }
.programme-tags { margin: 28px 0 8px; }
.related-programs { grid-template-columns: repeat(3,minmax(0,1fr)); }
.admin-footer-link { color: #ffb4dd; font-weight: 750; }
.admin-footer-link:hover { color: #fff; }
@media (max-width: 960px) { .related-programs { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 720px) { .related-programs { grid-template-columns: 1fr; } .programme-hero-icon { width: 58px; height: 58px; border-radius: 17px; } }

/* =========================================================
   SKWT RESPONSIVE MOBILE HEADER OVERRIDES
   Mobile order: Logo | Language | Donate | Menu Toggle
   This block is intentionally placed last so it overrides
   earlier responsive rules without changing the desktop view.
   ========================================================= */
@media (max-width: 1040px) {
    .site-header {
        position: sticky;
        top: 0;
        z-index: 1000;
        background: rgba(255, 255, 255, .96);
        -webkit-backdrop-filter: blur(18px);
        backdrop-filter: blur(18px);
        box-shadow: 0 8px 30px rgba(35, 20, 45, .08);
    }

    .site-header .navbar {
        position: relative;
        display: flex;
        align-items: center;
        flex-wrap: nowrap;
        gap: 8px;
        min-height: 72px;
        padding-top: 8px;
        padding-bottom: 8px;
    }

    /* Logo remains at the far left. */
    .site-header .brand {
        order: 1;
        flex: 0 0 auto;
        display: inline-flex;
        align-items: center;
        min-width: 0;
        margin-right: auto;
    }

    .site-header .brand img {
        display: block;
        width: 52px;
        height: 56px;
        max-width: none;
        object-fit: contain;
    }

    /* Hide the long organisation name to preserve one clean row. */
    .site-header .brand > span {
        display: none;
    }

    /* Language selector and donation button appear before the menu. */
    .site-header .nav-actions {
        order: 2;
        flex: 0 0 auto;
        display: flex !important;
        align-items: center;
        gap: 7px;
        margin: 0;
    }

    .site-header .nav-actions .language-switch,
    .site-header .language-switch {
        display: inline-flex !important;
        align-items: center;
        flex: 0 0 auto;
        padding: 3px;
        border: 1px solid rgba(181, 33, 120, .18);
        border-radius: 999px;
        background: #f8f5f8;
        box-shadow: 0 4px 14px rgba(35, 20, 45, .05);
    }

    .site-header .language-switch a {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: auto;
        min-width: 31px;
        height: 30px;
        padding: 0 7px;
        border-radius: 999px;
        color: #4e4050;
        font-size: 11px;
        font-weight: 800;
        line-height: 1;
        text-decoration: none;
        transition:
            background-color .25s ease,
            color .25s ease,
            transform .25s ease,
            box-shadow .25s ease;
    }

    .site-header .language-switch a.active {
        color: #fff;
        background: var(--primary);
        box-shadow: 0 4px 12px rgba(181, 33, 120, .25);
    }

    .site-header .language-switch a:active {
        transform: scale(.94);
    }

    .site-header .nav-actions .btn-donate,
    .site-header .btn-donate {
        display: inline-flex !important;
        align-items: center;
        justify-content: center;
        gap: 6px;
        width: auto;
        min-width: 0;
        min-height: 38px;
        height: auto;
        padding: 8px 12px;
        border: 0;
        border-radius: 999px;
        white-space: nowrap;
        color: #fff;
        background: linear-gradient(135deg, var(--primary) 0%, #de3b94 100%);
        box-shadow: 0 7px 18px rgba(181, 33, 120, .25);
        font-size: 12px;
        font-weight: 800;
        line-height: 1;
    }

    .site-header .btn-donate svg {
        width: 16px;
        height: 16px;
        flex: 0 0 16px;
        margin: 0;
        fill: currentColor;
        font-size: 16px;
    }

    /* The three-line toggle remains at the far right. */
    .site-header .menu-toggle {
        order: 3;
        position: relative;
        inset: auto;
        right: auto;
        top: auto;
        flex: 0 0 42px;
        display: inline-flex !important;
        width: 42px;
        height: 42px;
        margin: 0;
        padding: 10px;
        align-items: center;
        justify-content: center;
        flex-direction: column;
        gap: 5px;
        border: 1px solid rgba(181, 33, 120, .15);
        border-radius: 12px;
        background: #fff;
        box-shadow: 0 5px 16px rgba(35, 20, 45, .08);
        cursor: pointer;
    }

    .site-header .menu-toggle span {
        display: block;
        width: 21px;
        height: 2px;
        margin: 0;
        border-radius: 10px;
        background: var(--primary);
        transition:
            transform .3s ease,
            opacity .3s ease;
    }

    /* Support both the existing .active class and aria-expanded state. */
    .site-header .menu-toggle.active span:nth-child(1),
    .site-header .menu-toggle[aria-expanded="true"] span:nth-child(1) {
        transform: translateY(7px) rotate(45deg);
    }

    .site-header .menu-toggle.active span:nth-child(2),
    .site-header .menu-toggle[aria-expanded="true"] span:nth-child(2) {
        opacity: 0;
    }

    .site-header .menu-toggle.active span:nth-child(3),
    .site-header .menu-toggle[aria-expanded="true"] span:nth-child(3) {
        transform: translateY(-7px) rotate(-45deg);
    }

    /* Navigation opens below the complete mobile header row. */
    .site-header .primary-nav {
        order: 4;
        position: absolute;
        top: calc(100% + 1px);
        left: 12px;
        right: 12px;
        z-index: 1001;
        display: grid;
        gap: 4px;
        max-height: calc(100vh - 95px);
        margin: 0;
        padding: 12px;
        overflow-y: auto;
        border: 1px solid rgba(181, 33, 120, .12);
        border-radius: 0 0 18px 18px;
        background: #fff;
        box-shadow: 0 20px 45px rgba(35, 20, 45, .14);
    }
}

/* Smaller phones. */
@media (max-width: 480px) {
    .site-header .navbar {
        gap: 5px;
        padding-left: 10px;
        padding-right: 10px;
    }

    .site-header .brand img {
        width: 45px;
        height: 50px;
    }

    .site-header .nav-actions {
        gap: 5px;
    }

    .site-header .language-switch a {
        min-width: 27px;
        height: 28px;
        padding: 0 5px;
        font-size: 10px;
    }

    .site-header .nav-actions .btn-donate,
    .site-header .btn-donate {
        width: auto;
        min-height: 36px;
        padding: 7px 10px;
        border-radius: 999px;
        font-size: 11px;
    }

    .site-header .btn-donate svg {
        width: 15px;
        height: 15px;
        flex-basis: 15px;
        font-size: 15px;
    }

    .site-header .menu-toggle {
        flex-basis: 38px;
        width: 38px;
        height: 38px;
        padding: 8px;
        border-radius: 10px;
    }

    .site-header .menu-toggle span {
        width: 19px;
    }
}

/* Very narrow phones: keep every control on one row. */
@media (max-width: 370px) {
    .site-header .brand img {
        width: 40px;
        height: 44px;
    }

    .site-header .nav-actions .btn-donate,
    .site-header .btn-donate {
        width: 36px;
        min-width: 36px;
        height: 36px;
        min-height: 36px;
        padding: 0;
        border-radius: 50%;
        font-size: 0;
    }

    .site-header .btn-donate svg {
        width: 17px;
        height: 17px;
        flex-basis: 17px;
        font-size: 17px;
    }

    .site-header .language-switch a {
        min-width: 25px;
        padding: 0 4px;
    }
}
