*,
*::before,
*::after {
box-sizing: border-box;
margin: 0;
padding: 0;
}
html,
body {
width: 100%;
max-width: 100%;
overflow-x: hidden;
font-family: 'Inter', system-ui, -apple-system, sans-serif;
color: #1b1a17;
background: #faf9fd;
-webkit-font-smoothing: antialiased;
line-height: 1.6;
scroll-behavior: smooth;
} :root {
--ink: #1b1a17;
--ink-soft: #6e6759;
--paper: #faf7f0;
--paper-dim: #f1ead9;
--accent: #2b3f8c;
--accent-deep: #0f1c4d;
--accent-mid: #4a5fc4;
--champagne: #d7def7;
--mist: #e9ecf9;
--line: rgba(27, 26, 23, .13);
--shadow: 0 24px 60px -24px rgba(15, 28, 77, .32);
--radius: 6px;
--radius-lg: 18px;
--maxw: 1160px;
--header-h: 88px; --hero-focus: 94%; --logo-size: 22px;
--logo-size-sm: 18px;
}
@media (prefers-reduced-motion: reduce) {
html {
scroll-behavior: auto;
}
*,
*::before,
*::after {
animation-duration: .01ms !important;
animation-iteration-count: 1 !important;
transition-duration: .01ms !important;
}
} section,
.cta-band,
.site-footer {
scroll-margin-top: 88px;
} h1,
h2,
h3,
h4 {
font-family: 'Fraunces', Georgia, serif;
font-weight: 600;
line-height: 1.08;
letter-spacing: -.01em;
}
a {
color: inherit;
text-decoration: none;
}
ul {
list-style: none;
}
img,
svg,
iframe {
display: block;
max-width: 100%;
}
.eyebrow {
display: inline-flex;
align-items: center;
gap: 10px;
font-weight: 700;
font-size: .72rem;
letter-spacing: .16em;
text-transform: uppercase;
color: var(--accent);
}
.eyebrow::before {
content: "";
display: inline-block;
width: 22px;
height: 1px;
margin-right: 2px;
vertical-align: middle;
background: currentColor;
opacity: .7;
}
.eyebrow.on-dark {
color: var(--champagne);
}
.screen-reader-text {
position: absolute;
width: 1px;
height: 1px;
overflow: hidden;
clip: rect(1px, 1px, 1px, 1px);
white-space: nowrap;
}
.skip-link:focus {
position: fixed;
top: 10px;
left: 10px;
z-index: 100000;
width: auto;
height: auto;
clip: auto;
padding: 12px 20px;
background: #fff;
color: var(--accent-deep);
border-radius: 999px;
font-weight: 700;
box-shadow: var(--shadow);
}
a:focus-visible,
button:focus-visible,
label:focus-visible,
input:focus-visible {
outline: 3px solid var(--accent);
outline-offset: 3px;
} .site {
width: 100%;
max-width: 100%;
overflow-x: hidden;
padding-top: var(--header-h);
}
.wrap {
max-width: var(--maxw);
margin: 0 auto;
padding: 0 28px;
width: 100%;
}
section {
padding: 96px 0;
width: 100%;
}
.section-head {
max-width: 640px;
margin-bottom: 52px;
}
.section-head .eyebrow {
display: block;
margin-bottom: 14px;
}
.section-head h2 {
font-size: clamp(1.8rem, 3vw, 2.4rem);
}
.section-head p {
margin-top: 16px;
color: var(--ink-soft);
font-size: 1.02rem;
}
.reveal {
opacity: 0;
transform: translateY(22px);
transition:
opacity .7s ease,
transform .7s ease;
}
.reveal.in-view {
opacity: 1;
transform: translateY(0);
} .btn {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 10px;
padding: 15px 32px;
border-radius: var(--radius);
font-weight: 600;
font-size: .82rem;
text-transform: uppercase;
letter-spacing: .09em;
border: 1.5px solid transparent;
cursor: pointer;
transition:
transform .22s cubic-bezier(.2, .8, .2, 1),
box-shadow .22s ease,
background .22s ease,
border-color .22s ease,
color .22s ease;
white-space: nowrap;
min-height: 52px;
text-align: center;
}
.btn-primary {
background: var(--accent-deep);
color: var(--champagne);
box-shadow: 0 12px 26px -10px rgba(15, 28, 77, .55);
border-color: var(--accent-deep);
}
.btn-primary:hover {
background: var(--accent);
border-color: var(--accent);
color: #fff;
transform: translateY(-2px);
box-shadow: 0 16px 32px -12px rgba(43, 63, 140, .55);
}
.btn-ghost {
background: transparent;
border-color: var(--line);
color: var(--ink);
}
.btn-ghost:hover {
border-color: var(--accent);
color: var(--accent);
transform: translateY(-2px);
}
.btn-ghost.on-dark {
border-color: rgba(255, 255, 255, .38);
color: #fff;
}
.btn-ghost.on-dark:hover {
border-color: var(--champagne);
color: var(--champagne);
background: rgba(255, 255, 255, .06);
}
.btn-light {
background: var(--champagne);
color: var(--accent-deep);
border-color: var(--champagne);
}
.btn-light:hover {
transform: translateY(-2px);
background: #fff;
box-shadow: 0 14px 30px -14px rgba(15, 28, 77, .4);
}
.btn-sm {
padding: 11px 20px;
font-size: .74rem;
min-height: 42px;
} .site-header {
position: fixed;
top: 0;
left: 0;
right: 0;
z-index: 1000;
background: rgba(250, 247, 240, .92);
backdrop-filter: blur(16px);
-webkit-backdrop-filter: blur(16px);
border-bottom: 1px solid var(--line);
height: var(--header-h);
transition: box-shadow .3s ease, border-color .3s ease;
}
.site-header.scrolled {
border-bottom-color: rgba(43, 63, 140, .25);
box-shadow: 0 4px 30px rgba(15, 28, 77, .1);
} .admin-bar .site-header {
top: 32px;
}
@media screen and (max-width: 782px) {
.admin-bar .site-header {
top: 46px;
}
}
.header-inner {
position: relative;
max-width: var(--maxw);
margin: 0 auto;
padding: 0 28px;
display: flex;
align-items: center;
gap: 24px;
height: var(--header-h);
width: 100%;
}
.brand {
display: flex;
align-items: center;
gap: 14px;
font-family: 'Fraunces', Georgia, serif;
font-weight: 600;
font-size: 1.06rem;
letter-spacing: .01em;
margin-right: auto;
flex-shrink: 0;
}
.brand-logo-slot {
position: relative;
display: flex;
align-items: center;
justify-content: center;
width: var(--logo-size);
height: var(--logo-size);
border-radius: 50%;
flex-shrink: 0;
}
.brand-logo-slot img {
width: var(--logo-size);
height: var(--logo-size);
border-radius: 50%;
object-fit: cover;
} .brand-logo-mark {
display: none;
width: calc(var(--logo-size) * .55);
height: calc(var(--logo-size) * .55);
color: var(--accent-deep);
object-fit: contain;
border-radius: 50%;
}
.brand-logo-slot.logo-fallback {
background: var(--champagne);
}
.brand-logo-slot.logo-fallback .brand-logo-mark {
display: block;
}
.brand-word b {
color: var(--accent);
}
.brand-word-large {
font-family: 'Fraunces', Georgia, serif;
font-style: normal;
font-optical-sizing: auto;
font-size: .95rem;
font-weight: 500;
color: #0f1f4d;
text-transform: none;
letter-spacing: .04em;
line-height: 1.2;
} .nav-toggle-checkbox {
position: absolute;
opacity: 0;
width: 1px;
height: 1px;
pointer-events: none;
}
.nav-toggle {
display: none;
width: 42px;
height: 42px;
border-radius: 50%;
align-items: center;
justify-content: center;
cursor: pointer;
flex-shrink: 0;
border: 1.5px solid var(--line);
background: transparent;
}
.nav-toggle span,
.nav-toggle span::before,
.nav-toggle span::after {
content: "";
display: block;
width: 18px;
height: 2px;
background: var(--ink);
border-radius: 2px;
position: relative;
transition:
transform .25s ease,
opacity .25s ease;
}
.nav-toggle span::before {
position: absolute;
top: -6px;
}
.nav-toggle span::after {
position: absolute;
top: 6px;
}
.site-nav ul {
display: flex;
align-items: center;
gap: 4px;
}
.site-nav a {
display: flex;
align-items: center;
padding: 8px 14px;
border-radius: 3px;
font-weight: 600;
font-size: .86rem;
letter-spacing: .01em;
color: var(--ink);
position: relative;
transition: background .18s ease;
}
.site-nav a:hover,
.site-nav a:focus-visible {
background: var(--mist);
}
.site-nav .current-menu-item > a {
color: var(--accent-deep);
}
.site-nav .current-menu-item > a::after {
content: "";
position: absolute;
left: 14px;
right: 14px;
bottom: 3px;
height: 2px;
border-radius: 2px;
background: var(--accent);
}
.header-cta {
margin-left: 4px;
flex-shrink: 0;
} .hl-lang-switcher {
display: flex;
align-items: center;
gap: 10px;
margin-right: 6px;
padding-right: 14px;
border-right: 1px solid var(--line);
flex-shrink: 0;
}
.hl-lang-switcher a {
font-size: .74rem;
font-weight: 700;
letter-spacing: .06em;
color: var(--ink-soft);
transition: color .18s ease;
}
.hl-lang-switcher a:hover,
.hl-lang-switcher a.is-current {
color: var(--accent);
}
@media (max-width: 900px) {
.hl-lang-switcher {
order: 1.5;
border-right: none;
padding-right: 0;
margin-right: 8px;
}
} .hero {
position: relative;
overflow: hidden;
min-height: 88vh;
display: flex;
align-items: center;
padding: 140px 0 110px;
}
.hero-media {
position: absolute;
inset: 0;
z-index: 0;
background: var(--accent-deep);
}
.hero-media img {
width: 100%;
height: 100%;
object-fit: cover;
object-position: center var(--hero-focus);
}
.hero-scrim {
position: absolute;
inset: 0;
z-index: 1;
background:
linear-gradient(
100deg,
rgba(15, 28, 77, .9) 0%,
rgba(15, 28, 77, .72) 45%,
rgba(15, 28, 77, .4) 100%
),
linear-gradient(
0deg,
rgba(15, 28, 77, .5) 0%,
transparent 30%
);
}
.hero-inner {
position: relative;
z-index: 2;
max-width: 680px;
}
.hero h1 {
font-size: clamp(2.5rem, 4.6vw, 3.9rem);
margin-top: 18px;
color: #fff;
}
.hero h1 em {
font-style: italic;
color: var(--champagne);
}
.hero-sub {
margin-top: 22px;
font-size: 1.1rem;
color: rgba(255, 255, 255, .85);
max-width: 46ch;
}
.hero-cta {
margin-top: 34px;
display: flex;
gap: 14px;
flex-wrap: wrap;
}
.hero-stat {
margin-top: 38px;
display: inline-flex;
align-items: center;
gap: 16px;
background: rgba(255, 255, 255, .06);
border: 1px solid rgba(233, 217, 179, .4);
backdrop-filter: blur(10px);
border-radius: 999px;
padding: 10px 24px 10px 10px;
}
.hero-stat .num {
font-family: 'Fraunces', Georgia, serif;
font-weight: 600;
font-size: 1.3rem;
color: var(--champagne);
background: transparent;
border: 1px solid rgba(233, 217, 179, .5);
border-radius: 999px;
padding: 8px 18px;
line-height: 1;
}
.hero-stat .cap {
font-size: .85rem;
color: rgba(255, 255, 255, .85);
max-width: 26ch;
line-height: 1.35;
} .mission {
background: var(--paper);
}
.mission-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 60px;
align-items: center;
}
.mission-text p {
color: var(--ink-soft);
font-size: 1.04rem;
}
.mission-text h2 {
margin-top: 14px;
}
.mission-text > p {
margin-top: 22px;
}
.mission-subhead {
display: block;
margin-top: 32px;
}
.mission-subhead + p {
margin-top: 12px;
}
.chip-row {
display: flex;
flex-wrap: nowrap;
gap: 8px;
margin-top: 26px;
overflow-x: auto;
-webkit-overflow-scrolling: touch;
scrollbar-width: none;
}
.chip-row::-webkit-scrollbar {
display: none;
}
.chip {
padding: 5px 10px;
border-radius: 999px;
background: var(--mist);
font-weight: 600;
font-size: .72rem;
color: var(--accent-deep);
white-space: nowrap;
flex-shrink: 0;
}
.donation-card {
position: relative;
width: 100%;
}
.donation-card embed,
.donation-card iframe {
display: block;
width: 100%;
height: 900px;
min-height: 900px;
border: none;
overflow: hidden;
border-radius: 16px;
background: #fff;
}
.donation-note {
margin-top: 14px;
font-size: .84rem;
line-height: 1.6;
color: var(--ink-soft);
text-align: center;
}
.donation-note a {
color: var(--accent);
text-decoration: underline;
text-underline-offset: 3px;
}
.donation-iban {
display: block;
margin-top: 6px;
font-family: 'Fraunces', Georgia, serif;
font-size: 1.02rem;
font-weight: 600;
color: var(--ink);
letter-spacing: .02em;
white-space: nowrap;
overflow-wrap: normal;
word-break: keep-all;
}
@media (max-width: 380px) {
.donation-iban {
font-size: .92rem;
letter-spacing: 0;
}
} .contact {
position: relative;
background: linear-gradient(180deg, var(--accent-deep), #070d2b);
color: #fff;
overflow: hidden;
}
.contact::before {
content: "";
position: absolute;
top: -220px;
right: -160px;
width: 520px;
height: 520px;
border-radius: 50%;
background: radial-gradient(circle, rgba(215, 222, 247, .16), transparent 70%);
pointer-events: none;
}
.contact .wrap {
position: relative;
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
}
.contact-head {
max-width: 620px;
margin-bottom: 48px;
}
.contact-head p {
color: rgba(255, 255, 255, .74);
}
.contact-head h2 {
color: #fff;
}
.contact-details {
margin-top: 26px;
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: center;
gap: 10px 28px;
list-style: none;
padding: 0;
}
.contact-details a {
color: var(--champagne);
font-weight: 600;
text-decoration: none;
letter-spacing: .01em;
}
.contact-details a:hover {
text-decoration: underline;
}
.contact .contact-card {
width: 100%;
max-width: 620px;
background: #fff;
border-radius: 20px;
padding: 44px 40px;
box-shadow: 0 30px 70px -20px rgba(3, 7, 26, .55);
text-align: left;
position: relative;
box-sizing: border-box;
}
.contact .contact-card::before {
content: "";
position: absolute;
top: 0;
left: 40px;
right: 40px;
height: 3px;
border-radius: 0 0 3px 3px;
background: linear-gradient(90deg, var(--accent-mid), var(--champagne));
}
.contact .contact-form {
display: flex;
flex-direction: column;
gap: 20px;
width: 100%;
}
.contact .contact-form-row {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 20px;
width: 100%;
}
.contact .contact-form-field {
display: flex;
flex-direction: column;
gap: 8px;
width: 100%;
}
.contact .contact-form label {
display: block;
font-size: .78rem;
font-weight: 700;
letter-spacing: .04em;
text-transform: uppercase;
color: var(--ink-soft);
}
.contact .contact-form input[type="text"],
.contact .contact-form input[type="email"],
.contact .contact-form textarea {
display: block;
width: 100%;
border: 1.5px solid var(--line);
border-radius: 12px;
padding: 14px 16px;
font: inherit;
font-size: .98rem;
color: var(--ink);
background: var(--paper);
resize: vertical;
box-sizing: border-box;
transition: border-color .18s ease, background .18s ease, box-shadow .18s ease;
}
.contact .contact-form input[type="text"]:focus,
.contact .contact-form input[type="email"]:focus,
.contact .contact-form textarea:focus {
outline: none;
border-color: var(--accent-mid);
background: #fff;
box-shadow: 0 0 0 4px var(--mist);
}
.contact .contact-form .btn {
margin-top: 6px;
align-self: flex-start;
padding-left: 34px;
padding-right: 34px;
}
.hopelove-hp {
position: absolute !important;
left: -9999px !important;
width: 1px;
height: 1px;
opacity: 0;
pointer-events: none;
}
.form-notice {
border-radius: 10px;
padding: 14px 16px;
font-size: .9rem;
margin-bottom: 24px;
}
.form-notice--ok {
background: var(--mist);
color: var(--accent-deep);
}
.form-notice--err {
background: #fbe6e2;
color: #8a2b1c;
}
@media (max-width: 640px) {
.contact-card {
padding: 32px 24px;
}
.contact-form-row {
grid-template-columns: 1fr;
gap: 20px;
}
.contact-details {
flex-direction: column;
align-items: center;
gap: 8px;
}
} .why {
background: linear-gradient(180deg, var(--accent-deep), #070d2b);
color: #fff;
}
.why .section-head p {
color: rgba(255, 255, 255, .72);
}
.why .section-head h2 {
color: #fff;
}
.stat-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 26px;
}
.stat-card {
background: rgba(255, 255, 255, .05);
border: 1px solid rgba(255, 255, 255, .14);
border-radius: 14px;
padding: 30px 26px;
}
.stat-card .stat-label {
font-size: .82rem;
font-weight: 600;
color: rgba(255, 255, 255, .65);
}
.stat-card .stat-num {
font-family: 'Fraunces', Georgia, serif;
font-size: 2.7rem;
font-weight: 600;
margin: 8px 0 2px;
color: var(--champagne);
}
.stat-card .stat-sub {
font-size: .86rem;
color: rgba(255, 255, 255, .6);
}
.dot-grid {
display: grid;
grid-template-columns: repeat(10, 1fr);
gap: 5px;
margin-top: 22px;
}
.dot-grid span {
aspect-ratio: 1/1;
border-radius: 50%;
background: rgba(255, 255, 255, .14);
transform: scale(.4);
opacity: 0;
transition:
transform .45s cubic-bezier(.2, .9, .3, 1.3),
opacity .35s ease,
background .3s ease;
}
.dot-grid.in-view span {
transform: scale(1);
opacity: 1;
}
.dot-grid span.filled {
background: var(--champagne);
}
.why-note {
margin-top: 44px;
max-width: 60ch;
font-size: 1.02rem;
color: rgba(255, 255, 255, .78);
} .services {
background: var(--paper);
}
.service-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 26px;
}
.service-card {
border: 1.5px solid var(--line);
border-radius: 16px;
padding: 36px 32px;
display: flex;
flex-direction: column;
background: #fff;
transition:
border-color .2s ease,
box-shadow .2s ease,
transform .2s ease;
}
.service-card:hover {
border-color: var(--accent);
box-shadow: var(--shadow);
transform: translateY(-4px);
}
.service-card.featured {
background: var(--accent-deep);
color: #fff;
border-color: var(--accent-deep);
}
.service-card.featured .service-list li {
color: rgba(255, 255, 255, .82);
}
.service-card.featured .service-price {
color: var(--champagne);
}
.service-badge {
align-self: flex-start;
font-size: .72rem;
font-weight: 700;
letter-spacing: .06em;
text-transform: uppercase;
padding: 6px 12px;
border-radius: 999px;
background: var(--mist);
color: var(--accent-deep);
margin-bottom: 18px;
}
.service-card.featured .service-badge {
background: rgba(255, 255, 255, .12);
color: var(--champagne);
}
.service-title {
font-family: 'Fraunces', Georgia, serif;
font-size: 1.3rem;
font-weight: 600;
}
.service-price {
font-family: 'Fraunces', Georgia, serif;
font-size: 2.6rem;
font-weight: 600;
color: var(--accent);
margin: 10px 0 22px;
}
.service-list {
margin-bottom: 28px;
flex-grow: 1;
}
.service-list li {
display: flex;
gap: 10px;
padding: 9px 0;
font-size: .94rem;
color: var(--ink-soft);
border-top: 1px solid var(--line);
}
.service-card.featured .service-list li {
border-top-color: rgba(255, 255, 255, .14);
}
.service-list li:first-child {
border-top: none;
}
.service-list svg {
flex-shrink: 0;
width: 16px;
height: 16px;
margin-top: 3px;
color: var(--accent);
}
.service-card.featured .service-list svg {
color: var(--champagne);
}
.service-foot {
display: flex;
align-items: center;
justify-content: space-between;
gap: 16px;
flex-wrap: wrap;
}
.impact-tag {
font-size: .78rem;
font-weight: 600;
color: var(--ink-soft);
}
.service-card.featured .impact-tag {
color: rgba(255, 255, 255, .65);
} .more {
background: var(--paper-dim);
}
.more-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 22px;
}
.more-card {
background: #fff;
border: 1.5px solid var(--line);
border-radius: 14px;
padding: 28px;
display: flex;
flex-direction: column;
gap: 14px;
transition:
transform .2s ease,
box-shadow .2s ease;
}
.more-card:hover {
transform: translateY(-4px);
box-shadow: var(--shadow);
}
.more-icon {
width: 42px;
height: 42px;
border-radius: 12px;
background: var(--mist);
display: flex;
align-items: center;
justify-content: center;
}
.more-icon svg {
width: 20px;
height: 20px;
color: var(--accent);
}
.more-card h3 {
font-size: 1.08rem;
}
.more-card p {
color: var(--ink-soft);
font-size: .92rem;
flex-grow: 1;
}
.more-link {
font-weight: 700;
font-size: .86rem;
color: var(--accent);
display: inline-flex;
align-items: center;
gap: 6px;
}
.more-link svg {
width: 13px;
height: 13px;
transition: transform .18s ease;
}
.more-card:hover .more-link svg {
transform: translateX(3px);
} .cta-band {
background: var(--champagne);
padding: 96px 28px;
text-align: center;
position: relative;
overflow: hidden;
}
.cta-band::before {
content: "";
position: absolute;
inset: 0;
background:
radial-gradient(
360px 220px at 90% 0%,
rgba(43, 63, 140, .12),
transparent 60%
);
}
.cta-inner {
position: relative;
z-index: 1;
max-width: 640px;
margin: 0 auto;
}
.cta-band h2 {
font-size: clamp(1.9rem, 3.4vw, 2.6rem);
color: var(--accent-deep);
margin-top: 14px;
}
.cta-band p {
margin-top: 16px;
color: var(--accent-deep);
opacity: .75;
font-size: 1.04rem;
}
.cta-actions {
margin-top: 30px;
display: flex;
gap: 14px;
justify-content: center;
flex-wrap: wrap;
} .page-hero {
background: linear-gradient(180deg, var(--accent-deep), #070d2b);
color: #fff;
padding: 92px 0 72px;
}
.page-hero h1 {
font-size: clamp(2rem, 3.6vw, 3rem);
color: #fff;
margin-top: 14px;
}
.page-hero .page-meta {
margin-top: 16px;
font-size: .9rem;
color: rgba(255, 255, 255, .7);
}
.entry {
padding: 72px 0 96px;
}
.entry-inner {
max-width: 760px;
margin: 0 auto;
padding: 0 28px;
}
.entry-content > * + * {
margin-top: 22px;
}
.entry-content h2 {
font-size: 1.7rem;
margin-top: 44px;
}
.entry-content h3 {
font-size: 1.3rem;
margin-top: 34px;
}
.entry-content p,
.entry-content li {
color: var(--ink-soft);
font-size: 1.04rem;
}
.entry-content ul,
.entry-content ol {
padding-left: 22px;
}
.entry-content ul {
list-style: disc;
}
.entry-content ol {
list-style: decimal;
}
.entry-content li + li {
margin-top: 8px;
}
.entry-content a {
color: var(--accent);
text-decoration: underline;
text-underline-offset: 3px;
}
.entry-content blockquote {
border-left: 3px solid var(--champagne);
padding-left: 22px;
font-family: 'Fraunces', Georgia, serif;
font-size: 1.2rem;
color: var(--ink);
}
.entry-content img {
border-radius: 16px;
}
.entry-thumb {
border-radius: 14px;
margin-bottom: 34px;
width: 100%;
}
.post-list {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 22px;
}
.post-card {
background: #fff;
border: 1.5px solid var(--line);
border-radius: 14px;
overflow: hidden;
display: flex;
flex-direction: column;
transition:
transform .2s ease,
box-shadow .2s ease;
}
.post-card:hover {
transform: translateY(-4px);
box-shadow: var(--shadow);
}
.post-card img {
width: 100%;
height: 190px;
object-fit: cover;
}
.post-card-body {
padding: 24px;
display: flex;
flex-direction: column;
gap: 10px;
flex-grow: 1;
}
.post-card h2 {
font-size: 1.15rem;
}
.post-card p {
color: var(--ink-soft);
font-size: .92rem;
flex-grow: 1;
}
.post-date {
font-size: .76rem;
font-weight: 700;
letter-spacing: .1em;
text-transform: uppercase;
color: var(--ink-soft);
}
.pagination {
margin-top: 44px;
display: flex;
gap: 8px;
flex-wrap: wrap;
justify-content: center;
}
.pagination .page-numbers {
padding: 10px 16px;
border-radius: 999px;
border: 1.5px solid var(--line);
font-weight: 600;
font-size: .88rem;
}
.pagination .page-numbers.current,
.pagination .page-numbers:hover {
background: var(--accent);
border-color: var(--accent);
color: #fff;
}
.error-404 {
text-align: center;
padding: 120px 0;
}
.error-404 .code {
font-family: 'Fraunces', Georgia, serif;
font-size: clamp(4rem, 12vw, 8rem);
color: var(--mist);
line-height: 1;
}
.error-404 h1 {
font-size: clamp(1.6rem, 3vw, 2.2rem);
margin-top: 10px;
}
.error-404 p {
margin: 16px auto 30px;
color: var(--ink-soft);
max-width: 46ch;
} .site-footer {
background: #0f1f4d;
color: rgba(255, 255, 255, .7);
padding: 70px 0 30px;
}
.footer-grid {
display: grid;
grid-template-columns: 1.3fr 1fr 1fr;
gap: 44px;
padding-bottom: 44px;
border-bottom: 1px solid rgba(255, 255, 255, .12);
}
.footer-brand {
display: flex;
align-items: center;
gap: 10px;
color: #fff;
font-weight: 800;
font-size: 1rem;
margin-bottom: 14px;
}
.footer-brand .brand-mark {
width: 40px;
height: 40px;
border-radius: 50%;
background: var(--champagne);
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
}
.footer-brand .brand-mark svg {
width: 22px;
height: 22px;
color: var(--accent-deep);
}
.footer-col p {
font-size: .92rem;
line-height: 1.7;
max-width: 32ch;
}
.footer-col h4 {
color: #fff;
font-family: 'Inter', sans-serif;
font-size: .82rem;
text-transform: uppercase;
letter-spacing: .08em;
margin-bottom: 16px;
}
.footer-col ul li {
margin-bottom: 10px;
font-size: .92rem;
}
.footer-col a:hover {
color: #fff;
}
.footer-bottom {
padding-top: 26px;
display: flex;
justify-content: space-between;
gap: 16px;
flex-wrap: wrap;
font-size: .82rem;
}
.social-row {
display: flex;
gap: 10px;
margin-top: 20px;
}
.social-row a {
width: 36px;
height: 36px;
border-radius: 50%;
border: 1px solid rgba(255, 255, 255, .2);
display: flex;
align-items: center;
justify-content: center;
transition:
background .2s ease,
border-color .2s ease;
}
.social-row a:hover {
background: var(--accent);
border-color: var(--accent);
}
.social-row svg {
width: 16px;
height: 16px;
} @media (max-width: 900px) {
.header-inner {
flex-wrap: wrap;
justify-content: flex-end;
gap: 10px;
padding: 0 18px;
}
.brand {
order: 1;
margin-right: auto;
font-size: .9rem;
}
.header-cta {
order: 2;
margin-left: 0;
padding: 10px 16px;
font-size: .8rem;
min-height: 40px;
}
.nav-toggle {
order: 3;
display: inline-flex;
margin-left: 4px;
}
.site-nav {
order: 4;
position: absolute;
top: var(--header-h);
left: 0;
right: 0;
width: 100%;
max-height: 0;
overflow: hidden;
background: rgba(250, 249, 253, .98);
backdrop-filter: blur(14px);
-webkit-backdrop-filter: blur(14px);
border-bottom: 1px solid transparent;
transition:
max-height .3s ease,
border-color .3s ease;
}
.nav-toggle-checkbox:checked ~ .site-nav {
max-height: 520px;
border-bottom-color: var(--line);
box-shadow: 0 12px 30px -12px rgba(15, 28, 77, .25);
}
.site-nav ul {
flex-direction: column;
align-items: stretch;
gap: 2px;
padding: 10px 18px 16px;
}
.site-nav a {
padding: 12px 10px;
border-radius: 10px;
font-size: .95rem;
}
.nav-toggle-checkbox:checked ~ .nav-toggle span {
background: transparent;
}
.nav-toggle-checkbox:checked ~ .nav-toggle span::before {
transform: translateY(6px) rotate(45deg);
}
.nav-toggle-checkbox:checked ~ .nav-toggle span::after {
transform: translateY(-6px) rotate(-45deg);
}
.mission-grid {
grid-template-columns: 1fr;
gap: 40px;
}
}
@media (max-width: 860px) {
.stat-grid,
.service-grid,
.more-grid,
.post-list,
.footer-grid {
grid-template-columns: 1fr;
}
.footer-grid {
gap: 32px;
}
.cta-band {
padding: 56px 20px;
}
section {
padding: 72px 0;
}
}
@media (max-width: 700px) {
.hero {
min-height: auto;
padding: 110px 0 80px;
}
}
@media (max-width: 480px) {
.wrap,
.entry-inner {
padding: 0 18px;
}
.brand-word {
font-size: .82rem;
}
.brand-logo-slot,
.brand-logo-slot img {
width: var(--logo-size-sm);
height: var(--logo-size-sm);
}
.brand-logo-mark {
width: calc(var(--logo-size-sm) * .55);
height: calc(var(--logo-size-sm) * .55);
}
.header-cta {
padding: 9px 14px;
font-size: .76rem;
min-height: 38px;
}
.nav-toggle {
width: 38px;
height: 38px;
}
.hero-cta,
.cta-actions {
flex-direction: column;
align-items: stretch;
}
.hero-cta .btn,
.cta-actions .btn {
justify-content: center;
}
.hero-stat {
flex-wrap: wrap;
padding: 14px 18px;
border-radius: 14px;
}
.service-card {
padding: 28px 20px;
}
.donation-card embed,
.donation-card iframe {
height: 950px;
min-height: 950px;
}
} .lightbox-trigger {
display: inline-block;
cursor: zoom-in;
}
.lightbox-overlay {
display: none;
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(15, 31, 77, .92);
z-index: 9999;
align-items: center;
justify-content: center;
padding: 40px 20px;
}
.lightbox-overlay:target,
.lightbox-overlay.is-open {
display: flex;
}
.lightbox-overlay img {
max-width: 92%;
max-height: 88vh;
border-radius: 10px;
box-shadow: 0 20px 60px rgba(0, 0, 0, .4);
}
.lightbox-close {
position: absolute;
top: 24px;
right: 32px;
color: #fff;
font-size: 2.4rem;
line-height: 1;
text-decoration: none;
font-weight: 300;
cursor: zoom-out;
}
.lightbox-close:hover {
color: rgba(255, 255, 255, .7);
}