/* Shared layout, navigation, utilities, page styles, and polish.
   Custom CSS source lives here. Tailwind build output stays in tailwind.css. */

/* ========================================
   DONATION SUCCESS CELEBRATION
   ======================================== */
.celebration-overlay {
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 10000;
    overflow: hidden;
}

.confetti {
    position: absolute;
    width: 12px;
    height: 12px;
    opacity: 0;
}

.confetti.circle {
    border-radius: 50%;
}

.confetti.square {
    border-radius: 2px;
}

.confetti.star {
    clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%);
}

.confetti.heart {
    clip-path: polygon(50% 85%, 100% 35%, 85% 0%, 50% 25%, 15% 0%, 0% 35%);
}

@keyframes confetti-fall {
    0% {
        opacity: 1;
        transform: translateY(-20px) rotate(0deg) scale(1);
    }

    100% {
        opacity: 0;
        transform: translateY(100vh) rotate(720deg) scale(0.5);
    }
}

@keyframes confetti-shake {

    0%,
    100% {
        transform: translateX(0);
    }

    25% {
        transform: translateX(15px);
    }

    75% {
        transform: translateX(-15px);
    }
}

.confetti.animate {
    animation: confetti-fall 3s ease-out forwards, confetti-shake 0.5s ease-in-out infinite;
}

/* Success Modal */
.success-modal {
    position: fixed;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10001;
    background: rgba(0, 0, 0, 0.5);
    opacity: 0;
    visibility: hidden;
    transition-property: opacity, visibility;
    transition-duration: 0.3s;
    transition-timing-function: ease;
}

.success-modal.active {
    opacity: 1;
    visibility: visible;
}

.success-modal.active .success-modal-content {
    transform: scale(1);
}

@keyframes success-pop {
    0% {
        transform: scale(0);
    }

    50% {
        transform: scale(1.2);
    }

    100% {
        transform: scale(1);
    }
}

@keyframes checkmark-draw {
    to {
        stroke-dashoffset: 0;
    }
}

/* Normalize Django error output */
ul.errorlist {
    margin-top: 0.25rem;
    margin-bottom: 0;
    padding-left: 0;
    list-style: none;
}

ul.errorlist li {
    background: #fef2f2;
    /* red-50 */
    color: #991b1b;
    /* red-800 */
    border: 1px solid #fecaca;
    /* red-200 */
    font-size: var(--type-small);
    /* text-sm */
    border-radius: 0.375rem;
    /* rounded-md */
    padding: 0.5rem 0.75rem;
    /* px-3 py-2 */
    margin-top: 0.25rem;
    /* mt-1 */
}

input[type="file"]::file-selector-button {
    background-color: var(--primary-2);
    color: white;
    border: none;
    border-radius: 0.375rem;
    padding: 0.375rem 0.75rem;
    margin-right: 0.75rem;
    cursor: pointer;
}

input[type="file"]::file-selector-button:hover {
    background-color: var(--primary);
}

input[type="file"]:focus {
    outline: 2px solid var(--primary-2);
    outline-offset: 2px;
}

/* Remove outline from all form inputs */
input:focus,
textarea:focus,
select:focus {
    outline: none !important;
}

/* Desktop nav consistency */

/* Align dropdown for RTL correctly */

html.rtl details.nav-dropdown .nav-dropdown-menu {
    right: 0;
    left: auto;
}

/* Make language select height consistent with links */
#language-select {
    height: 44px;
    /* touch target */
    line-height: 1;
}

/* Responsive Visibility - Mobile/Desktop Toggle */
/* Show only on mobile (< 768px) */

/* Hide on mobile (< 768px), show on desktop (768px+) */

/* Mobile navigation menu - only visible on mobile, hidden by default */

/* When mobile nav is shown (JS toggles .hidden class) */
.mobile-nav-menu:not(.hidden) {
    display: block;
}

/* ========================================
   MODERN NAVBAR STYLES
   ======================================== */

/* Header scroll effect */

/* Dropdown menu improvements */

.group:hover .dropdown-menu {
    pointer-events: auto;
}

/* Mobile menu button animation */
#mobile-menu-btn.active .hamburger-icon {
    opacity: 0;
    transform: rotate(90deg);
}

#mobile-menu-btn.active .close-icon {
    opacity: 1;
    transform: rotate(0deg);
}

#mobile-menu-btn .close-icon {
    transform: rotate(-90deg);
}

/* Mobile nav slide animation */
#mobile-nav {
    animation: slideDown 0.3s ease-out;
}

@keyframes slideDown {
    from {
        opacity: 0;
        transform: translateY(-10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Nav link hover effect */

/* RTL Support for new navbar */
html.rtl .dropdown-menu {
    left: auto;
    right: 0;
}

html.rtl #user-dropdown .dropdown-menu {
    left: 0;
    right: auto;
}

/* ========================================
   DROPDOWN HOVER FIX
   ======================================== */
/* Create invisible bridge between trigger and dropdown */
.group>.dropdown-menu {
    padding-top: 0.75rem;
    margin-top: -0.5rem;
}

/* .group>.dropdown-menu::before {
    content: '';
    position: absolute;
    top: 0;
    left: -1rem;
    right: -1rem;
    height: 1rem;
} */

/* Ensure dropdown stays visible on hover */
.group:hover>.dropdown-menu,
.dropdown-menu:hover {
    opacity: 1 !important;
    visibility: visible !important;
    transform: translateY(0) !important;
    pointer-events: auto !important;
}

/* ========================================
   RTL ICON FLIP SUPPORT
   ======================================== */
/* Flip directional icons in RTL mode */
html.rtl .rtl-flip,
html[dir="rtl"] .rtl-flip {
    transform: scaleX(-1);
}

/* Flip arrow icons */
html.rtl [class*="translate-x"],
html[dir="rtl"] [class*="translate-x"],
html.rtl .group-hover\\:translate-x-1,
html[dir="rtl"] .group-hover\\:translate-x-1 {
    --tw-translate-x: calc(var(--tw-translate-x) * -1);
}

/* Flip chevron/arrow SVGs that indicate direction */
html.rtl .arrow-icon,
html[dir="rtl"] .arrow-icon,
html.rtl a svg[class*="translate-x"],
html[dir="rtl"] a svg[class*="translate-x"],
html.rtl button svg[class*="translate-x"],
html[dir="rtl"] button svg[class*="translate-x"] {
    transform: scaleX(-1);
}

/* RTL-aware margin/padding */
html.rtl .ml-1 {
    margin-left: 0;
    margin-right: 0.25rem;
}

html.rtl .ml-2 {
    margin-left: 0;
    margin-right: 0.5rem;
}

html.rtl .mr-1 {
    margin-right: 0;
    margin-left: 0.25rem;
}

html.rtl .mr-2 {
    margin-right: 0;
    margin-left: 0.5rem;
}

/* Fix action card arrows in RTL */
html.rtl .orphan-action-card svg:last-child,
html[dir="rtl"] .orphan-action-card svg:last-child,
html.rtl .group svg[class*="group-hover:translate-x"],
html[dir="rtl"] .group svg[class*="group-hover:translate-x"] {
    transform: scaleX(-1);
}

/* Cinematic hero word-reveal (motion.js) - staggered rise per word */

.toast-notification {
                    animation: toast-slide-in 0.5s cubic-bezier(0.16, 1, 0.3, 1) forwards;
                }

                @keyframes toast-slide-in {
                    from {
                        opacity: 0;
                        transform: translateY(-20px) scale(0.95);
                    }

                    to {
                        opacity: 1;
                        transform: translateY(0) scale(1);
                    }
                }

                .toast-progress {
                    animation: toast-countdown 5s linear forwards;
                }

                @keyframes toast-countdown {
                    from {
                        width: 100%;
                    }

                    to {
                        width: 0%;
                    }
                }

/* Hand of Giving editorial system. Loaded after legacy page styles. */
:root {
  --hog-canvas: #fff8ec;
  --hog-paper: #fbf7ef;
  --hog-surface: #ffffff;
  --hog-ink: #08261e;
  --hog-green: #0b3d2e;
  --hog-green-mid: #2f5d50;
  --hog-muted: #56615c;
  --hog-border: #d8cdb8;
  --hog-orange: #c8102e; /* CTA Red — primary action accent (hogfund-redesign) */
  --hog-orange-dark: #9e0c24; /* CTA hover/pressed */
  --hog-orange-soft: #fff5f5; /* soft tint for selected states */
  --hog-gold: #c9a227; /* accent on dark, stats, zakat */
  --hog-olive: #5a6b3f; /* zakat badges, progress fills */
  --hog-danger: #c1121f; /* Alert Red — errors/urgent only */
  --hog-success: #3a7d44;
  /* Legacy aliases resolve to the corrected palette. */
  --hog-red: var(--hog-orange);
  --hog-red-dark: var(--hog-orange-dark);
  --hog-red-soft: var(--hog-orange-soft);
  --hog-radius: 8px;
  --hog-shadow: 0 18px 45px rgba(8, 38, 30, 0.1);
  --hog-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --hog-page-gutter: clamp(1rem, 3vw, 2rem);
  --hog-section-space: clamp(3.5rem, 6vw, 6rem);
  --hog-section-space-compact: clamp(2.5rem, 4vw, 4rem);
  /* --hog-content-max defined in ui-polish.css (single source, loads last) */
}

html {
  background: var(--hog-canvas);
  color-scheme: light;
  scroll-behavior: smooth;
}

html,
body,
button,
input,
select,
textarea {
  letter-spacing: 0 !important;
}

body {
  background: var(--hog-canvas) !important;
  color: var(--hog-ink) !important;
  overflow-x: clip;
}

/* Shared page shell. Keeps one responsive gutter around normal-flow content;
   full-bleed sections can still break out with their existing viewport margins. */

/* #impact {
  margin-top: var(--hog-section-space);
} */

.min-h-screen {
  min-height: 100dvh !important;
}

.h-screen {
  height: 100dvh !important;
}

img,
video,
canvas,
iframe {
  max-width: 100%;
}

main article img,
main figure img {
  outline: 1px solid oklch(0 0 0 / 0.1);
  outline-offset: -1px;
}

.grid > *,
.flex > * {
  min-width: 0;
}

body::before {
  position: fixed;
  inset: 0;
  z-index: 100;
  pointer-events: none;
  content: "";
  opacity: 0.035;
  background-image: none;
  mix-blend-mode: multiply;
}

::selection {
  color: #fff;
  background: var(--hog-orange);
}

:focus-visible {
  outline: 3px solid var(--hog-orange) !important;
  outline-offset: 3px !important;
}

/* Shape lock: cards 8px, controls 8px, compact statuses 6px. */
.rounded-3xl,
.rounded-2xl,
.rounded-xl,
.sm\:rounded-3xl,
.sm\:rounded-2xl {
  border-radius: var(--hog-radius) !important;
}

/* a,
button,
input,
select,
textarea {
  border-radius: var(--hog-radius) !important;
} */

.rounded-full {
  border-radius: 999px !important;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  color: var(--hog-ink);
  letter-spacing: 0 !important;
  text-wrap: balance;
}

p {
  text-wrap: pretty;
}

.text-gray-900,
.text-gray-800,
.text-slate-900,
.text-slate-800 {
  color: var(--hog-ink) !important;
}

.text-gray-700,
.text-gray-600,
.text-gray-500,
.text-slate-700,
.text-slate-600,
.text-slate-500 {
  color: var(--hog-muted) !important;
}

.text-purple-400,
.text-purple-500,
.text-purple-600,
.text-purple-700,
.text-pink-400,
.text-pink-500,
.text-pink-600,
.text-pink-700,
.text-rose-400,
.text-rose-500,
.text-rose-600,
.text-rose-700,
.text-teal-400,
.text-teal-500,
.text-teal-600,
.text-teal-700,
.text-cyan-400,
.text-cyan-500,
.text-cyan-600,
.text-cyan-700,
.text-blue-400,
.text-blue-500,
.text-blue-600,
.text-blue-700,
.text-indigo-400,
.text-indigo-500,
.text-indigo-600,
.text-indigo-700,
.text-amber-500,
.text-amber-600,
.text-amber-700 {
  color: var(--hog-green) !important;
}

.bg-purple-50,
.bg-purple-100,
.bg-pink-50,
.bg-pink-100,
.bg-rose-50,
.bg-rose-100,
.bg-teal-50,
.bg-teal-100,
.bg-cyan-50,
.bg-cyan-100,
.bg-blue-50,
.bg-blue-100,
.bg-indigo-50,
.bg-indigo-100,
.bg-amber-50,
.bg-amber-100,
.bg-gray-50,
.bg-gray-100 {
  background-color: rgba(216, 205, 184, 0.32) !important;
}

.bg-white {
  background-color: var(--hog-paper) !important;
}

.border-gray-100,
.border-gray-200,
.border-green-100,
.border-green-200,
.border-teal-100,
.border-teal-200,
.border-rose-100,
.border-rose-200,
.border-purple-100,
.border-purple-200,
.ring-green-100,
.ring-green-200,
.ring-teal-100,
.ring-teal-200,
.ring-purple-100,
.ring-purple-200 {
  border-color: var(--hog-border) !important;
  --tw-ring-color: var(--hog-border) !important;
}

/* Navigation */
#main-header {
  height: 64px;
}

#main-header > .relative > .flex,
#main-header + div {
  height: 64px !important;
}

@media (min-width: 1024px) {
  #main-header,
  #main-header > .relative > .flex,
  #main-header + div {
    height: 72px !important;
  }
}

#main-header > .relative > div > a,
#mobile-menu-btn {
  width: 44px;
  min-width: 44px;
  height: 44px;
  min-height: 44px;
}

@media (min-width: 640px) {
  #main-header > .relative > div > a {
    width: auto;
  }
}

#main-header > .absolute {
  border-color: rgba(216, 205, 184, 0.72) !important;
  background: rgba(255, 248, 236, 0.94) !important;
  box-shadow: 0 8px 28px rgba(8, 38, 30, 0.06);
  backdrop-filter: blur(16px);
}

#main-header img {
  border-radius: 6px !important;
  box-shadow: none !important;
}

#main-header a h1 {
  color: var(--hog-green) !important;
  background: none !important;
  -webkit-text-fill-color: currentColor !important;
}

#main-header .dropdown-menu > div,
#mobile-menu {
  border: 1px solid var(--hog-border) !important;
  border-radius: var(--hog-radius) !important;
  background: var(--hog-paper) !important;
  box-shadow: var(--hog-shadow) !important;
}

/* Programs dropdown: bridge stays transparent; visible panel starts below header. */
#main-header #programs-menu {
  z-index: 20;
  margin-top: 0 !important;
  padding-top: 1.25rem;
  isolation: isolate;
}

#main-header #programs-menu > div {
  background-color: var(--hog-paper) !important;
  background-image: none !important;
  opacity: 1;
  backdrop-filter: none;
}

#main-header .dropdown-menu a:hover,
#mobile-menu a:hover {
  background: rgba(216, 205, 184, 0.35) !important;
}

/* Shared controls */
a.bg-green-500,
a.bg-green-600,
a.bg-green-700,
a.bg-emerald-500,
a.bg-emerald-600,
a.bg-teal-500,
a.bg-teal-600,
a.bg-rose-500,
a.bg-blue-500,
a.bg-blue-600,
a.bg-cta-500,
button.bg-green-500,
button.bg-green-600,
button.bg-green-700,
button.bg-emerald-500,
button.bg-emerald-600,
button.bg-teal-500,
button.bg-teal-600,
button.bg-rose-500,
button.bg-blue-500,
button.bg-blue-600,
button.bg-cta-500,
.auth-btn,
.sponsor-btn,
.payment-tab.active {
  color: var(--hog-canvas) !important;
  border-color: var(--hog-orange) !important;
  background: var(--hog-orange) !important;
  background-image: none !important;
  box-shadow: 0 12px 28px rgb(200 16 46 / 0.2) !important;
}

a.bg-green-500:hover,
a.bg-green-600:hover,
a.bg-green-700:hover,
a.bg-cta-500:hover,
button.bg-green-500:hover,
button.bg-green-600:hover,
button.bg-green-700:hover,
button.bg-cta-500:hover,
.auth-btn:hover,
.sponsor-btn:hover,
.payment-tab.active:hover {
  color: var(--hog-canvas) !important;
  background: var(--hog-orange-dark) !important;
  transform: translateY(-1px);
}

button:active,
a[role="button"]:active,
a[class*="inline-flex"][class*="bg-"]:active,
a.ed-cta:active,
.site-editorial-hero__action:active {
  transform: scale(0.96) !important;
}

a[class*="transition"],
button[class*="transition"] {
  transition-property: color, background-color, border-color, box-shadow, transform, opacity !important;
}

button,
a[role="button"],
.site-editorial-hero__action,
.program-collage-hero__actions a,
.ed-cta,
.auth-btn,
.sponsor-btn {
  white-space: nowrap;
}

input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
select,
textarea {
  min-height: 44px;
  color: var(--hog-ink) !important;
  border: 1px solid var(--hog-border) !important;
  background: var(--hog-surface) !important;
  box-shadow: none !important;
}

input::placeholder,
textarea::placeholder {
  color: #69746f !important;
  opacity: 1;
}

input:focus,
select:focus,
textarea:focus {
  border-color: var(--hog-orange) !important;
  box-shadow: 0 0 0 3px rgb(200 16 46 / 0.18) !important;
}

/* Full-viewport editorial heroes */
.site-editorial-hero {
  position: relative;
  display: grid;
  min-height: calc(100vh - 76px);
  min-height: calc(100svh - 76px);
  margin-inline: calc(50% - 50vw);
  overflow: hidden;
  isolation: isolate;
  background: var(--hog-green);
}

.site-editorial-hero__media {
  position: absolute;
  inset: 0;
  z-index: -2;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: none;
}

html[dir="rtl"] .site-editorial-hero__media {
  transform: scaleX(-1);
}

.site-editorial-hero::after {
  position: absolute;
  inset: 0;
  z-index: -1;
  content: "";
  pointer-events: none;
  background: rgba(8, 38, 30, 0.9);
}

html[dir="rtl"] .site-editorial-hero::after {
  background: rgba(8, 38, 30, 0.9);
}

.site-editorial-hero__inner {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  align-items: center;
  width: min(1400px, calc(100% - 2rem));
  margin: auto;
  padding-block: clamp(4rem, 8vw, 7rem);
}

.site-editorial-hero__copy {
  max-width: 650px;
  color: var(--hog-canvas);
  text-shadow: 0 2px 4px oklch(0.18 0.025 160 / 0.72), 0 12px 32px oklch(0.18 0.025 160 / 0.48);
}

.site-editorial-hero__stamp {
  display: inline-block;
  margin-bottom: 1rem;
  color: var(--hog-red-soft);
  font-size: var(--type-caption);
  font-weight: var(--type-weight-bold);
  text-transform: uppercase;
}

.site-editorial-hero__title {
  max-width: 10ch;
  margin: 0;
  color: var(--hog-canvas) !important;
  font-size: clamp(2.6rem, 5.4vw, 5.6rem) !important;
  font-weight: var(--type-weight-bold) !important;
  line-height: var(--type-leading-tight) !important;
  text-wrap: balance;
}

.site-editorial-hero__lede {
  max-width: 54ch;
  margin-top: 1.4rem;
  color: rgba(255, 248, 236, 0.86) !important;
  font-size: clamp(1rem, 1.3vw, 1.2rem);
  line-height: var(--type-leading-body);
}

.site-editorial-hero__action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  margin-top: 1.8rem;
  padding: 0.8rem 1.4rem;
  color: white !important;
  font-weight: var(--type-weight-bold);
  white-space: nowrap;
  background: var(--hog-orange) !important;
  /* Deliberately flat: the hero action relies on contrast, not glow. */
  transition: transform 220ms var(--hog-ease), background-color 220ms ease;
}

.site-editorial-hero__action:hover {
  background: var(--hog-orange-dark) !important;
  transform: translateY(-2px);
}

.site-editorial-hero__action:active {
  transform: scale(0.96);
}

#hero .site-editorial-hero__inner {
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
}

#hero .site-editorial-hero__media {
  object-position: center;
}

#hero .site-editorial-hero__copy {
  grid-column: 1;
  justify-self: start;
  max-width: 34rem;
  text-align: start;
}

#hero .site-editorial-hero__lede {
  overflow-wrap: break-word;
  text-wrap: pretty;
}

#hero::after {
  background: rgba(8, 38, 30, 0.04);
}

html[dir="rtl"] #hero .site-editorial-hero__inner {
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
}

html[dir="rtl"] #hero .site-editorial-hero__copy {
  grid-column: 1;
  justify-self: start;
  text-align: start;
}

html[dir="rtl"] #hero .site-editorial-hero__title {
  max-width: 11ch;
  font-size: clamp(2.6rem, 4.8vw, 5rem) !important;
  line-height: var(--type-leading-tight) !important;
}

html[dir="rtl"] #hero::after {
  background: rgba(8, 38, 30, 0.04);
}

/* Program hero artwork: centered type over a slowly moving Palestinian palette. */

.impact-map-control:hover,
.impact-map-control.is-active {
  color: var(--hog-ink);
  border-color: var(--hog-orange);
  background: var(--hog-orange);
}

/* Open section rhythm */
/* main > div > section:not(.site-editorial-hero):not(.program-collage-hero) {
  margin-top: clamp(3.5rem, 7vw, 6.5rem);
} */

.mission-card,
.impact-stat-card,
.campaign-card,
.family-card,
.auth-card,
.message-card,
article[class*="shadow"],
aside[class*="shadow"] {
  border: 1px solid var(--hog-border) !important;
  border-radius: var(--hog-radius) !important;
  background-color: var(--hog-paper) !important;
  background-image: none !important;
  box-shadow: none !important;
}

.mission-card:hover,
.impact-stat-card:hover,
.campaign-card:hover,
.family-card:hover {
  border-color: rgba(47, 93, 80, 0.5) !important;
  box-shadow: var(--hog-shadow) !important;
  transform: translateY(-3px) !important;
}

.priority-cases-section .inline-flex.items-center.justify-center.mb-6 {
  display: none !important;
}

/* Entity card system shared by families and orphans. */
.hog-entity-card {
  position: relative;
  overflow: hidden;
  border: 1px solid var(--hog-border);
  border-radius: var(--hog-radius);
  background: var(--hog-paper);
  transition: transform 260ms var(--hog-ease), box-shadow 260ms var(--hog-ease), border-color 260ms ease;
}

.hog-entity-card:hover {
  border-color: rgba(47, 93, 80, 0.55);
  box-shadow: var(--hog-shadow);
  transform: translateY(-4px);
}

.hog-entity-card__link {
  display: grid;
  height: 100%;
  color: inherit;
  text-decoration: none;
  grid-template-rows: 13rem 1fr;
}

.hog-entity-card__media {
  position: relative;
  overflow: hidden;
  background: var(--hog-green);
}

.hog-entity-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 500ms var(--hog-ease);
}

.hog-entity-card:hover .hog-entity-card__media img {
  transform: scale(1.025);
}

.hog-entity-card__placeholder {
  display: grid;
  width: 100%;
  height: 100%;
  place-items: center;
  color: var(--hog-canvas);
  font-size: clamp(2rem, 5vw, 3.5rem);
  font-weight: var(--type-weight-bold);
}

.hog-entity-card__body {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  padding: 1.25rem;
}

.hog-entity-card__status-row,
.hog-entity-card__meta,
.hog-entity-card__progress-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.65rem;
}

.hog-entity-card__status {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0.25rem 0.55rem;
  color: var(--hog-green);
  font-size: var(--type-caption);
  font-weight: var(--type-weight-bold);
  border: 1px solid rgba(47, 93, 80, 0.25);
  border-radius: 6px;
  background: rgba(47, 93, 80, 0.08);
}

.hog-entity-card__status--complete {
  color: var(--hog-success);
}

.hog-entity-card__amount {
  color: var(--hog-orange-dark);
  font-size: var(--type-label);
  font-weight: var(--type-weight-bold);
}

.hog-entity-card__title {
  margin: 0;
  color: var(--hog-ink);
  font-size: var(--type-h4);
  font-weight: var(--type-weight-bold);
  line-height: var(--type-leading-heading);
}

.hog-entity-card__meta,
.hog-entity-card__story,
.hog-entity-card__progress-row {
  color: var(--hog-muted);
  font-size: var(--type-small);
  line-height: var(--type-leading-body);
}

.hog-entity-card__story {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.hog-entity-card__progress {
  height: 6px;
  overflow: hidden;
  border-radius: 6px;
  background: rgba(47, 93, 80, 0.14);
}

.hog-entity-card__progress span {
  display: block;
  width: var(--entity-progress, 0%);
  max-width: 100%;
  height: 100%;
  border-radius: inherit;
  background: var(--hog-orange);
}

.hog-entity-card__cta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 44px;
  margin-top: auto;
  padding-top: 0.75rem;
  color: var(--hog-green);
  font-weight: var(--type-weight-bold);
  border-top: 1px solid var(--hog-border);
}

/* Functional surfaces */
.auth-card,
main form[class*="space-y"],
main article[class*="p-"],
main aside[class*="p-"] {
  color: var(--hog-ink);
}

body:has(.auth-card) main {
  position: relative;
  margin-inline: calc(50% - 50vw);
  padding-block: clamp(3rem, 7vw, 6rem);
  overflow: hidden;
  background: var(--hog-green);
}

body:has(.auth-card) main::before {
  position: absolute;
  inset: 0;
  content: "";
  background: rgba(8, 38, 30, 0.58);
}

body:has(.auth-card) main > div {
  position: relative;
}

.auth-card {
  max-width: 680px;
  margin-inline: auto;
  border-color: rgba(216, 205, 184, 0.78) !important;
  box-shadow: var(--hog-shadow) !important;
}

.message-card,
main:has(.message-card) > div > div,
main:has(#compose-form) > div > div {
  border-color: var(--hog-border) !important;
  background-color: var(--hog-paper) !important;
  background-image: none !important;
  box-shadow: none !important;
}

.message-card:hover {
  border-color: rgba(47, 93, 80, 0.55) !important;
  box-shadow: var(--hog-shadow) !important;
}

.auth-card::before,
.auth-card > .absolute,
.impact-stat-card::before,
.mission-card::before {
  display: none !important;
}

.auth-icon,
.impact-stat-card [class*="h-14"][class*="w-14"],
.mission-card [class*="h-16"][class*="w-16"],
.family-profile-template [class*="h-10"][class*="w-10"] {
  color: var(--hog-canvas) !important;
  background: var(--hog-green) !important;
  background-image: none !important;
  box-shadow: none !important;
}

/* Footer: legacy !important overrides removed — redesign.css owns footer styling. */
footer[role="contentinfo"] a {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
}

button[onclick^="togglePassword"],
button[onclick^="shareCampaign"] {
  min-width: 44px;
  min-height: 44px;
  justify-content: center;
}

a[class*="inline-flex"][class*="bg-"],
.program-collage-hero__actions a {
  min-height: 44px;
}

.auth-card a {
  position: relative;
}

.auth-card a::after {
  position: absolute;
  top: 50%;
  left: 50%;
  width: calc(100% + 16px);
  min-width: 44px;
  height: 44px;
  content: "";
  transform: translate(-50%, -50%);
}

.prog-dot.is-active {
  opacity: 1;
}

.prog-dot.is-active::before {
  background: var(--hog-orange);
  transform: scaleX(1);
}

.prog-dot.is-active:active::before {
  transform: scaleX(0.96) scaleY(0.96);
}

.prog-dot:not(.is-active):active::before {
  transform: scaleX(0.32) scaleY(0.96);
}

#donate button[hx-get],
.campaign-dot {
  min-width: 44px !important;
  min-height: 44px !important;
}

.campaign-dot {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--hog-radius) !important;
  background: transparent !important;
}

.campaign-dot::before {
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: rgba(47, 93, 80, 0.42);
  content: "";
  transform: scaleX(1);
  transition-property: background-color, transform;
  transition-duration: 180ms;
  transform-origin: center;
}

.campaign-dot.active::before {
  background: var(--hog-orange);
  transform: scaleX(2.4);
}

@media (max-width: 767px) {
  body::before {
    opacity: 0.02;
  }

  .site-editorial-hero,
  .program-collage-hero {
    min-height: calc(100vh - 68px) !important;
    min-height: calc(100svh - 68px) !important;
  }

  .site-editorial-hero__inner,
  .program-collage-hero__content {
    display: grid !important;
    grid-template-columns: 1fr !important;
    align-content: end;
    width: min(100% - 2rem, 680px) !important;
    padding-block: 3rem !important;
  }

  .site-editorial-hero__title,
  .program-collage-hero__title {
    max-width: 12ch;
    font-size: clamp(2.35rem, 11vw, 4rem) !important;
  }

  .site-editorial-hero__lede,
  .program-collage-hero__description {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4;
  }

  /* .site-editorial-hero::after,
  .program-collage-hero::after,
  html[dir="rtl"] .site-editorial-hero::after,
  html[dir="rtl"] .program-collage-hero::after {
    background: rgba(8, 38, 30, 0.74) !important;
  } */

  #hero .site-editorial-hero__inner,
  html[dir="rtl"] #hero .site-editorial-hero__inner {
    grid-template-columns: 1fr;
  }

  #hero .site-editorial-hero__copy,
  html[dir="rtl"] #hero .site-editorial-hero__copy {
    grid-column: 1;
    justify-self: start;
    width: min(78%, 30rem);
    max-width: none;
    text-align: start;
  }

  #hero .site-editorial-hero__media {
    object-position: 35% center;
  }

  html[dir="rtl"] #hero .site-editorial-hero__media {
    object-position: 65% center;
  }

  #hero::after {
    background: linear-gradient(90deg, rgba(8, 38, 30, 0.92) 0%, rgba(8, 38, 30, 0.76) 48%, rgba(8, 38, 30, 0.16) 82%);
  }

  html[dir="rtl"] #hero::after {
    background: linear-gradient(270deg, rgba(8, 38, 30, 0.92) 0%, rgba(8, 38, 30, 0.76) 48%, rgba(8, 38, 30, 0.16) 82%);
  }

  .hog-entity-card__link {
    grid-template-rows: 12rem 1fr;
  }

  .orphan-list-page .age-chip,
  .orphan-list-page #orphans-grid-container nav a {
    min-width: 44px;
    min-height: 44px;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* Homepage programs: the same text-led editorial ledger used by Home impact. */
.home-programs {
  width: min(var(--hog-content-max), 100%);
  margin: var(--hog-section-space) auto 0;
  scroll-margin-top: 6rem;
}

.home-programs__item {
  position: relative;
  display: grid;
  min-height: clamp(38rem, 55vw, 49rem);
  padding: clamp(7.5rem, 12vw, 11rem) clamp(1rem, 5vw, 5rem) clamp(2rem, 5vw, 4rem);
  overflow: hidden;
  border-bottom: 1px solid oklch(0.96 0.018 85 / 0.12);
}

.home-programs__item:hover .home-programs__panel {
  transform: translateY(-3px);
  box-shadow: 0 34px 82px oklch(0.12 0.03 160 / 0.34);
}

.home-programs__item h3 {
  max-width: 14ch;
  margin: 0;
  color: var(--hog-ink);
  font-size: clamp(2.25rem, 4.4vw, 4.25rem);
  font-weight: var(--type-weight-bold);
  line-height: 1;
  letter-spacing: -0.045em;
  text-wrap: balance;
}

html[dir="rtl"] .home-programs__header h2,
html[dir="rtl"] .home-programs__item h3 {
  line-height: var(--type-leading-heading);
  letter-spacing: 0;
}

@media (max-width: 980px) {
  .home-programs__header-meta {
    grid-column: 1 / span 4;
  }

  .home-programs__header-copy {
    grid-column: 5 / -1;
  }

  .home-programs__item {
    min-height: 0;
    padding: clamp(7rem, 18vw, 10rem) clamp(1rem, 4vw, 2rem) 2rem;
  }

  .home-programs__panel {
    grid-template-columns: minmax(0, 1fr);
    min-height: 0;
  }

  .home-programs__content,
  .home-programs__evidence {
    grid-column: 1;
  }

  .home-programs__evidence {
    padding-block-start: 2rem;
    padding-inline-start: 0;
    border-block-start: 1px solid var(--hog-border);
    border-inline-start: 0;
  }
}

@media (max-width: 767px) {
  .home-programs {
    width: 100%;
    margin-top: var(--hog-section-space);
  }

  .home-programs__header {
    grid-template-columns: minmax(0, 1fr);
    gap: 1.5rem;
    margin-bottom: 2.5rem;
  }

  .home-programs__header-meta,
  .home-programs__header-copy {
    grid-column: 1;
  }

  .home-programs__header-meta {
    max-width: 15rem;
  }

  .home-programs__header h2 {
    font-size: clamp(2.15rem, 10vw, 3rem);
  }

  .home-programs__item {
    padding: 5.5rem 1rem 1rem;
  }

  .home-programs__word {
    font-size: clamp(5.25rem, 28vw, 9rem);
    line-height: var(--type-leading-tight);
  }

  .home-programs__panel {
    gap: 2rem;
    padding: 2.25rem 1.25rem;
  }

  .home-programs__item h3 {
    font-size: clamp(2.15rem, 10vw, 3.25rem);
  }

  .home-programs__impact {
    gap: 0.75rem;
  }

  .home-programs__action {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .home-programs__panel,
  .home-programs__action,
  .home-programs__action svg {
    transition: none;
  }

  .home-programs__item:hover .home-programs__panel,
  .home-programs__action:hover,
  .home-programs__action:focus-visible {
    transform: none;
  }
}

@media (max-width: 767px) {
  .hog-action-dock {
    inset: auto 0.75rem 3.75rem;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    transform: none;
  }

  .hog-action-dock a {
    padding-inline: 0.65rem;
    font-size: var(--type-label);
  }

  footer {
    padding-bottom: 5rem;
  }
}

@keyframes program-hero-gradient-drift {
  0% {
    opacity: 0.76;
    transform: translate3d(-4%, -2%, 0) rotate(-6deg) scale(1.04);
  }

  52% {
    opacity: 0.92;
    transform: translate3d(3%, 4%, 0) rotate(4deg) scale(1.11);
  }

  100% {
    opacity: 0.8;
    transform: translate3d(6%, -3%, 0) rotate(8deg) scale(1.06);
  }
}

/* AUN family program hero: oversized poster type with one tactile media crop. */
.aun-hero {
  position: relative;
  display: grid;
  min-height: calc(100vh - 76px);
  min-height: calc(100svh - 76px);
  margin-inline: calc(50% - 50vw);
  padding: clamp(1rem, 2.6vw, 2.5rem);
  overflow: hidden;
  isolation: isolate;
  color: var(--hog-ink);
  border-bottom: 1px solid var(--hog-border);
  background:
    linear-gradient(118deg, rgba(11, 61, 46, 0.035), transparent 34%),
    var(--hog-canvas);
  grid-template-rows: auto minmax(0, 1fr) auto;
}

.aun-hero::before {
  position: absolute;
  inset: 0;
  z-index: -1;
  content: "";
  pointer-events: none;
  background-image: repeating-radial-gradient(circle at 0 0, rgba(8, 38, 30, 0.16) 0 0.7px, transparent 0.8px 4px);
  opacity: 0.1;
  mix-blend-mode: multiply;
}

.aun-hero__stage {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
  width: min(100%, 94rem);
  min-height: clamp(22rem, 62vh, 46rem);
  margin-inline: auto;
  place-items: center;
  padding-block: clamp(3rem, 7vh, 6rem);
}

.aun-hero__title {
  position: relative;
  z-index: 4;
  grid-column: 1;
  width: min(100%, 78rem);
  min-width: 0;
  margin-inline: auto;
  padding-inline: clamp(0rem, 4vw, 4rem);
  color: var(--hog-ink) !important;
  font-weight: var(--type-weight-bold) !important;
  font-synthesis: none;
  letter-spacing: 0 !important;
  text-align: start;
  text-transform: none;
  text-wrap: balance;
}

.aun-hero__title-line {
  display: block;
  overflow-wrap: break-word;
  white-space: normal;
}

.aun-hero__title-line--name {
  max-width: 11ch;
  color: var(--hog-ink);
  font-size: clamp(4.75rem, 12vw, 11.5rem);
  font-weight: var(--type-weight-bold);
  line-height: var(--type-leading-tight);
  letter-spacing: -0.065em;
  text-transform: uppercase;
  text-wrap: balance;
}

.aun-hero__title-line--program {
  max-width: 20ch;
  margin-block-start: clamp(1.5rem, 3vw, 2.5rem);
  margin-inline-start: clamp(1rem, 8vw, 8rem);
  padding-block-start: clamp(0.9rem, 1.5vw, 1.25rem);
  border-block-start: clamp(3px, 0.35vw, 5px) solid var(--hog-red);
  color: var(--hog-green-mid);
  font-size: clamp(1.95rem, 3.8vw, 4.1rem);
  font-weight: var(--type-weight-bold);
  line-height: var(--type-leading-tight);
  letter-spacing: -0.035em;
  text-align: start;
  text-transform: none;
  text-wrap: balance;
}

.aun-hero__spark {
  position: absolute;
  z-index: 3;
  display: block;
  width: clamp(2.8rem, 4vw, 4.6rem);
  aspect-ratio: 1;
  background: var(--hog-ink);
  clip-path: polygon(50% 0, 62% 36%, 100% 50%, 62% 64%, 50% 100%, 38% 64%, 0 50%, 38% 36%);
}

.aun-hero__spark--start {
  inset: 24% auto auto 8%;
  box-shadow: 5px 5px 0 var(--hog-red);
  transform: rotate(10deg);
}

.aun-hero__spark--end {
  inset: auto 8% 17% auto;
  background: var(--hog-red);
  transform: rotate(-13deg) scale(0.82);
}

.aun-hero--orphan .aun-hero__title-line--name {
  max-width: 12ch;
  font-size: clamp(3.75rem, 7.5vw, 7.6rem);
}

.aun-hero--orphan .aun-hero__title-line--program {
  max-width: 22ch;
  font-size: clamp(1.85rem, 3.6vw, 3.8rem);
}

.aun-hero__footer {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 2rem;
  padding-top: 1rem;
}

.aun-hero__footer p {
  max-width: 50ch;
  margin: 0;
  color: var(--hog-muted);
  font-size: clamp(0.9rem, 1.15vw, 1.05rem);
  line-height: var(--type-leading-body);
  text-align: start;
  text-wrap: pretty;
}

.aun-hero__footer a {
  display: inline-flex;
  min-height: 48px;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  padding: 0.85rem 1.35rem;
  color: var(--hog-canvas) !important;
  border-radius: var(--hog-radius) !important;
  background: var(--hog-red);
  font-size: var(--type-control);
  font-weight: var(--type-weight-bold);
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
  transition: transform 180ms var(--hog-ease), background-color 180ms ease;
}

.aun-hero__footer a:hover,
.aun-hero__footer a:focus-visible {
  background: var(--hog-red-dark);
  transform: translateY(-2px);
}

.aun-hero__footer a:active {
  transform: scale(0.97);
}

html[dir="rtl"] .aun-hero__title {
  letter-spacing: 0 !important;
}

html[dir="rtl"] .aun-hero__title-line--name {
  line-height: 1;
  letter-spacing: 0;
}

html[dir="rtl"] .aun-hero__title-line--program {
  font-size: clamp(2rem, 4vw, 4.1rem);
  line-height: var(--type-leading-heading);
  letter-spacing: 0;
}

@keyframes food-aid-icon-bread-float {
  from { transform: translate3d(0, 0, 0) rotate(-11deg); }
  to { transform: translate3d(0, -10px, 0) rotate(-6deg); }
}

@keyframes food-aid-icon-parcel-float {
  from { transform: translate3d(0, 0, 0) rotate(8deg); }
  to { transform: translate3d(-4px, -13px, 0) rotate(3deg); }
}

@keyframes food-aid-icon-olive-float {
  from { transform: translate3d(0, 0, 0) rotate(-8deg); }
  to { transform: translate3d(5px, -8px, 0) rotate(-2deg); }
}

@keyframes orphan-icon-education-float {
  from { transform: translate3d(0, 0, 0) rotate(-9deg); }
  to { transform: translate3d(3px, -10px, 0) rotate(-4deg); }
}

@keyframes orphan-icon-shelter-float {
  from { transform: translate3d(0, 0, 0) rotate(7deg); }
  to { transform: translate3d(-4px, -12px, 0) rotate(2deg); }
}

@keyframes orphan-icon-care-float {
  from { transform: translate3d(0, 0, 0) rotate(-7deg); }
  to { transform: translate3d(5px, -9px, 0) rotate(-1deg); }
}

@media (max-width: 767px) {
  .aun-hero {
    width: 100vw;
    max-width: 100vw;
    min-height: calc(100vh - 68px);
    min-height: calc(100svh - 68px);
    padding: clamp(0.875rem, 4vw, 1.125rem);
    row-gap: clamp(0.75rem, 2.5vh, 1.25rem);
  }

  .aun-hero__masthead {
    min-height: 56px;
  }

  .aun-hero__masthead span {
    padding: 0.55rem 0.65rem;
    font-size: var(--type-caption);
  }

  .aun-hero__stage {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto;
    width: 100%;
    min-width: 0;
    min-height: clamp(19rem, 54svh, 28rem);
    padding-block: clamp(3.75rem, 9vh, 5rem);
    overflow: hidden;
  }

  .aun-hero__title {
    grid-column: 1;
    grid-row: 1;
    width: min(100%, 34rem);
    min-width: 0;
    max-width: 100%;
    padding-inline: 0.25rem;
  }

  .aun-hero__title-line {
    max-width: 100%;
  }

  .aun-hero__title-line--name {
    max-width: 11ch;
    font-size: clamp(4rem, 22vw, 6.5rem);
    line-height: var(--type-leading-tight);
    letter-spacing: -0.055em;
  }

  .aun-hero__title-line--program {
    max-width: 21ch;
    margin-block-start: 1.1rem;
    margin-inline-start: clamp(0.75rem, 7vw, 1.5rem);
    padding-block-start: 0.75rem;
    border-block-start-width: 3px;
    font-size: clamp(1.3rem, 6.2vw, 1.85rem);
    line-height: var(--type-leading-heading);
  }

  .aun-hero__spark--start {
    inset: 18% auto auto 2%;
  }

  .aun-hero__spark--end {
    inset: auto 2% 18% auto;
  }

  .aun-hero__identity-icon--bread {
    inset-block-start: 2.5%;
    inset-inline-start: 0;
    width: clamp(3.25rem, 15vw, 4.25rem);
  }

  .aun-hero__identity-icon--parcel {
    inset-block-start: 2.5%;
    inset-inline-end: 0;
    width: clamp(3.75rem, 17vw, 4.875rem);
  }

  .aun-hero__identity-icon--olive {
    inset-inline-end: 0.25rem;
    inset-block-end: 2.5%;
    width: clamp(2.75rem, 12vw, 3.5rem);
  }

  .aun-hero--orphan .aun-hero__title-line--name {
    max-width: 12ch;
    font-size: clamp(2.35rem, 11vw, 3.5rem);
  }

  .aun-hero--orphan .aun-hero__title-line--program {
    font-size: clamp(1.25rem, 5.8vw, 1.7rem);
  }

  .aun-hero__identity-icon--education {
    inset-block-start: 2.5%;
    inset-inline-start: 0;
    width: clamp(3.25rem, 15vw, 4.25rem);
  }

  .aun-hero__identity-icon--shelter {
    inset-block-start: 2.5%;
    inset-inline-end: 0;
    width: clamp(3.75rem, 17vw, 4.875rem);
  }

  .aun-hero__identity-icon--care {
    inset-inline-end: 0.25rem;
    inset-block-end: 2.5%;
    width: clamp(2.875rem, 12.5vw, 3.625rem);
  }

  .aun-hero__footer {
    width: 100%;
    min-width: 0;
    align-items: stretch;
    flex-direction: column;
    gap: 0.875rem;
    padding-top: 0;
    padding-inline: 0.25rem;
  }

  .aun-hero__footer p {
    display: block;
    width: 100%;
    max-width: none;
    overflow-wrap: anywhere;
  }

  .aun-hero__footer a {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }

  html[dir="rtl"] .aun-hero__title-line--name {
    font-size: clamp(3.25rem, 16vw, 4.75rem);
    line-height: 1;
  }

  html[dir="rtl"] .aun-hero__title-line--program {
    font-size: clamp(1.2rem, 5.8vw, 1.7rem);
    line-height: var(--type-leading-heading);
  }

  html[dir="rtl"] .aun-hero--orphan .aun-hero__title-line--name {
    font-size: clamp(2.35rem, 11vw, 3.35rem);
  }
}

/* Keyboard-controlled desktop Programs menu. */

#programs-dropdown[data-open="true"] .programs-dropdown__chevron {
  transform: rotate(180deg);
}

/* Shared component styles. */

/* campaigns_unified.html */
@media (max-width: 767px) {
    .campaign-card__banner-row { gap: 1rem; }
    .campaign-card__title-row h3 {
        min-width: 0;
        overflow-wrap: anywhere;
    }
    .campaign-card__stat > .flex { align-items: center; }
    .campaign-card__support-grid > div {
        min-height: 44px;
        padding-block: 0.7rem;
    }
}

/* featured_orphan_card.html */
.animate-pulse-slow {
        animation: pulse 2s ease-in-out infinite;
    }
    
    @keyframes pulse {
        0%, 100% { opacity: 1; }
        50% { opacity: 0.7; }
    }
    
    .line-clamp-3 {
        display: -webkit-box;
        -webkit-line-clamp: 3;
        line-clamp: 3;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }

/* floating_orphan_banner.html */
/* Heartbeat Animation for CTA Button */
    @keyframes banner-heartbeat {
        0%, 100% { transform: scale(1); }
        15% { transform: scale(1.1); }
        30% { transform: scale(1); }
        45% { transform: scale(1.08); }
        60% { transform: scale(1); }
    }
    
    .banner-heartbeat-animation {
        animation: banner-heartbeat 2s ease-in-out infinite;
    }
    
    /* Glow Animation for Card */
    @keyframes banner-glow {
        0%, 100% { opacity: 0.4; }
        50% { opacity: 0.7; }
    }
    
    .banner-glow-animation {
        animation: banner-glow 3s ease-in-out infinite;
    }
    
    /* Reduce motion for accessibility */
    @media (prefers-reduced-motion: reduce) {
        .banner-heartbeat-animation,
        .banner-glow-animation,
        .banner-glow-animation {
            opacity: 0.5;
        }
    }

/* image_carousel.html */

    .carousel-slide.active {
        opacity: 1;
        z-index: 10;
    }
    .carousel-slide:not(.active) {
        opacity: 0;
        z-index: 0;
    }
    .carousel-dot.active {
        background-color: rgb(34 197 94);
        transform: scale(1.1);
    }

/* impact_carousel.html */

    

    

    

    

    

    

    
    /* Track stays in normal document flow. JS centers slides by scrolling the
       viewport, so navigation never applies a transform to the carousel. */
    

    /* Modus width-morph: every slide same height; inactive are thin strips,
       active expands wide while the viewport scrolls to its center. */
    
    .impact-slide.is-active { width: 84vw; opacity: 1; }

    /* Mobile: one complete story at a time. Inactive slides stay in the loop
       for carousel geometry but no longer become tall image slivers. */
    @media (max-width: 767px) {
        .impact-carousel {
            --ic-mobile-slide-width: min(92vw, 36rem);
            padding: var(--hog-section-space) 0;
        }
        .impact-carousel__header { grid-template-columns: 1fr; gap: 1.5rem; }
        .impact-carousel__eyebrow,
        .impact-carousel__header > div { grid-column: 1; }
        .impact-carousel__eyebrow { max-width: 12rem; }
        .impact-carousel-viewport { margin-top: 2rem; }
        .impact-carousel-track {
            padding-inline: calc((100vw - var(--ic-mobile-slide-width)) / 2);
        }
        .impact-slide {
            width: 0;
            height: clamp(22rem, 64dvh, 34rem);
            min-height: 0;
            margin-right: 0;
            border-radius: 0.75rem;
            opacity: 0;
            pointer-events: none;
        }
        .impact-slide.is-active {
            width: var(--ic-mobile-slide-width);
            opacity: 1;
            pointer-events: auto;
        }
        .impact-slide.is-active:hover .impact-slide-img { transform: none; }
        .impact-arrow {
            width: 3rem;
            height: 3rem;
        }
    }

    @media (min-width: 768px)  {
        .impact-slide { width: 22vw; }
        .impact-slide.is-active { width: 70vw; }
    }
    @media (min-width: 1024px) {
        .impact-slide { width: 14vw; }
        .impact-slide.is-active { width: 52vw; }
    }

    
    .impact-slide.is-active:hover .impact-slide-img { transform: scale(1.05); }

    /* Caption only legible/visible on the active slide */
    
    .impact-slide.is-active .impact-slide-overlay { opacity: 1; }

    
    .impact-slide.is-active .impact-slide-caption { opacity: 1; transform: translateY(0); }

    

    
    

    

    
    
    

    /* Used by JS to snap to a layout for measurement without animating. */
    

/* impact_dashboard.html */
.impact-story {
        width: min(var(--hog-content-max), 100%);
        margin-inline: auto;
        color: var(--hog-ink);
        border-block: 1px solid var(--hog-border);
        font-synthesis: none;
    }

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    .impact-story__copy {
        max-width: 46ch;
        margin: 0;
        color: var(--hog-muted);
        font-size: clamp(1rem, 1.3vw, 1.1rem);
        line-height: var(--type-leading-body);
        text-wrap: pretty;
    }

    

    

    

    

    

    

    

    @keyframes impact-panel-in {
        from { opacity: 0; transform: translateY(10px); }
        to { opacity: 1; transform: translateY(0); }
    }

    @media (max-width: 600px) {
        .impact-story { width: 100%; }
        .impact-story__masthead {
            grid-template-columns: 1fr;
            gap: 1.5rem;
            padding-block: 3rem;
        }
        .impact-story__eyebrow,
        .impact-story__masthead > div { grid-column: 1; }
        .impact-story__eyebrow { max-width: 12rem; }
        .impact-story__tabs {
            grid-template-columns: 1fr;
        }
        .impact-story__stage { padding: 5.5rem 1rem 1rem; }
        .impact-story__word {
            font-size: clamp(5.5rem, 29vw, 9rem);
            line-height: var(--type-leading-tight);
        }
        .impact-story__panel { padding: 2.25rem 1.25rem; }
        .impact-story__value { font-size: clamp(3.75rem, 20vw, 6rem); }
        .impact-story__panel h3 { font-size: clamp(2rem, 10vw, 3rem); }
        .impact-story__facts { gap: 0.75rem; }
    }

/* media_gallery.html */

    

    

    

    .media-carousel-card.is-active {
        transform: translate3d(0, -7px, 0) scale(1.02);
    }

    

    .media-carousel-card:hover .media-carousel-image,
    .media-carousel-card.is-active .media-carousel-image {
        transform: scale(1.08);
        filter: saturate(1.05);
    }

    @keyframes media-card-enter {
        from { opacity: 0; transform: translate3d(0, 26px, 0) scale(.96); }
        to { opacity: 1; transform: translate3d(0, 0, 0) scale(1); }
    }

    /* Lightbox transitions */
    #media-lightbox { transition: opacity .25s ease; opacity: 0; }
    #media-lightbox.is-open { opacity: 1; }
    
    #media-lightbox.is-open .lightbox-stage { transform: scale(1); opacity: 1; }

    @media (prefers-reduced-motion: reduce) {
        .media-carousel-card,
        .media-carousel-image,
        .media-carousel-arrow,
        #media-lightbox,
        #media-lightbox .lightbox-stage {
            animation: none;
            transition: none;
        }
        .media-carousel-card,
        .media-carousel-card.is-active,
        .media-carousel-card:hover,
        .media-carousel-card:focus-visible { transform: none; }
        .media-carousel-image,
        .media-carousel-card:hover .media-carousel-image,
        .media-carousel-card.is-active .media-carousel-image { transform: scale(1); }
    }

    html.rtl .media-carousel [data-carousel-prev],
    html[dir="rtl"] .media-carousel [data-carousel-prev] { left: auto; right: .75rem; }
    html.rtl .media-carousel [data-carousel-next],
    html[dir="rtl"] .media-carousel [data-carousel-next] { right: auto; left: .75rem; }
    html.rtl .media-carousel-fade-start,
    html[dir="rtl"] .media-carousel-fade-start { left: auto; right: 0; background: white; }
    html.rtl .media-carousel-fade-end,
    html[dir="rtl"] .media-carousel-fade-end { right: auto; left: 0; background: white; }

/* media_slider.html */

    .media-slide.active {
        opacity: 1 !important;
        z-index: 10;
    }
    .media-slide:not(.active) {
        z-index: 0;
    }
    .slider-dot.active {
        background-color: rgb(34 197 94);
        transform: scale(1.1);
    }
    .slider-dot.active svg {
        color: white;
    }

/* orphan_info.html */

.sponsor-btn {
    position: relative;
    overflow: hidden;
    background: var(--hog-red);
    transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease;
}

.sponsor-btn:hover {
    transform: translateY(-2px);
    background: var(--hog-red-dark);
    box-shadow: 0 18px 38px color-mix(in srgb, var(--hog-red) 30%, transparent);
}

.sponsor-btn:active { transform: translateY(0) scale(.99); }

.sponsor-btn:hover .sponsor-btn__shine { transform: translateX(120%); }

@keyframes burst-ripple {
    to { transform: translate(-50%, -50%) scale(48); opacity: 0; }
}

@media (prefers-reduced-motion: reduce) {
    .sponsor-btn,
    .sponsor-btn__shine,
    .sponsor-burst__ripple {
        animation: none !important;
        transition: none !important;
    }
}

/* orphan_info.html */

@keyframes sponsor-page-flash {
    0% { box-shadow: inset 0 0 0 0 transparent; }
    35% { box-shadow: inset 0 0 220px 40px color-mix(in srgb, var(--hog-red) 28%, transparent); }
    100% { box-shadow: inset 0 0 0 0 transparent; }
}

/* program_info_lists.html */
.program-brief {
        display: grid;
        grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
        width: min(var(--hog-content-max), 100%);
        margin: var(--hog-section-space) auto;
        overflow: hidden;
        color: var(--hog-ink);
        border: 1px solid var(--hog-border);
        border-radius: var(--hog-radius);
        background: var(--hog-paper);
    }

    .program-brief__art {
        position: relative;
        min-height: clamp(34rem, 52vw, 48rem);
        margin: 0;
        overflow: hidden;
        background: var(--hog-green);
    }

    .program-brief__art::after {
        position: absolute;
        inset: 0;
        content: "";
        pointer-events: none;
        background: linear-gradient(to top, oklch(0.15 0.03 160 / 0.4), transparent 48%);
        box-shadow: inset 0 0 0 1px oklch(1 0 0 / 0.12);
    }

    .program-brief__art img {
        display: block;
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .program-brief--food .program-brief__art img { object-position: center 58%; }
    .program-brief--orphan .program-brief__art img { object-position: 66% center; }

    .program-brief__content {
        display: grid;
        grid-template-rows: auto auto;
        align-content: stretch;
        min-width: 0;
    }

    .program-brief__highlights,
    .program-brief__provisions {
        padding: clamp(2rem, 5vw, 4.5rem);
    }

    .program-brief__highlights {
        align-self: center;
    }

    .program-brief h2 {
        max-width: 14ch;
        margin: 0;
        color: var(--hog-ink);
        font-size: clamp(2rem, 3.5vw, 3.4rem);
        font-weight: var(--type-weight-bold);
        line-height: var(--type-leading-tight);
        text-wrap: balance;
    }

    .program-brief__highlights ol,
    .program-brief__provisions ul {
        list-style: none;
        margin: clamp(2rem, 4vw, 3.5rem) 0 0;
        padding: 0;
    }

    .program-brief__highlights li {
        display: grid;
        grid-template-columns: 2.35rem minmax(0, 1fr);
        gap: clamp(0.8rem, 2vw, 1.4rem);
        align-items: baseline;
        padding-block: 1.1rem;
        border-bottom: 1px solid var(--hog-border);
    }

    .program-brief__highlights li:first-child { padding-top: 0; }
    .program-brief__highlights li:last-child { padding-bottom: 0; border-bottom: 0; }

    .program-brief__highlights li > span {
        color: var(--hog-red);
        font-family: "Geist Mono", ui-monospace, monospace;
        font-size: var(--type-label);
        font-weight: var(--type-weight-bold);
        font-variant-numeric: tabular-nums;
    }

    .program-brief li p { margin: 0; }

    .program-brief__highlights li p {
        max-width: 34ch;
        color: var(--hog-ink);
        font-size: clamp(1.1rem, 1.8vw, 1.45rem);
        font-weight: var(--type-weight-bold);
        line-height: var(--type-leading-small);
        text-wrap: pretty;
    }

    .program-brief__provisions {
        align-self: end;
        color: var(--hog-canvas);
        background: var(--hog-green);
        border-top: 4px solid var(--hog-red);
    }

    .program-brief__provisions h2 { color: var(--hog-canvas); }

    .program-brief__provisions ul {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 1rem clamp(1rem, 3vw, 2.5rem);
    }

    .program-brief__provisions li {
        display: grid;
        grid-template-columns: 1.5rem minmax(0, 1fr);
        gap: 0.75rem;
        align-items: start;
        padding-top: 0.9rem;
        border-top: 1px solid oklch(0.96 0.018 85 / 0.2);
    }

    .program-brief__provisions li > span {
        width: 1.5rem;
        height: 2px;
        margin-top: 0.72rem;
        background: var(--hog-red);
    }

    .program-brief__provisions li p {
        color: oklch(0.96 0.018 85 / 0.86);
        font-size: clamp(0.95rem, 1.4vw, 1.08rem);
        line-height: var(--type-leading-body);
        text-wrap: pretty;
    }

    @media (max-width: 900px) {
        .program-brief { grid-template-columns: 1fr; }
        .program-brief__art {
            min-height: 0;
            aspect-ratio: 16 / 10;
        }
    }

    @media (max-width: 600px) {
        .program-brief {
            width: 100%;
            margin-block: var(--hog-section-space);
        }

        .program-brief__art { aspect-ratio: 4 / 3; }
        .program-brief--food .program-brief__art { aspect-ratio: 3 / 4; }

        .program-brief__highlights,
        .program-brief__provisions { padding: 2.25rem 1.25rem; }

        .program-brief h2 { font-size: clamp(2rem, 10vw, 2.75rem); }
        .program-brief__provisions ul { grid-template-columns: 1fr; }
    }

/* Hand Of Giving - redesign design system (hogfund-redesign spec).
   Tokens + shared components: announcement, header, footer, eyebrows,
   donation widget (give-card), child card, reports wall, campaign card,
   auth split layout, checkout (steps/summary/pay-methods), orphan profile.
   Loaded after components.css so it wins over legacy rules. */

:root {
  --rd-cream: #fff8ec;
  --rd-cream-2: #fbf1de;
  --rd-ink: #08261e;
  --rd-ink-2: #0e3529;
  --rd-red: #c8102e;
  --rd-red-dark: #9e0c24;
  --rd-gold: #c9a227;
  --rd-olive: #5a6b3f;
  --rd-on-dark: #fff8ec;
  --rd-muted: #5b6b64;
  --rd-radius: 18px;
}

/* body font-family: typography-scale.css (loads later, wins) */

body {
  transition: opacity .14s ease;
}

html.is-language-entering body,
html.is-language-leaving body {
  opacity: 0;
}

.rd-wrap {
  width: 100%;
  max-width: 1240px;
  margin-inline: auto;
  padding-inline: clamp(1rem, 4vw, 2.5rem);
}

.rd-dir-arrow::before { content: "→"; }
[dir="rtl"] .rd-dir-arrow::before { content: "←"; }

/* ---------- eyebrows / headings / lede ---------- */
.rd-eyebrow {
  display: inline-flex; align-items: center; gap: .6rem;
  font-size: var(--type-label); font-weight: var(--type-weight-bold); letter-spacing: .08em; color: var(--rd-red);
}
.rd-eyebrow::before { content: ""; width: 34px; height: 2px; background: var(--rd-red); }
.rd-eyebrow--light { color: var(--rd-gold); }
.rd-eyebrow--light::before { background: var(--rd-gold); }
.rd-lede { font-size: clamp(.98rem, 1.2vw, 1.06rem); line-height: var(--type-leading-body); color: var(--rd-muted); max-width: 58ch; }
.rd-on-dark .rd-lede, .rd-lede--on-dark { color: rgba(255, 248, 236, .78); }
.rd-accent { color: var(--rd-gold); }

.rd-sec { padding-block: clamp(2.5rem, 5vw, 4.5rem); }
.rd-sec-head { max-width: 680px; margin-bottom: clamp(1.8rem, 4vw, 3rem); text-align: start; }
.rd-sec-head .rd-eyebrow { margin-bottom: .9rem; }
.rd-sec-head .rd-h-section { margin-bottom: .7rem; }

/* ---------- announcement bar ---------- */
.rd-announce { background: var(--rd-red); color: #fff; font-size: var(--type-small); font-weight: var(--type-weight-semibold); padding: .55rem 0; }
.rd-announce .rd-wrap { display: flex; align-items: center; justify-content: center; gap: .7rem; flex-wrap: wrap; text-align: center; }
.rd-announce a { font-weight: var(--type-weight-bold); border-bottom: 2px solid rgba(255, 255, 255, .85); padding-bottom: 1px; color: #fff; }
.rd-announce a:hover { border-color: #fff; }

/* ---------- header ---------- */
.rd-head {
  position: sticky; top: 0; z-index: 50;
  background: rgba(255, 248, 236, .92); backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(8, 38, 30, .09);
}
.rd-head .rd-wrap { display: flex; align-items: center; gap: 1.2rem; height: 76px; }
.rd-brand { display: flex; align-items: center; gap: .7rem; font-weight: var(--type-weight-bold); font-size: var(--type-body-lg); color: var(--rd-ink); }
.rd-brand img { width: 42px; height: 42px; border-radius: 10px; }
.rd-brand small { display: block; font-size: var(--type-caption); font-weight: var(--type-weight-semibold); color: var(--rd-muted); letter-spacing: .02em; }
.rd-nav { display: flex; align-items: center; gap: 1.3rem; margin-inline-start: auto; font-weight: var(--type-weight-bold); font-size: var(--type-control); }
.rd-nav,
.rd-brand,
.rd-lang,
.rd-donate { white-space: nowrap; }
.rd-nav > a, .rd-nav .rd-nav__link { padding: .6rem .8rem; color: var(--rd-ink); }
.rd-nav > a:hover, .rd-nav .rd-nav__link:hover { color: var(--rd-red); }
.rd-nav a[aria-current="page"],
.rd-nav .rd-dropdown__btn[aria-current="page"] { color: var(--rd-red); box-shadow: inset 0 -2px 0 var(--rd-red); }
.rd-lang {
  font-weight: var(--type-weight-bold); font-size: var(--type-small); color: var(--rd-muted); cursor: pointer;
  border: 1px solid rgba(8, 38, 30, .18); border-radius: 999px; padding: .42rem .9rem; background: transparent;
  font-family: inherit;
}
.rd-lang[lang="ar"],
.rd-mnav__item[lang="ar"] { font-family: "Cairo", sans-serif; }
.rd-lang[lang="en"],
.rd-mnav__item[lang="en"] { font-family: "Manrope", system-ui, sans-serif; }
.rd-lang:hover { color: var(--rd-ink); border-color: var(--rd-ink); }
.rd-donate {
  display: inline-flex; align-items: center; gap: .5rem;
  background: var(--rd-red) !important; color: #fff !important; font-weight: var(--type-weight-bold); font-size: var(--type-control);
  border: none; border-radius: 12px; padding: .7rem 1.5rem;
  box-shadow: 0 6px 16px -6px rgba(200, 16, 46, .5);
  transition: transform .15s ease, background .15s ease;
}
/* .rd-donate:hover { background: var(--rd-red-dark) !important; transform: translateY(-1px); } */

/* programs dropdown (keeps existing JS hooks) */
.rd-dropdown { position: relative; }
.rd-dropdown__btn { display: inline-flex; align-items: center; gap: .35rem; background: none; border: none; font: inherit; font-weight: var(--type-weight-bold); color: var(--rd-ink); padding: .4rem .1rem; cursor: pointer; }
.rd-dropdown__btn:hover { color: var(--rd-red); }
.rd-dropdown__menu {
  position: absolute; top: 100%; inset-inline-start: 0; margin-top: .5rem; min-width: 15rem;
  background: #fff; border: 1px solid rgba(8, 38, 30, .1); border-radius: 14px;
  box-shadow: 0 18px 40px -16px rgba(8, 38, 30, .25); padding: .5rem;
  opacity: 0; visibility: hidden; transform: translateY(6px);
  transition: opacity .18s ease, transform .18s ease, visibility .18s;
  z-index: 60;
}
.rd-dropdown:hover .rd-dropdown__menu,
.rd-dropdown[data-open="true"] .rd-dropdown__menu,
.rd-dropdown:focus-within .rd-dropdown__menu { opacity: 1; visibility: visible; transform: translateY(0); }
.rd-dropdown__menu a { display: block; padding: .6rem .8rem; border-radius: 10px; font-size: var(--type-control); font-weight: var(--type-weight-semibold); color: var(--rd-ink); }
.rd-dropdown__menu a:hover { background: var(--rd-cream-2); color: var(--rd-red); }
.rd-dropdown__menu small { display: block; font-size: var(--type-caption); font-weight: var(--type-weight-medium); color: var(--rd-muted); }

/* user chip */
.rd-user { position: relative; }
.rd-user__btn {
  display: flex; align-items: center; gap: .55rem; border: 1px solid rgba(8, 38, 30, .18);
  background: #fff; border-radius: 999px; padding: .3rem .8rem .3rem .3rem; cursor: pointer; font: inherit;
}
[dir="rtl"] .rd-user__btn { padding: .3rem .3rem .3rem .8rem; }
.rd-user__avatar {
  width: 30px; height: 30px; border-radius: 50%; background: var(--rd-gold); color: var(--rd-ink);
  display: grid; place-items: center; font-weight: var(--type-weight-bold); font-size: var(--type-label);
}
.rd-user__menu {
  position: absolute; top: 100%; inset-inline-end: 0; margin-top: .5rem; min-width: 13rem;
  background: #fff; border: 1px solid rgba(8, 38, 30, .1); border-radius: 14px;
  box-shadow: 0 18px 40px -16px rgba(8, 38, 30, .25); padding: .5rem;
  opacity: 0; visibility: hidden; transform: translateY(6px);
  transition: opacity .18s ease, transform .18s ease, visibility .18s; z-index: 60;
}
.rd-user:hover .rd-user__menu, .rd-user:focus-within .rd-user__menu { opacity: 1; visibility: visible; transform: translateY(0); }
.rd-user__menu a, .rd-user__menu button {
  display: flex; align-items: center; gap: .5rem; width: 100%; text-align: start;
  padding: .55rem .8rem; border-radius: 10px; font-size: var(--type-control); font-weight: var(--type-weight-semibold); color: var(--rd-ink);
  background: none; border: none; cursor: pointer;
}
.rd-user__menu a:hover, .rd-user__menu button:hover { background: var(--rd-cream-2); }
.rd-user__head { padding: .6rem .8rem; border-bottom: 1px solid rgba(8, 38, 30, .08); margin-bottom: .3rem; }
.rd-user__head b { display: block; font-size: var(--type-control); }
.rd-user__head span { font-size: var(--type-caption); color: var(--rd-muted); }

/* icon button (messages) */
.rd-iconbtn { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; border-radius: 50%; color: var(--rd-ink); }
.rd-iconbtn:hover { background: var(--rd-cream-2); color: var(--rd-red); }
.rd-badge {
  position: absolute; top: 2px; inset-inline-end: 2px; min-width: 16px; height: 16px;
  border-radius: 999px; background: var(--rd-red); color: #fff; font-size: var(--type-caption); font-weight: var(--type-weight-bold);
  display: flex; align-items: center; justify-content: center; border: 2px solid var(--rd-cream); padding-inline: 3px;
}
.rd-badge:not(.hidden) { animation: rd-badge-pop .24s cubic-bezier(.16, 1, .3, 1); }
@keyframes rd-badge-pop {
  from { opacity: 0; transform: scale(.55); }
  to { opacity: 1; transform: scale(1); }
}
@media (prefers-reduced-motion: reduce) {
  .rd-badge:not(.hidden) { animation: none; }
}

.donation-activity {
  position: fixed; inset-block-end: 1.25rem; inset-inline-start: 1.25rem; z-index: 45;
  width: min(360px, calc(100vw - 2rem)); display: flex; align-items: center; gap: .75rem;
  padding: .85rem 1rem; overflow: hidden; border: 1px solid rgba(8, 38, 30, .14);
  border-radius: 16px; background: var(--rd-cream); color: var(--rd-ink);
  box-shadow: 0 18px 40px -18px rgba(8, 38, 30, .55);
  opacity: 0; pointer-events: none; transform: translateY(12px) scale(.98);
  transition: opacity .22s ease, transform .28s cubic-bezier(.16, 1, .3, 1);
}
.donation-activity.is-visible { opacity: 1; pointer-events: auto; transform: translateY(0) scale(1); }
.donation-activity__icon { width: 34px; height: 34px; flex: none; padding: .48rem; border-radius: 11px; background: var(--rd-red); color: #fff; stroke: currentColor; stroke-width: 1.8; }
.donation-activity__content { min-width: 0; display: grid; gap: .15rem; }
.donation-activity__content strong { color: var(--rd-red); font-size: var(--type-caption); letter-spacing: .06em; text-transform: uppercase; }
.donation-activity__content span { color: var(--rd-ink); font-size: var(--type-small); line-height: var(--type-leading-small); }
.donation-activity__close { width: 30px; height: 30px; flex: none; margin-inline-start: auto; border: 0; border-radius: 50%; background: transparent; color: var(--rd-muted); font-size: var(--type-h4); line-height: 1; cursor: pointer; }
.donation-activity__close:hover { background: var(--rd-cream-2); color: var(--rd-ink); }
.donation-activity__close:focus-visible { outline: 3px solid var(--rd-gold); outline-offset: 2px; }
.donation-activity__progress { position: absolute; inset-block-end: 0; inset-inline: 0; height: 3px; transform-origin: left center; background: var(--rd-gold); animation: donation-activity-progress 5s linear forwards; }
@keyframes donation-activity-progress { from { transform: scaleX(0); } to { transform: scaleX(1); } }
[dir="rtl"] .donation-activity__progress { transform-origin: right center; }
@media (max-width: 520px) {
  .donation-activity { inset-block-end: 1rem; inset-inline: 1rem; width: auto; }
}
@media (prefers-reduced-motion: reduce) {
  .donation-activity { transition: none; transform: none; }
  .donation-activity__progress { animation: none; }
}

/* mobile menu button + drawer */
.rd-burger { display: none; width: 48px; height: 48px; border: none; background: none; color: var(--rd-ink); border-radius: 10px; align-items: center; justify-content: center; }
.rd-burger:hover { background: var(--rd-cream-2); }
.rd-mnav { display: none; }
@media (max-width: 1120px) {
  .rd-nav { display: none; }
  .rd-burger { display: inline-flex; margin-inline-start: auto; }
  .rd-head .rd-donate { margin-inline-start: 0; }
  .rd-mnav {
    display: block; position: absolute; top: 100%; inset-inline: 0; z-index: 49;
    background: rgba(255, 248, 236, .98); backdrop-filter: blur(12px);
    border-bottom: 1px solid rgba(8, 38, 30, .1); box-shadow: 0 18px 30px -18px rgba(8, 38, 30, .25);
    max-height: calc(100dvh - 76px); overflow-y: auto;
  }
  .rd-mnav[hidden],
  .rd-mnav.hidden { display: none; }
  .rd-mnav__inner { padding: 1rem clamp(1rem, 4vw, 2.5rem) 1.5rem; display: grid; gap: .2rem; }
  .rd-mnav a, .rd-mnav button.rd-mnav__item {
    display: flex; align-items: center; gap: .6rem; padding: .8rem .6rem; border-radius: 10px;
    font-weight: var(--type-weight-bold); font-size: var(--type-body); color: var(--rd-ink); background: none; border: none; cursor: pointer; text-align: start; font-family: inherit;
  }
  .rd-mnav a:hover, .rd-mnav button.rd-mnav__item:hover { background: var(--rd-cream-2); color: var(--rd-red); }
  .rd-mnav a[aria-current="page"] { background: var(--rd-cream-2); color: var(--rd-red); box-shadow: inset 3px 0 0 var(--rd-red); }
  .rd-mnav .rd-donate { justify-content: center; margin-top: .6rem; }
  .rd-mnav__sep { border-top: 1px solid rgba(8, 38, 30, .1); margin: .5rem 0; }
  .rd-mnav__label { font-size: var(--type-caption); font-weight: var(--type-weight-bold); letter-spacing: .08em; color: var(--rd-muted); padding: .4rem .6rem; }
}

/* ---------- donation widget (give-card) ---------- */
.rd-give {
  background: rgba(255, 248, 236, .06); border: 1px solid rgba(255, 248, 236, .16);
  border-radius: var(--rd-radius); padding: 1.4rem; max-width: 540px; margin-top: 1.25rem;
}
.rd-give__toggle {
  display: grid; grid-template-columns: 1fr 1fr; gap: 4px;
  background: rgba(8, 38, 30, .55); border: 1px solid rgba(255, 248, 236, .14);
  border-radius: 12px; padding: 4px; margin-bottom: 1rem;
}
.rd-give__toggle button { border: none; background: transparent; color: rgba(255, 248, 236, .75); font-weight: var(--type-weight-bold); font-size: var(--type-control); padding: .6rem; border-radius: 9px; font-family: inherit; cursor: pointer; }
.rd-give__toggle button[aria-pressed="true"] { background: var(--rd-cream); color: var(--rd-ink); }
.rd-give__toggle button[aria-pressed="true"]::before { content: "✓ "; font-weight: var(--type-weight-bold); }
.rd-give__frequency-note {
  display: block; color: var(--rd-on-dark); font-weight: var(--type-weight-bold); font-size: var(--type-control);
  text-align: center; padding: .6rem;
}
.rd-give__amounts { display: grid; grid-template-columns: repeat(4, 1fr); gap: .6rem; margin-bottom: .9rem; }
.rd-give__chip {
  border: 1.5px solid rgba(255, 248, 236, .25); background: transparent; color: var(--rd-on-dark);
  border-radius: 11px; padding: .65rem .3rem; font-weight: var(--type-weight-bold); font-size: var(--type-body); font-family: inherit; cursor: pointer;
  transition-property: color, background-color, border-color, transform;
  transition-duration: .15s;
  transition-timing-function: ease;
}
.rd-give__chip small { display: block; font-size: var(--type-caption); font-weight: var(--type-weight-semibold); opacity: .7; }
.rd-give__chip:hover { border-color: var(--rd-gold); }
.rd-give__chip[aria-pressed="true"] { background: var(--rd-gold); border-color: var(--rd-gold); color: var(--rd-ink); }
.rd-give__chip[aria-pressed="true"]::before { content: "✓ "; font-weight: var(--type-weight-bold); }
.rd-give__custom { display: none; margin-bottom: .9rem; }
.rd-give__custom.open { display: flex; gap: .5rem; align-items: center; }
.rd-give__custom input {
  flex: 1; border: 1.5px solid rgba(255, 248, 236, .3); background: rgba(8, 38, 30, .4); color: var(--rd-on-dark);
  border-radius: 11px; padding: .65rem .9rem; font-family: inherit; font-size: var(--type-body); font-weight: var(--type-weight-bold); min-height: 0;
}
.rd-give__custom input:focus { outline: 2px solid var(--rd-gold); border-color: var(--rd-gold); }
.rd-give__note { display: flex; gap: .55rem; align-items: flex-start; font-size: var(--type-small); color: rgba(255, 248, 236, .85); margin-bottom: 1rem; }
.rd-give__submit {
  width: 100%; border: none; border-radius: 12px; background: var(--rd-red); color: #fff;
  font-weight: var(--type-weight-bold); font-size: var(--type-body-lg); padding: 1rem; font-family: inherit; cursor: pointer;
  box-shadow: 0 10px 24px -8px rgba(200, 16, 46, .55); transition: background .15s ease, transform .15s ease;
}
.rd-give__submit:hover { background: var(--rd-red-dark); transform: translateY(-1px); }
.rd-give__submit:active { transform: scale(.96); }
.rd-give__submit:focus-visible { outline: 3px solid var(--rd-gold); outline-offset: 3px; }
.rd-give__submit--secondary {
  margin-top: .65rem; min-height: 44px; padding: .7rem 1rem; background: transparent;
  border: 1px solid rgba(255, 248, 236, .24); color: rgba(255, 248, 236, .82);
  box-shadow: none; font-size: var(--type-small); font-weight: var(--type-weight-bold);
}
.rd-give__submit--secondary:hover { background: rgba(255, 248, 236, .08); border-color: rgba(255, 248, 236, .42); color: #fff; }

.stripe-checkout-form { display: grid; gap: .7rem; }
.stripe-checkout-form__method {
  display: flex; align-items: center; gap: .75rem; min-width: 0; padding: .8rem;
  border-radius: 14px; background: var(--rd-cream-2);
  box-shadow: inset 0 0 0 1px rgba(8, 38, 30, .09), 0 8px 22px -18px rgba(8, 38, 30, .45);
}
.stripe-checkout-form__icon {
  flex: none; display: grid; place-items: center; width: 42px; height: 42px;
  border-radius: 10px; background: #fff; color: var(--rd-ink);
  box-shadow: 0 5px 14px -9px rgba(8, 38, 30, .7);
}
.stripe-checkout-form__icon svg { width: 23px; height: 23px; stroke: currentColor; stroke-width: 1.7; }
.stripe-checkout-form__copy { display: grid; gap: .1rem; min-width: 0; flex: 1; }
.stripe-checkout-form__copy strong { color: var(--rd-ink); font-size: var(--type-control); line-height: var(--type-leading-heading); }
.stripe-checkout-form__copy small { color: var(--rd-muted); font-size: var(--type-caption); line-height: var(--type-leading-small); text-wrap: pretty; }
.stripe-checkout-form__amount {
  flex: none; color: var(--rd-ink); font-size: var(--type-control); font-weight: var(--type-weight-bold);
  font-variant-numeric: tabular-nums;
}
.stripe-checkout-form__submit {
  display: flex; align-items: center; justify-content: space-between; gap: .75rem;
  width: 100%; min-height: 50px; padding: .8rem 1rem; border: 0; border-radius: 12px;
  background: var(--rd-red); color: #fff; cursor: pointer; font: inherit; font-size: var(--type-control); font-weight: var(--type-weight-bold);
  box-shadow: 0 12px 26px -12px rgba(200, 16, 46, .62);
  transition-property: background-color, box-shadow, transform;
  transition-duration: .18s;
  transition-timing-function: cubic-bezier(.2, 0, 0, 1);
}
.stripe-checkout-form__submit:hover { background: var(--rd-red-dark); box-shadow: 0 15px 30px -13px rgba(200, 16, 46, .7); transform: translateY(-1px); }
.stripe-checkout-form__submit:active { transform: scale(.96); }
.stripe-checkout-form__submit:focus-visible { outline: 3px solid var(--rd-gold); outline-offset: 3px; }
.stripe-checkout-form__arrow { font-size: var(--type-h3); font-weight: var(--type-weight-medium); line-height: var(--type-leading-tight); transform: translateY(-1px); }
[dir="rtl"] .stripe-checkout-form__arrow { transform: translateY(-1px) rotate(180deg); }
.stripe-checkout-form__security {
  display: flex; justify-content: center; align-items: center; gap: .4rem;
  margin: 0; color: var(--rd-muted); font-size: var(--type-caption); line-height: var(--type-leading-small);
}
.stripe-checkout-form__security span { color: var(--rd-olive); font-size: .55rem; }
.rd-give .stripe-checkout-form__method {
  background: rgba(255, 248, 236, .08);
  box-shadow: inset 0 0 0 1px rgba(255, 248, 236, .17), 0 10px 24px -18px rgba(0, 0, 0, .65);
}
.rd-give .stripe-checkout-form__icon { background: var(--rd-cream); }
.rd-give .stripe-checkout-form__copy strong,
.rd-give .stripe-checkout-form__amount { color: var(--rd-on-dark); }
.rd-give .stripe-checkout-form__copy small,
.rd-give .stripe-checkout-form__security { color: rgba(255, 248, 236, .68); }
.rd-give__gateway-preview { margin-bottom: .75rem; }
.rd-give__gateway-list { display: flex; flex-wrap: wrap; gap: .15rem .45rem; }
.rd-give__gateway-list span { display: inline-flex; align-items: center; gap: .45rem; white-space: nowrap; }
.rd-give__gateway-list span + span::before { color: var(--rd-gold); content: "·"; }
.rd-give > .rd-give__submit { text-decoration: none; }
.rd-give > .rd-give__submit[aria-disabled="true"] { cursor: not-allowed; opacity: .55; pointer-events: none; transform: none; box-shadow: none; }
.rd-give__trust { display: flex; gap: 1.1rem; flex-wrap: wrap; margin-top: .9rem; font-size: .77rem; color: rgba(255, 248, 236, .65); }
.rd-give__trust span { display: inline-flex; align-items: center; }
.rd-give__trust span + span { padding-inline-start: 1.1rem; border-inline-start: 1px solid rgba(255, 248, 236, .2); }

/* light-surface variant of the widget (checkout-like contexts) */
.rd-give--light { background: #fff; border-color: rgba(8, 38, 30, .12); }
.rd-give--light .rd-give__toggle { background: var(--rd-cream-2); border-color: rgba(8, 38, 30, .12); }
.rd-give--light .rd-give__toggle button { color: var(--rd-muted); }
.rd-give--light .rd-give__toggle button[aria-pressed="true"] { background: #fff; color: var(--rd-ink); box-shadow: 0 2px 6px rgba(0, 0, 0, .08); }
.rd-give--light .rd-give__chip { border-color: rgba(8, 38, 30, .2); color: var(--rd-ink); }
.rd-give--light .rd-give__chip:hover { border-color: var(--rd-red); }
.rd-give--light .rd-give__chip[aria-pressed="true"] { background: var(--rd-red); border-color: var(--rd-red); color: #fff; }
.rd-give--light .rd-give__note { color: var(--rd-muted); }
.rd-give--light .rd-give__trust { color: var(--rd-muted); }
.rd-give--light .rd-give__custom input { background: #fff; color: var(--rd-ink); border-color: rgba(8, 38, 30, .2); }
.rd-give--light .stripe-checkout-form__method { background: var(--rd-cream-2); box-shadow: inset 0 0 0 1px rgba(8, 38, 30, .09); }
.rd-give--light .stripe-checkout-form__copy strong,
.rd-give--light .stripe-checkout-form__amount { color: var(--rd-ink); }
.rd-give--light .stripe-checkout-form__copy small,
.rd-give--light .stripe-checkout-form__security { color: var(--rd-muted); }
.rd-give--light .rd-give__submit--secondary { border-color: rgba(8, 38, 30, .18); color: var(--rd-muted); }
.rd-give--light .rd-give__submit--secondary:hover { background: var(--rd-cream-2); border-color: rgba(8, 38, 30, .3); color: var(--rd-ink); }

/* ---------- heroes ---------- */
.rd-hero {
  position: relative;
  display: grid;
  min-height: calc(100vh - 76px);
  min-height: calc(100svh - 76px);
  overflow: hidden;
  background: var(--rd-ink);
  color: var(--rd-on-dark);
}
.rd-hero .rd-wrap {
  display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(2rem, 5vw, 4rem);
  min-height: inherit; align-items: center; padding-block: clamp(1.75rem, 2.5vw, 2.5rem); position: relative; z-index: 1;
}
.rd-hero .rd-wrap > * { min-width: 0; }
.rd-hero .rd-eyebrow { margin-bottom: .75rem; }
.rd-hero h1 { margin-bottom: .75rem; }
.rd-hero h1,
.rd-dark .rd-sec-head .rd-h-section,
.rd-pillars h3,
.rd-program h3,
.rd-report h3,
.rd-record h3,
.rd-partner__grid > div:first-child > h2,
.rd-partner__way h3,
.rd-mailcard h3,
.rd-finale h2 {
  color: var(--rd-on-dark);
}
.rd-hero__art { position: relative; }
.rd-hero__frame { border-radius: 22px; overflow: hidden; box-shadow: 0 30px 60px -20px rgba(0, 0, 0, .55); }
.rd-hero__frame img { width: 100%; aspect-ratio: 4/3.4; object-fit: cover; display: block; }
.rd-hero__frame--tall img { aspect-ratio: 4/4.4; }
.rd-hero__stats { display: flex; gap: 2.2rem; margin-top: 1.8rem; flex-wrap: wrap; }
.rd-hero__stats .num { font-size: 2.3rem; font-weight: var(--type-weight-bold); color: var(--rd-gold); line-height: var(--type-leading-tight); }
.rd-hero__stats .lbl { font-size: var(--type-small); color: rgba(255, 248, 236, .7); }
.rd-hero__browse { display: inline-flex; min-height: 48px; align-items: center; gap: .45rem; margin-top: 1rem; border: 1px solid rgba(255, 248, 236, .45); border-radius: 11px; padding: .7rem 1rem; color: #fff; font-size: var(--type-small); font-weight: var(--type-weight-bold); }
.rd-hero__browse:hover { border-color: var(--rd-gold); color: var(--rd-gold); }

.rd-hero__caption {
  position: absolute; inset-inline: 1rem; bottom: 1rem;
  background: rgba(8, 38, 30, .78); backdrop-filter: blur(6px);
  color: rgba(255, 248, 236, .92); font-size: var(--type-label);
  border-radius: 12px; padding: .65rem .9rem; display: flex; justify-content: space-between; gap: .8rem; align-items: center;
}
.rd-hero__caption a { color: var(--rd-gold); font-weight: var(--type-weight-bold); white-space: nowrap; }

/* ---------- need band (homepage stats) ---------- */
.rd-needband { background: var(--rd-cream); border-bottom: 1px solid rgba(8, 38, 30, .08); }
.rd-needband .rd-wrap { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr)); gap: 1px; padding-block: 0; }
.rd-needband__cell { min-width: 0; background: var(--rd-cream); padding: 1.9rem 1.4rem; text-align: start; }
.rd-needband__cell .num { font-size: clamp(1.9rem, 3.4vw, 2.7rem); font-weight: var(--type-weight-bold); color: var(--rd-red); line-height: var(--type-leading-tight); font-variant-numeric: tabular-nums; }
.rd-needband__cell .lbl { font-size: var(--type-small); font-weight: var(--type-weight-semibold); color: var(--rd-muted); margin-top: .35rem; }

/* ---------- stats section (reuses needband cells) ---------- */
.rd-stats { background: var(--rd-cream); padding-block: clamp(2.5rem, 5vw, 4.5rem); }
.rd-stats__head { max-inline-size: 40rem; margin-bottom: clamp(1.6rem, 3vw, 2.4rem); }
.rd-stats__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr)); gap: 1px; background: rgba(8, 38, 30, .08); border: 1px solid rgba(8, 38, 30, .08); }
.rd-stats__grid .rd-needband__cell { padding: 1.6rem 1.4rem; }

/* ---------- mission pillars ---------- */
.rd-dark { background: var(--rd-ink); color: var(--rd-on-dark); }
.rd-pillars { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.6rem; margin-top: clamp(1.8rem, 4vw, 3rem); }
.rd-pillar { border-top: 2px solid rgba(255, 248, 236, .2); padding-top: 1.3rem; text-align: start; }
.rd-pillar h3 { font-size: var(--type-h3); margin: 0 0 .6rem; }
.rd-pillar p { font-size: var(--type-control); color: rgba(255, 248, 236, .75); }

/* ---------- money loop ---------- */
.rd-loop { background: var(--rd-cream-2); }
.rd-loop__steps {
  --rd-loop-gap: clamp(1.5rem, 2vw, 2rem);
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--rd-loop-gap);
  margin-top: clamp(1.8rem, 4vw, 3rem);
}
.rd-loop__step { background: var(--rd-cream); border: 1px solid rgba(8, 38, 30, .1); border-radius: var(--rd-radius); padding: 1.6rem 1.3rem; position: relative; }
.rd-loop__step .n { width: 38px; height: 38px; border-radius: 50%; background: var(--rd-ink); color: var(--rd-on-dark); display: grid; place-items: center; font-weight: var(--type-weight-bold); font-size: var(--type-control); margin-bottom: .9rem; }
.rd-loop__step h3 { font-size: var(--type-body-lg); margin-bottom: .4rem; }
.rd-loop__step p { font-size: var(--type-small); color: var(--rd-muted); }
.rd-loop__step:not(:last-child)::after {
  position: absolute;
  top: 1.6rem;
  inset-inline-end: calc(-1 * var(--rd-loop-gap));
  width: var(--rd-loop-gap);
  height: 38px;
  content: "";
  pointer-events: none;
  background: var(--rd-red);
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14M14 6l6 6-6 6' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 22px 22px no-repeat;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14M14 6l6 6-6 6' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 22px 22px no-repeat;
}
[dir="rtl"] .rd-loop__step:not(:last-child)::after { transform: scaleX(-1); }

/* ---------- program cards ---------- */
.rd-programs { display: grid; grid-template-columns: 1fr 1fr; gap: 1.6rem; margin-top: clamp(1.8rem, 4vw, 3rem); }
.rd-program {
  border-radius: var(--rd-radius); overflow: hidden; background: var(--rd-ink); color: var(--rd-on-dark);
  display: flex; flex-direction: column; position: relative; min-height: 420px;
}
.rd-program .art { height: 230px; overflow: hidden; }
.rd-program .art img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.rd-program:hover .art img { transform: scale(1.04); }
.rd-program .body { padding: 1.7rem 1.7rem 1.8rem; display: flex; flex-direction: column; align-items: flex-start; gap: .7rem; flex: 1; text-align: start; }
.rd-program .tag { font-size: var(--type-caption); font-weight: var(--type-weight-bold); letter-spacing: .08em; color: var(--rd-gold); }
.rd-program h3 { font-size: var(--type-h3); }
.rd-program p { font-size: var(--type-control); color: rgba(255, 248, 236, .75); flex: 1; }
.rd-program .meta { display: flex; gap: 1.4rem; font-size: var(--type-small); border-top: 1px solid rgba(255, 248, 236, .15); padding-top: .9rem; margin-top: .3rem; }
.rd-program .meta b { display: block; font-size: var(--type-body-lg); color: var(--rd-gold); font-variant-numeric: tabular-nums; }
.rd-program .meta span { color: rgba(255, 248, 236, .65); }
.rd-card-cta {
  display: inline-flex; min-height: 48px; max-width: 100%; align-items: center; justify-content: center; gap: .5rem; margin-top: 1rem;
  font-weight: var(--type-weight-bold); line-height: var(--type-leading-heading); text-align: center; color: #fff; background: var(--rd-red); border-radius: 11px; padding: .75rem 1.3rem; width: fit-content;
}
.rd-card-cta:hover { background: var(--rd-red-dark); color: #fff; }

/* ---------- field reports wall ---------- */
.rd-reports-grid { display: grid; grid-template-columns: 1.35fr 1fr 1fr; gap: 1.3rem; margin-top: clamp(1.8rem, 4vw, 3rem); }
.rd-report { position: relative; border-radius: var(--rd-radius); overflow: hidden; min-height: 300px; display: flex; align-items: flex-end; color: #fff; }
.rd-report:first-child { grid-row: span 2; min-height: 480px; }
.rd-report img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.rd-report::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(8, 38, 30, .88) 0%, rgba(8, 38, 30, .25) 45%, transparent 70%); }
.rd-report .cap { position: relative; z-index: 1; padding: 1.2rem; }
.rd-report .cap .kind { font-size: var(--type-caption); font-weight: var(--type-weight-bold); letter-spacing: .09em; color: var(--rd-gold); }
.rd-report .cap h3 { font-size: var(--type-h4); margin: .3rem 0 .2rem; }
.rd-report:first-child .cap h3 { font-size: var(--type-h3); }
.rd-report .cap p { font-size: var(--type-label); color: rgba(255, 248, 236, .85); }
.rd-report .cap time { display: block; margin-top: .25rem; color: rgba(255, 248, 236, .72); font-size: var(--type-caption); }
.rd-report__fallback {
  position: relative;
  z-index: 2;
  display: grid;
  width: 100%;
  min-height: inherit;
  align-content: end;
  gap: .35rem;
  padding: 1.3rem;
  color: var(--rd-on-dark);
  background: var(--rd-ink);
}
.rd-report__fallback[hidden] { display: none; }
.rd-report__fallback > span { display: grid; width: 44px; height: 44px; margin-bottom: .35rem; place-items: center; border: 1px solid rgba(255, 248, 236, .18); border-radius: 12px; color: var(--rd-gold); }
.rd-report__fallback .kind { color: var(--rd-gold); font-size: var(--type-caption); font-weight: var(--type-weight-bold); letter-spacing: .09em; text-transform: uppercase; }
.rd-report__fallback h3 { margin: 0; color: #fff; font-size: var(--type-h4); }
.rd-report__fallback time { color: rgba(255, 248, 236, .65); font-size: var(--type-caption); }
.rd-report__fallback > p:last-child { max-width: 40ch; margin: .15rem 0 0; color: rgba(255, 248, 236, .75); font-size: var(--type-label); line-height: var(--type-leading-body); }
.rd-report--unavailable { border: 1px solid rgba(8, 38, 30, .12); background: var(--rd-ink); }
.rd-report--unavailable::after { display: none; }

.rd-text-link { font-weight: var(--type-weight-bold); color: var(--rd-red); border-bottom: 2px solid var(--rd-red); padding-bottom: 2px; }
.rd-text-link:hover { color: var(--rd-red-dark); border-color: var(--rd-red-dark); }

/* ---------- chips ---------- */

.rd-chip {
  border: 1.5px solid rgba(8, 38, 30, .22); border-radius: 999px; background: transparent; color: var(--rd-ink);
  padding: .45rem 1.05rem; font-weight: var(--type-weight-bold); font-size: var(--type-label); font-family: inherit; cursor: pointer; text-decoration: none;
}
.rd-chip:hover { border-color: var(--rd-red); color: var(--rd-red); }
.rd-chip[aria-pressed="true"], .rd-chip.active { background: var(--rd-ink); border-color: var(--rd-ink); color: var(--rd-on-dark); }

.rd-chip--ondark[aria-pressed="true"], .rd-chip--ondark.active { background: var(--rd-gold); border-color: var(--rd-gold); color: var(--rd-ink); }

/* ---------- child card ---------- */
.rd-child-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.3rem; }
.rd-child-link {
  display: flex; min-width: 0; border-radius: var(--rd-radius); color: inherit;
  text-decoration: none; cursor: pointer;
}
.rd-child-link .rd-child { width: 100%; }
.rd-child-link:focus-visible { outline: 3px solid var(--rd-gold); outline-offset: 4px; }
.rd-child-link:focus-visible .rd-child { transform: translateY(-3px); box-shadow: 0 16px 34px -14px rgba(8, 38, 30, .22); }
.rd-child-link:hover .rd-soft-btn { background: var(--rd-red); color: #fff; }
.rd-child-link:hover .rd-sponsor-btn { background: var(--rd-red-dark); color: #fff; }
.rd-child-link:active .rd-child { transform: scale(.96); }
.rd-child {

  background: #fff; border: 1px solid rgba(8, 38, 30, .09); border-radius: var(--rd-radius);
  overflow: hidden; display: flex; flex-direction: column; transition: transform .18s ease, box-shadow .18s ease;
  color: var(--rd-ink);
}
.rd-child:hover { transform: translateY(-3px); box-shadow: 0 16px 34px -14px rgba(8, 38, 30, .22); }
.rd-child--gold { border: 1.5px solid var(--rd-gold); }
.rd-child__portrait { aspect-ratio: 5/6; position: relative; display: grid; place-items: center; overflow: hidden; }
.rd-child__texture { position: absolute; inset: 0; opacity: .9; }
.rd-child__photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; outline: 1px solid oklch(0 0 0 / .1); outline-offset: -1px; }
.rd-avatar {
  width: 92px; height: 92px; border-radius: 50%; display: grid; place-items: center;
  font-size: var(--type-h2); font-weight: var(--type-weight-bold); color: var(--rd-on-dark); position: relative; z-index: 1;
  box-shadow: 0 8px 20px -6px rgba(0, 0, 0, .3);
}
.rd-avatar--gold { border: 2px solid var(--rd-gold); }
.rd-wait {
  position: absolute; top: .85rem; inset-inline-start: .85rem; z-index: 2;
  background: rgba(255, 248, 236, .94); color: var(--rd-ink); font-size: .73rem; font-weight: var(--type-weight-bold);
  border-radius: 999px; padding: .3rem .75rem; display: inline-flex; align-items: center; gap: .3rem;
}
.rd-wait--gold { background: var(--rd-gold); }
.rd-child__body { padding: 1.2rem 1.2rem 1.3rem; display: flex; flex: 1; justify-content: space-between; align-items: center; }
.rd-child__name { font-size: var(--type-h4) !important; font-weight: var(--type-weight-bold); display: flex; align-items: baseline; gap: .5rem; flex-wrap: wrap; }
.rd-child__name span { font-size: var(--type-label); font-weight: var(--type-weight-semibold); color: var(--rd-muted); }
.rd-child__line { font-size: var(--type-small); color: var(--rd-muted); flex: 1; }
.rd-progress { height: 6px; border-radius: 99px; background: rgba(8, 38, 30, .1); overflow: hidden; margin-top: .4rem; }
.rd-progress i { display: block; height: 100%; background: var(--rd-olive); border-radius: 99px; }

.rd-progress__lbl { display: flex; justify-content: space-between; font-size: var(--type-caption); color: var(--rd-muted); margin-top: .3rem; }
.rd-progress__lbl b { color: var(--rd-olive); font-variant-numeric: tabular-nums; }
.rd-child__cta { margin-top: .75rem; display: flex; align-items: center; justify-content: space-between; gap: .8rem; }
.rd-child__cta .price { font-size: var(--type-small); font-weight: var(--type-weight-bold); font-variant-numeric: tabular-nums; }
.rd-child__cta .price small { display: block; font-size: var(--type-caption); color: var(--rd-muted); font-weight: var(--type-weight-semibold); }
.rd-soft-btn { border: none; background: var(--rd-ink); color: var(--rd-on-dark); border-radius: 11px; font-weight: var(--type-weight-bold); font-size: var(--type-small); padding: .68rem 1.15rem; font-family: inherit; cursor: pointer; text-decoration: none; display: inline-flex; align-items: center; }
.rd-soft-btn:hover { background: var(--rd-red); color: #fff; }
.rd-sponsor-btn { border: none; background: var(--rd-red); color: #fff; border-radius: 11px; font-weight: var(--type-weight-bold); font-size: var(--type-small); padding: .68rem 1.15rem; font-family: inherit; cursor: pointer; text-decoration: none; display: inline-flex; align-items: center; }
.rd-sponsor-btn:hover { background: var(--rd-red-dark); color: #fff; }

/* ---------- trust block (interleaved) ---------- */
.rd-trustblock {
  grid-column: 1/-1; background: var(--rd-ink); color: var(--rd-on-dark); border-radius: var(--rd-radius);
  padding: 1.9rem 2rem; display: grid; grid-template-columns: 1fr 1.4fr; gap: 2rem; align-items: center;
}
.rd-trustblock h3 { font-size: var(--type-h3); margin-bottom: .5rem; }
.rd-trustblock p { font-size: var(--type-control); color: rgba(255, 248, 236, .78); }
.rd-trustblock__steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.rd-trustblock__steps div { border-top: 2px solid rgba(255, 248, 236, .2); padding-top: .8rem; font-size: var(--type-label); color: rgba(255, 248, 236, .75); }
.rd-trustblock__steps b { display: block; color: var(--rd-gold); font-size: var(--type-control); margin-bottom: .2rem; }

/* ---------- toolbar (orphans listing) ---------- */
.rd-toolbar { position: sticky; top: 76px; z-index: 40; background: var(--rd-cream); border-bottom: 1px solid rgba(8, 38, 30, .1); padding-block: 1rem; }
.rd-toolbar .rd-wrap { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; }
.rd-price-line { font-size: var(--type-control); font-weight: var(--type-weight-bold); }
.rd-price-line b { color: var(--rd-red); font-size: var(--type-h4); font-variant-numeric: tabular-nums; }
.rd-filters { display: flex; gap: .55rem; flex-wrap: wrap; margin-inline-start: auto; }
.rd-select {
  appearance: none; border: 1.5px solid rgba(8, 38, 30, .2);
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%2308261E' stroke-width='1.5' fill='none'/%3E%3C/svg%3E") no-repeat left .9rem center;
  border-radius: 11px; padding: .6rem 1rem .6rem 2.2rem; font-family: inherit; font-weight: var(--type-weight-bold); font-size: var(--type-small); color: var(--rd-ink); min-width: 128px; min-height: 0;
}
[dir="ltr"] .rd-select { background-position: right .9rem center; padding: .6rem 2.2rem .6rem 1rem; }
.rd-search { border: 1.5px solid rgba(8, 38, 30, .2); border-radius: 11px; padding: .6rem 1rem; font-family: inherit; font-size: var(--type-small); min-width: 190px; background: #fff; min-height: 0; }
.rd-search:focus, .rd-select:focus { outline: 2px solid var(--rd-gold); outline-offset: 1px; border-color: var(--rd-gold); box-shadow: none; }

/* HTMX skeleton must never intercept card clicks while transparent. */
#orphans-loading-indicator {
  opacity: 0;
  visibility: hidden;
  pointer-events: none !important;
}

/* ---------- load more / empty states ---------- */
.rd-loadmore { margin-top: 2.4rem; text-align: center; }
.rd-load-btn { border: 2px solid var(--rd-ink); background: transparent; color: var(--rd-ink); border-radius: 12px; font-weight: var(--type-weight-bold); font-size: var(--type-body); padding: .85rem 2.6rem; font-family: inherit; cursor: pointer; }
.rd-load-btn:hover { background: var(--rd-ink); color: var(--rd-on-dark); }
.rd-loadmore .hint { display: block; margin-top: .7rem; font-size: var(--type-label); color: var(--rd-muted); }
.rd-empty { margin-top: 3rem; background: var(--rd-cream-2); border: 1px dashed rgba(8, 38, 30, .25); border-radius: var(--rd-radius); padding: 2.2rem; text-align: center; }
.rd-empty h3 { font-size: var(--type-h4); margin-bottom: .5rem; }
.rd-empty p { color: var(--rd-muted); max-width: 52ch; margin: 0 auto 1.2rem; }

/* ---------- record card / impact ---------- */
.rd-impact { background: var(--rd-cream-2); }

/* ---------- partner ---------- */
.rd-partner__grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(2rem, 5vw, 4rem); align-items: center; }
.rd-partner__ways { display: grid; gap: 1rem; margin-top: 1.8rem; }
.rd-partner__way { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: start; gap: .85rem; border-top: 1px solid rgba(255, 248, 236, .15); padding-top: 1rem; text-align: start; }
.rd-partner__index { color: var(--rd-gold); font-size: var(--type-caption); font-weight: var(--type-weight-bold); letter-spacing: .12em; font-variant-numeric: tabular-nums; }
.rd-partner__way h3 { font-size: var(--type-body-lg); margin-bottom: .2rem; }
.rd-partner__way p { font-size: var(--type-small); color: rgba(255, 248, 236, .7); }
.rd-mailcard { background: rgba(255, 248, 236, .06); border: 1px solid rgba(255, 248, 236, .16); border-radius: var(--rd-radius); padding: 1.8rem; }
.rd-mailcard p { font-size: var(--type-control); color: rgba(255, 248, 236, .8); margin: .6rem 0 1.2rem; }

/* ---------- finale ---------- */
.rd-finale { background: var(--rd-red); color: #fff; text-align: center; padding-block: clamp(2.5rem, 5vw, 4.5rem); }
.rd-finale .rd-h-section { max-width: 20ch; margin-inline: auto; }
.rd-finale p { margin: 1rem auto 2rem; max-width: 52ch; color: rgba(255, 255, 255, .88); }
.rd-finale .actions { display: flex; gap: .9rem; justify-content: center; flex-wrap: wrap; }
.rd-btn-light { background: #fff; color: var(--rd-red); border: none; border-radius: 12px; font-weight: var(--type-weight-bold); font-size: var(--type-body); padding: .95rem 2rem; font-family: inherit; cursor: pointer; }
.rd-btn-light:hover { background: var(--rd-cream); color: var(--rd-red-dark); }
.rd-btn-outline-light { background: transparent; color: #fff; border: 2px solid rgba(255, 255, 255, .7); border-radius: 12px; font-weight: var(--type-weight-bold); font-size: var(--type-body); padding: .95rem 2rem; font-family: inherit; cursor: pointer; }
.rd-btn-outline-light:hover { border-color: #fff; color: #fff; }

/* ---------- campaign card (food aid) ---------- */
.rd-campaign-sec { background: var(--rd-cream-2); }

.rd-campaign { background: #fff; border: 1px solid rgba(8, 38, 30, .1); border-radius: var(--rd-radius); overflow: hidden; box-shadow: 0 24px 50px -24px rgba(8, 38, 30, .25); }

.rd-campaign__head .tag { font-size: var(--type-caption); font-weight: var(--type-weight-bold); letter-spacing: .08em; color: var(--rd-gold); }

.rd-campaign__head .dates { font-size: var(--type-label); color: rgba(255, 248, 236, .6); white-space: nowrap; }

.rd-goal-row .raised { font-size: var(--type-h2); font-weight: var(--type-weight-bold); color: var(--rd-red); font-variant-numeric: tabular-nums; }
.rd-goal-row .goal { font-size: var(--type-control); color: var(--rd-muted); }
.rd-provides { margin: 1.3rem 0; }
.rd-provides h4 { font-size: var(--type-small); font-weight: var(--type-weight-bold); color: var(--rd-muted); margin-bottom: .7rem; }

.rd-btn-red { border: none; border-radius: 12px; background: var(--rd-red); color: #fff; font-weight: var(--type-weight-bold); font-size: var(--type-body); padding: .95rem; width: 100%; font-family: inherit; cursor: pointer; text-align: center; display: block; text-decoration: none; }
.rd-btn-red:hover { background: var(--rd-red-dark); color: #fff; }
.rd-btn-ghost { border: 1.5px solid rgba(8, 38, 30, .25); background: transparent; color: var(--rd-ink); border-radius: 12px; font-weight: var(--type-weight-bold); font-size: var(--type-control); padding: .8rem; width: 100%; font-family: inherit; cursor: pointer; text-align: center; display: block; text-decoration: none; }
.rd-btn-ghost:hover { border-color: var(--rd-ink); }

/* donation steps */

.rd-donstep .n { flex: none; width: 36px; height: 36px; border-radius: 50%; background: var(--rd-red); color: #fff; display: grid; place-items: center; font-weight: var(--type-weight-bold); }

/* ---------- orphan profile ---------- */
.rd-crumbs { padding: 1.1rem 0 0; font-size: var(--type-small); color: var(--rd-muted); }
.rd-crumbs a { color: var(--rd-muted); }
.rd-crumbs a:hover { color: var(--rd-red); }
.rd-crumbs .sep { margin: 0 .5rem; opacity: .5; }
.rd-crumbs .cur { color: var(--rd-ink); font-weight: var(--type-weight-bold); }

.rd-phero {
  position: relative;
  display: grid;
  min-height: calc(100vh - 76px);
  min-height: calc(100svh - 76px);
  margin-top: 1rem;
  overflow: hidden;
  border-radius: var(--rd-radius);
  background: var(--rd-ink);
  color: var(--rd-on-dark);
}
.rd-phero .rd-wrap { display: grid; min-height: inherit; grid-template-columns: 380px 1fr; gap: clamp(2rem, 4vw, 3.5rem); align-items: center; padding-block: clamp(2rem, 4vw, 3.5rem); position: relative; z-index: 1; }
.rd-portrait { position: relative; }
.rd-portrait .frame { border-radius: 20px; overflow: hidden; box-shadow: 0 24px 50px -18px rgba(0, 0, 0, .6); aspect-ratio: 4/4.6; }
.rd-portrait .frame img { width: 100%; height: 100%; object-fit: cover; display: block; }
.rd-portrait__badge { position: absolute; bottom: 14px; inset-inline-start: 14px; background: rgba(255, 248, 236, .95); color: var(--rd-ink); font-size: var(--type-caption); font-weight: var(--type-weight-bold); border-radius: 999px; padding: .4rem .9rem; display: inline-flex; align-items: center; gap: .3rem; }
.rd-pinfo .rd-eyebrow { margin-bottom: .9rem; }
.rd-pinfo h1 { margin-bottom: .6rem; }

.rd-sponsor-bar { position: sticky; top: 76px; z-index: 45; background: var(--rd-cream); border-bottom: 1px solid rgba(8, 38, 30, .1); padding-block: 1rem; box-shadow: 0 2px 12px -4px rgba(8, 38, 30, .08); }
.rd-sponsor-bar .rd-wrap { display: flex; align-items: center; gap: 1.4rem; flex-wrap: wrap; }
.rd-sponsor-bar .who { display: flex; align-items: center; gap: .8rem; }
.rd-sponsor-bar .mini-avatar { width: 44px; height: 44px; border-radius: 50%; background: var(--rd-olive); color: var(--rd-on-dark); display: grid; place-items: center; font-weight: var(--type-weight-bold); font-size: var(--type-body); }
.rd-sponsor-bar .who .name { font-weight: var(--type-weight-bold); font-size: var(--type-body); }
.rd-sponsor-bar .who .age { font-size: var(--type-label); color: var(--rd-muted); }
.rd-sponsor-bar .progress-info { margin-inline-start: auto; display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; }
.rd-sponsor-bar .raised-line { font-size: var(--type-control); font-weight: var(--type-weight-bold); }
.rd-sponsor-bar .raised-line b { color: var(--rd-red); font-size: var(--type-h4); font-variant-numeric: tabular-nums; }
.rd-sponsor-bar .rd-progress { width: 180px; height: 8px; margin-top: 0; }
.rd-sponsor-bar .remaining { font-size: var(--type-label); color: var(--rd-muted); }
.rd-btn-sponsor-lg { border: none; border-radius: 12px; background: var(--rd-red); color: #fff; font-weight: var(--type-weight-bold); font-size: var(--type-body); padding: .85rem 1.8rem; box-shadow: 0 8px 20px -6px rgba(200, 16, 46, .5); font-family: inherit; cursor: pointer; }
.rd-btn-sponsor-lg:hover { background: var(--rd-red-dark); }
.rd-btn-gift { border: 2px solid var(--rd-ink); background: transparent; color: var(--rd-ink); border-radius: 12px; font-weight: var(--type-weight-bold); font-size: var(--type-control); padding: .7rem 1.3rem; font-family: inherit; cursor: pointer; }
.rd-btn-gift:hover { background: var(--rd-ink); color: var(--rd-on-dark); }

.rd-pbody { padding-block: 3rem 4.5rem; }
.rd-pgrid { display: grid; grid-template-columns: 1fr 340px; gap: 2.5rem; align-items: start; }
.rd-maincol { display: grid; gap: 2rem; }
.rd-sidecol { display: grid; gap: 1.5rem; }

.rd-details { display: grid; grid-template-columns: 1fr 1fr; gap: .9rem; }
.rd-detail { background: var(--rd-cream-2); border-radius: 12px; padding: 1rem 1.1rem; }
.rd-detail .lbl { font-size: var(--type-caption); font-weight: var(--type-weight-bold); color: var(--rd-muted); letter-spacing: .05em; margin-bottom: .25rem; }
.rd-detail .val { font-size: var(--type-body); font-weight: var(--type-weight-bold); color: var(--rd-ink); }

.rd-need { display: flex; align-items: center; gap: .9rem; background: var(--rd-cream-2); border-radius: 12px; padding: .9rem 1.1rem; }
.rd-need .icon { width: 38px; height: 38px; border-radius: 10px; background: var(--rd-ink); color: var(--rd-on-dark); display: grid; place-items: center; font-size: var(--type-body-lg); flex: none; }
.rd-need .txt { flex: 1; }
.rd-need .txt b { display: block; font-size: var(--type-control); }
.rd-need .txt span { font-size: var(--type-label); color: var(--rd-muted); }
.rd-need .pri { font-size: var(--type-caption); font-weight: var(--type-weight-bold); color: var(--rd-red); border: 1px solid var(--rd-red); border-radius: 999px; padding: .2rem .6rem; white-space: nowrap; }

.rd-provides-card { background: var(--rd-ink); color: var(--rd-on-dark); border-radius: var(--rd-radius); padding: 1.8rem; }
.rd-provides-card h3 { font-size: var(--type-h4); margin-bottom: 1.2rem; color: var(--rd-gold); }
.rd-provides-card ul { list-style: none; padding: 0; margin: 0; display: grid; gap: .9rem; }
.rd-provides-card li { display: flex; gap: .8rem; align-items: flex-start; font-size: var(--type-control); color: rgba(255, 248, 236, .85); }

.rd-giftcard { background: #fff; border: 1px solid rgba(8, 38, 30, .09); border-radius: var(--rd-radius); padding: 1.8rem; text-align: center; }
.rd-giftcard h3 { font-size: var(--type-body-lg); margin-bottom: .6rem; }
.rd-giftcard > p { font-size: var(--type-small); color: var(--rd-muted); margin-bottom: 1.2rem; }
.rd-giftcard__amounts { display: grid; grid-template-columns: repeat(3, 1fr); gap: .5rem; margin-bottom: 1rem; }
.rd-giftcard__amounts button { border: 1.5px solid rgba(8, 38, 30, .2); background: transparent; border-radius: 10px; padding: .6rem .3rem; font-weight: var(--type-weight-bold); font-size: var(--type-control); font-family: inherit; cursor: pointer; transition-property: color, background-color, border-color, transform; transition-duration: .15s; color: var(--rd-ink); }
.rd-giftcard__amounts button:hover { border-color: var(--rd-red); color: var(--rd-red); }
.rd-giftcard__amounts button.active { background: var(--rd-red); border-color: var(--rd-red); color: #fff; }

.rd-giftcard--note { background: var(--rd-cream-2); border-style: dashed; text-align: start; }
.rd-giftcard--note p { color: var(--rd-muted); font-size: var(--type-small); }

/* similar children */
.rd-sim-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.3rem; margin-top: clamp(1.8rem, 4vw, 3rem); }
.rd-sim-link { display: flex; min-width: 0; border-radius: var(--rd-radius); color: inherit; text-decoration: none; }
.rd-sim-link .rd-sim { width: 100%; }
.rd-sim-link:focus-visible { outline: 3px solid var(--rd-gold); outline-offset: 4px; }
.rd-sim-link:focus-visible .rd-sim { transform: translateY(-3px); box-shadow: 0 14px 30px -12px rgba(8, 38, 30, .2); }
.rd-sim-link:hover .rd-soft-btn { background: var(--rd-red); color: #fff; }
.rd-sim { background: #fff; border: 1px solid rgba(8, 38, 30, .09); border-radius: var(--rd-radius); overflow: hidden; transition: transform .18s, box-shadow .18s; }
.rd-sim:hover { transform: translateY(-3px); box-shadow: 0 14px 30px -12px rgba(8, 38, 30, .2); }
.rd-sim__portrait { aspect-ratio: 4/3; display: grid; place-items: center; position: relative; }
.rd-sim__portrait .av { width: 76px; height: 76px; border-radius: 50%; display: grid; place-items: center; font-size: var(--type-h3); font-weight: var(--type-weight-bold); color: var(--rd-on-dark); }
.rd-sim__body { padding: 1.1rem 1.2rem 1.2rem; }
.rd-sim__body h3 { font-size: var(--type-body-lg); font-weight: var(--type-weight-bold); margin-bottom: .2rem; }
.rd-sim__body .meta { font-size: var(--type-label); color: var(--rd-muted); margin-bottom: .6rem; }
.rd-sim__body .line { font-size: var(--type-small); color: var(--rd-muted); margin-bottom: .8rem; line-height: var(--type-leading-body); }
.rd-sim__body .cta { display: flex; justify-content: space-between; align-items: center; }
.rd-sim__body .price { font-size: var(--type-small); font-weight: var(--type-weight-bold); }
.rd-sim__body .price small { display: block; font-size: var(--type-caption); color: var(--rd-muted); font-weight: var(--type-weight-semibold); }

/* ---------- auth split layout ---------- */
.rd-auth { flex: 1; display: grid; grid-template-columns: 1fr 1fr; min-height: calc(100dvh - 76px); }
.rd-auth__side {
  background: var(--rd-ink);
  color: var(--rd-on-dark); position: relative; overflow: hidden; display: flex; align-items: stretch; isolation: isolate;
}
/* .rd-auth__side::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: radial-gradient(circle at 84% 12%, rgba(201, 162, 39, .16), transparent 30%), linear-gradient(transparent 70%, rgba(0, 0, 0, .16));
}
.rd-auth__side::after {
  content: ""; position: absolute; inset-inline-start: -120px; bottom: -120px; width: 400px; height: 400px; border-radius: 50%;
  background: repeating-radial-gradient(circle at center, transparent 0 7px, rgba(255, 248, 236, .06) 7px 8px);
} */
.rd-auth__side .inner {
  width: min(100%, 560px); padding: clamp(2.2rem, 5vw, 4.5rem); position: relative; z-index: 2;
  display: flex; flex-direction: column; justify-content: center; gap: 1.7rem;
}
.rd-auth__brandline { display: flex; align-items: center; gap: .75rem; color: var(--rd-on-dark); }
.rd-auth__brandline > span:last-child { display: grid; gap: .12rem; }
.rd-auth__brandline strong { font-size: var(--type-body); letter-spacing: -.02em; }
.rd-auth__brandline small { color: rgba(255, 248, 236, .66); font-size: var(--type-caption); }
.rd-auth__brandmark {
  width: 42px; height: 42px; border-radius: 13px; display: grid; place-items: center;
  background: var(--rd-cream); color: var(--rd-olive); box-shadow: 0 8px 18px rgba(0, 0, 0, .14);
}
.rd-auth__brandmark .rd-ui-icon { width: 21px; height: 21px; }
.rd-auth__intro { display: grid; gap: .75rem; }
.rd-auth__side h1 { margin: 0; max-width: 15ch; color: var(--rd-on-dark) !important; font-size: clamp(2rem, 3.5vw, 2.85rem); font-weight: var(--type-weight-bold); line-height: var(--type-leading-tight); letter-spacing: -.035em; text-wrap: balance; }
.rd-auth__side p { color: rgba(255, 248, 236, .78); max-width: 44ch; line-height: var(--type-leading-body); }
.rd-auth__points { margin: 0; display: grid; gap: .65rem; max-width: 500px; }
.rd-auth__points div { display: flex; gap: .75rem; align-items: center; padding: .7rem .8rem; border: 1px solid rgba(255, 248, 236, .1); border-radius: 14px; background: rgba(255, 248, 236, .055); font-size: var(--type-small); line-height: var(--type-leading-small); color: rgba(255, 248, 236, .9); }
.rd-auth__point-icon { flex: 0 0 32px; width: 32px; height: 32px; display: grid; place-items: center; border-radius: 10px; background: rgba(201, 162, 39, .18); color: var(--rd-gold); }
.rd-auth__point-icon .rd-ui-icon { width: 17px; height: 17px; }
.rd-auth__promise { display: flex; align-items: center; gap: .45rem; width: fit-content; margin: 0; padding: .45rem .65rem; border-radius: 9px; background: rgba(8, 38, 30, .72); font-size: var(--type-label); color: rgba(255, 248, 236, .82) !important; }
.rd-auth__promise .rd-ui-icon { flex: none; width: 15px; height: 15px; color: var(--rd-gold); }
.rd-auth__side .frame-img { position: absolute; z-index: 1; inset-inline-end: -55px; bottom: -55px; width: min(390px, 54%); aspect-ratio: 4 / 3; border: 1px solid rgba(255, 248, 236, .16); border-radius: 22px; overflow: hidden; opacity: .3; transform: rotate(-4deg); box-shadow: 0 24px 55px rgba(0, 0, 0, .24); }
.rd-auth__side .frame-img::after { content: ""; position: absolute; inset: 0; background: linear-gradient(145deg, rgba(8, 38, 30, .05), rgba(8, 38, 30, .8)); }
.rd-auth__side .frame-img img { width: 100%; height: 100%; object-fit: cover; outline: 1px solid oklch(1 0 0 / .1); outline-offset: -1px; }
.rd-auth-terms { display: flex; min-width: 0; align-items: flex-start; gap: .6rem; margin: 1rem 0 1.2rem; color: var(--rd-muted); font-size: var(--type-label); line-height: var(--type-leading-small); }
.rd-auth-terms input { width: 18px; height: 18px; flex: none; margin-top: .1rem; accent-color: var(--rd-red); }
.rd-auth-terms a { color: var(--rd-red); font-weight: var(--type-weight-bold); text-decoration: underline; text-underline-offset: 2px; }
.rd-auth-terms:focus-within { outline: 3px solid var(--rd-gold); outline-offset: 4px; border-radius: 4px; }
.rd-auth__form { display: flex; align-items: center; justify-content: center; padding: clamp(2rem, 5vw, 4rem); }
.rd-formcard { width: 100%; max-width: 440px; }
.rd-formcard .kicker { font-size: var(--type-small); font-weight: var(--type-weight-bold); color: var(--rd-red); margin-bottom: .4rem; }
.rd-formcard h2 { font-size: var(--type-h2); font-weight: var(--type-weight-bold); margin-bottom: .4rem; }
.rd-formcard .sub { color: var(--rd-muted); font-size: var(--type-control); margin-bottom: 1.8rem; }

.rd-field { margin-bottom: 1.1rem; }
.rd-field label { display: block; font-size: var(--type-small); font-weight: var(--type-weight-bold); margin-bottom: .4rem; }
.rd-field .control { position: relative; }
.rd-field input, .rd-field select {
  width: 100%; border: 1.5px solid rgba(8, 38, 30, .2) !important; border-radius: 12px; background: #fff !important;
  padding: .85rem 1rem; font-family: inherit; font-size: var(--type-control); color: var(--rd-ink) !important; min-height: 0; box-shadow: none !important;
}
.rd-field input::placeholder { color: #9aa7a1 !important; }
.rd-field input:focus, .rd-field select:focus { outline: 2px solid var(--rd-gold); outline-offset: 1px; border-color: var(--rd-gold) !important; box-shadow: none !important; }
.rd-field .peek { position: absolute; inset-inline-end: .9rem; top: 50%; transform: translateY(-50%); background: none; border: none; font-size: var(--type-label); color: var(--rd-muted); font-weight: var(--type-weight-bold); cursor: pointer; font-family: inherit; }
.rd-field .hint { font-size: var(--type-label); color: var(--rd-muted); margin-top: .35rem; }
.rd-field.error input { border-color: var(--rd-red) !important; }
.rd-field .err-msg { display: none; font-size: var(--type-label); color: var(--rd-red); font-weight: var(--type-weight-bold); margin-top: .35rem; }
.rd-field.error .err-msg, .rd-field .err-msg.show { display: flex; gap: .3rem; align-items: center; }
.rd-check { display: flex; align-items: center; gap: .6rem; font-size: var(--type-small); margin: 1rem 0; }
.rd-check input { width: 18px; height: 18px; accent-color: var(--rd-red); }
.rd-form-foot { display: flex; justify-content: space-between; align-items: center; margin: .4rem 0 1.2rem; font-size: var(--type-small); }
.rd-form-foot a { color: var(--rd-red); font-weight: var(--type-weight-bold); }
.rd-btn-primary { width: 100%; border: none; border-radius: 12px; background: var(--rd-red); color: #fff; font-weight: var(--type-weight-bold); font-size: var(--type-body-lg); padding: 1rem; box-shadow: 0 10px 24px -8px rgba(200, 16, 46, .5); font-family: inherit; cursor: pointer; }
.rd-btn-primary:hover { background: var(--rd-red-dark); }
.rd-divider { display: flex; align-items: center; gap: 1rem; margin: 1.4rem 0; color: var(--rd-muted); font-size: var(--type-label); }
.rd-divider::before, .rd-divider::after { content: ""; flex: 1; height: 1px; background: rgba(8, 38, 30, .15); }
.rd-switch { text-align: center; font-size: var(--type-control); color: var(--rd-muted); }
.rd-switch a { color: var(--rd-red); font-weight: var(--type-weight-bold); }
.rd-secure-note { display: flex; gap: .5rem; justify-content: center; align-items: center; margin-top: 1.2rem; font-size: var(--type-label); color: var(--rd-muted); }

/* ---------- checkout: steps / summary / pay methods ---------- */

.rd-steps .rd-wrap { display: flex; align-items: center; justify-content: center; }

.rd-step .n { width: 28px; height: 28px; border-radius: 50%; background: rgba(8, 38, 30, .1); color: var(--rd-muted); display: grid; place-items: center; font-size: var(--type-label); font-weight: var(--type-weight-bold); }
.rd-step.active { color: var(--rd-ink); }
.rd-step.active .n { background: var(--rd-red); color: #fff; }
.rd-step.done { color: var(--rd-olive); }
.rd-step.done .n { background: var(--rd-olive); color: #fff; }

.rd-checkout { padding-block: 3rem 5rem; }
.rd-checkout__grid { display: grid; grid-template-columns: 1fr 400px; gap: 2.5rem; align-items: start; }
.rd-checkout__main { display: grid; gap: 2rem; }

.rd-summary { background: #fff; border: 1px solid rgba(8, 38, 30, .09); border-radius: var(--rd-radius); overflow: hidden; position: sticky; top: 2rem; }
.rd-summary__head { background: var(--rd-ink); color: var(--rd-on-dark); padding: 1.5rem 1.7rem; }
.rd-summary__head h3 { font-size: var(--type-body-lg); margin-bottom: .3rem; }
.rd-summary__head p { font-size: var(--type-label); color: rgba(255, 248, 236, .7); }
.rd-summary__body { padding: 1.5rem 1.7rem; }
.rd-summary__row { display: flex; justify-content: space-between; align-items: baseline; padding: .5rem 0; font-size: var(--type-control); }
.rd-summary__row .lbl { color: var(--rd-muted); }
.rd-summary__row .val { font-weight: var(--type-weight-bold); font-variant-numeric: tabular-nums; }
.rd-summary__row.total { border-top: 2px solid rgba(8, 38, 30, .1); margin-top: .8rem; padding-top: 1rem; }
.rd-summary__row.total .val { font-size: var(--type-h3); color: var(--rd-red); font-weight: var(--type-weight-bold); }
.rd-summary__row.total .lbl { font-weight: var(--type-weight-bold); color: var(--rd-ink); }
.rd-summary__impact { margin-top: 1rem; background: var(--rd-cream-2); border-radius: 10px; padding: .9rem 1rem; font-size: var(--type-label); color: var(--rd-muted); }
.rd-summary__impact b { color: var(--rd-olive); }
.rd-summary__trust { margin-top: 1rem; display: grid; gap: .4rem; font-size: var(--type-label); color: var(--rd-muted); }
.rd-summary__trust span { display: flex; gap: .4rem; align-items: center; }

.rd-co { background: #fff; border: 1px solid rgba(8, 38, 30, .09); border-radius: var(--rd-radius); padding: 1.8rem; }
.rd-co h2 { font-size: var(--type-h4); margin-bottom: 1.2rem; display: flex; align-items: center; gap: .6rem; }
.rd-co h2 .sn { width: 30px; height: 30px; border-radius: 50%; background: var(--rd-red); color: #fff; display: grid; place-items: center; font-size: var(--type-small); font-weight: var(--type-weight-bold); flex: none; }

.rd-amt.active { background: var(--rd-red); border-color: var(--rd-red); color: #fff; }
.rd-amt.active small { color: rgba(255, 255, 255, .8); }

.rd-freq button.active { background: #fff; color: var(--rd-ink); box-shadow: 0 2px 6px rgba(0, 0, 0, .08); }

.rd-paymethods { display: grid; gap: .7rem; }
.rd-paymethod { border: 1.5px solid rgba(8, 38, 30, .15); border-radius: 14px; overflow: hidden; transition-property: border-color, box-shadow; transition-duration: .15s; }
.rd-paymethod.active { border-color: var(--rd-red); }
.rd-paymethod__head { display: flex; align-items: center; gap: .8rem; padding: 1rem 1.2rem; cursor: pointer; background: #fff; }
.rd-paymethod__head:hover { background: var(--rd-cream-2); }
.rd-paymethod__head input { width: 18px; height: 18px; accent-color: var(--rd-red); }
.rd-paymethod__head .icon { width: 38px; height: 38px; border-radius: 10px; display: grid; place-items: center; font-size: var(--type-body-lg); }
.rd-paymethod__head .txt b { display: block; font-size: var(--type-control); }
.rd-paymethod__head .txt span { font-size: var(--type-label); color: var(--rd-muted); }
.rd-paymethod__body { display: none; padding: 0 1.2rem 1.2rem; border-top: 1px solid rgba(8, 38, 30, .08); }
.rd-paymethod.active .rd-paymethod__body { display: block; }

/* ---------- donor dashboard ---------- */
.rd-dash-head {
  position: relative;
  overflow: hidden;
  padding: 2.5rem 0 2rem;
}
.rd-dash-head__pattern {
  position: absolute;
  inset-inline-end: -100px;
  top: -100px;
  width: 350px;
  height: 350px;
  border-radius: 50%;
  background: repeating-radial-gradient(circle, transparent 0 7px, rgba(255, 248, 236, .05) 7px 8px);
  pointer-events: none;
}
.rd-dash-head__inner {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  gap: 1.4rem;
}
.rd-dash-head__avatar {
  width: 64px;
  height: 64px;
  flex: none;
  background: var(--rd-gold);
  color: var(--rd-ink);
  font-size: var(--type-h3);
}
.rd-dash-head__user h1 {
  color: white;
  font-size: var(--type-h3);
  line-height: var(--type-leading-heading);
  font-weight: var(--type-weight-bold);
  text-wrap: balance;
}
.rd-dash-head__user p {
  font-size: var(--type-small);
  line-height: var(--type-leading-body);
  color: rgba(255, 248, 236, .7);
  overflow-wrap: break-word;
}
.rd-dash-stats {
  margin-inline-start: auto;
  display: flex;
  gap: 2rem;
}
.rd-dash-stat__number {
  color: var(--rd-gold);
  font-size: var(--type-h2);
  line-height: var(--type-leading-tight);
  font-weight: var(--type-weight-bold);
  font-variant-numeric: tabular-nums;
}
.rd-dash-stat__label {
  color: rgba(255, 248, 236, .7);
  font-size: var(--type-label);
  line-height: var(--type-leading-small);
}
.rd-dash-stat--empty {
  max-width: 34rem;
  color: var(--rd-gold);
  font-size: var(--type-label);
  line-height: var(--type-leading-small);
}
.rd-dash-tabs {
  padding-block: 0;
  box-shadow: 0 2px 12px -4px rgba(8, 38, 30, .08);
}
.rd-dash-tabs .rd-wrap {
  display: flex;
  align-items: stretch;
  gap: .2rem;
  flex-wrap: nowrap;
  overflow-x: auto;
  scrollbar-width: thin;
}
.rd-tab {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  border: none;
  border-bottom: 3px solid transparent;
  background: transparent;
  padding: .85rem 1.2rem;
  color: var(--rd-muted);
  font-family: inherit;
  font-size: var(--type-control);
  line-height: var(--type-leading-heading);
  font-weight: var(--type-weight-bold);
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  user-select: none;
}
.rd-tab:hover { color: var(--rd-red); }
.rd-tab:active { scale: .96; }
.rd-tab.active { color: var(--rd-red); border-bottom-color: var(--rd-red); }
.rd-dash-body { padding-block: 2.5rem 4rem; }
.rd-dash-grid { gap: 2rem; }
.rd-dashboard .rd-co {
  padding: 1.6rem;
  overflow-x: auto;
}
.rd-dashboard .rd-co h2 {
  margin-bottom: 1.2rem;
  font-size: var(--type-body-lg);
  line-height: var(--type-leading-heading);
  font-weight: var(--type-weight-bold);
  text-wrap: balance;
}
.rd-dashboard .rd-sidecol > * { padding: 1.5rem; }
.rd-dashboard .rd-giftcard h3,
.rd-dashboard .rd-provides-card h3 {
  font-size: var(--type-body);
  line-height: var(--type-leading-heading);
  font-weight: var(--type-weight-bold);
}
.rd-dashboard .rd-provides-card ul { gap: 0; }
.rd-dashboard .rd-provides-card li {
  justify-content: space-between;
  padding: .4rem 0;
  font-size: var(--type-small);
}
.rd-dashboard .rd-provides-card li b { color: var(--rd-gold); }
.rd-dashboard .rd-provides-card .rd-zakat-total {
  margin-top: .6rem;
  padding-top: .8rem;
  border-top: 1px solid rgba(255, 248, 236, .15);
}
.rd-dashboard .rd-provides-card .rd-zakat-total b {
  font-size: var(--type-h4);
  line-height: var(--type-leading-tight);
  font-weight: var(--type-weight-bold);
}
.rd-dashboard .rd-giftcard__amounts button {
  min-height: 44px;
  padding: .55rem .3rem;
  font-size: var(--type-control);
}
.rd-table {
  width: 100%;
  min-width: 640px;
  border-collapse: collapse;
}
.rd-table th {
  padding: .6rem .8rem;
  border-bottom: 2px solid rgba(8, 38, 30, .1);
  color: var(--rd-muted);
  font-size: var(--type-label);
  line-height: var(--type-leading-small);
  font-weight: var(--type-weight-bold);
  text-align: start;
}
.rd-table td {
  padding: .7rem .8rem;
  border-bottom: 1px solid rgba(8, 38, 30, .06);
  font-size: var(--type-small);
  line-height: var(--type-leading-small);
}
.rd-table .amt { color: var(--rd-red); font-weight: var(--type-weight-bold); font-variant-numeric: tabular-nums; }
.rd-table .ok { color: var(--rd-olive); font-size: var(--type-label); font-weight: var(--type-weight-bold); }
.rd-table .pending { color: var(--rd-muted); font-size: var(--type-label); }
.rd-table .rcpt,
.rcpt { color: var(--rd-red); font-size: var(--type-label); line-height: var(--type-leading-small); font-weight: var(--type-weight-bold); }

/* ---------- scroll-to-top FAB ---------- */
.rd-totop {
  position: fixed; inset-block-end: 5.5rem; inset-inline-end: 1.2rem; z-index: 40;
  width: 44px; height: 44px; border-radius: 50%; border: none; cursor: pointer;
  background: var(--rd-red); color: #fff; display: flex; align-items: center; justify-content: center;
  box-shadow: 0 8px 20px -6px rgba(200, 16, 46, .5); transition: opacity .25s ease, transform .25s ease;
  opacity: 0; pointer-events: none;
}
.rd-totop.visible { opacity: 1; pointer-events: auto; }

/* ---------- responsive ---------- */
@media (max-width: 1020px) {
  .rd-hero .rd-wrap, .rd-phero .rd-wrap { grid-template-columns: 1fr; }
  .rd-hero__art { order: 2; width: 100%; max-width: 560px; margin-inline: auto; }
  .rd-pillars, .rd-loop__steps { grid-template-columns: 1fr 1fr; }
  .rd-needband .rd-wrap { grid-template-columns: 1fr 1fr; }
  .rd-programs, .rd-impact__grid, .rd-partner__grid, .rd-campaign__grid { grid-template-columns: 1fr; }
  .rd-reports-grid { grid-template-columns: 1fr 1fr; }
  .rd-report:first-child { grid-column: span 2; min-height: 420px; grid-row: auto; }
  .rd-child-grid, .rd-sim-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rd-loop__step:not(:last-child)::after { display: none; }
  .rd-trustblock { grid-template-columns: minmax(0, 1fr); }
  .rd-pgrid, .rd-checkout__grid { grid-template-columns: 1fr; }
  .rd-portrait { max-width: 340px; margin: 0 auto; }
  .rd-summary { position: static; order: -1; }
}
@media (max-width: 860px) {
  .rd-dash-head__inner { flex-wrap: wrap; }
  .rd-dash-stats {
    width: 100%;
    margin-inline-start: 0;
  }
}
@media (max-width: 640px) {
  .rd-hero,
  .rd-phero {
    min-height: calc(100vh - 68px);
    min-height: calc(100svh - 68px);
  }
  .rd-head .rd-wrap { height: 68px; }
  .rd-brand img { width: 38px; height: 38px; }
  .rd-brand { font-size: var(--type-body); }
  .rd-brand small { font-size: var(--type-caption); }
  .rd-hero .rd-wrap { padding-block: 2.25rem 2.75rem; }
  .rd-hero--orphan-list { min-height: auto !important; }
  .rd-hero--orphan-list .rd-wrap { padding-block: 1.5rem 2rem; }
  .rd-hero--orphan-list .rd-hero__art { max-width: 280px; }
  .rd-hero--orphan-list .rd-hero__stats { gap: 1rem; margin-top: 1rem; }
  .rd-hero--orphan-list .rd-hero__stats .num { font-size: var(--type-h3); }
  .rd-give { padding: 1rem; margin-top: 1.35rem; }
  .rd-give__trust { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; }
  .rd-give__trust span { justify-content: center; padding-inline: .45rem; text-align: center; line-height: var(--type-leading-small); }
  .rd-give__trust span + span { padding-inline-start: .45rem; margin-inline-start: 0; }
  .rd-pillars, .rd-loop__steps, .rd-child-grid, .rd-sim-grid, .rd-reports-grid,
  .rd-trustblock__steps { grid-template-columns: minmax(0, 1fr); }
  .rd-report:first-child { grid-column: auto; min-height: 300px; }
  .rd-give__amounts, .rd-amt-grid { grid-template-columns: repeat(2, 1fr); }
  .rd-toolbar .rd-wrap { flex-direction: column; align-items: stretch; }
  .rd-dashboard .rd-dash-tabs { top: 68px; }
  .rd-dashboard .rd-dash-tabs .rd-wrap {
    flex-direction: row;
    align-items: stretch;
    flex-wrap: wrap;
    overflow: visible;
    gap: 0;
  }
  .rd-dashboard .rd-tab {
    flex: 1 1 30%;
    justify-content: center;
    padding: .7rem .35rem;
    font-size: var(--type-label);
    white-space: normal;
  }
  .rd-dash-head__inner { gap: 1rem; }
  .rd-dash-head__user { min-width: 0; flex: 1; }
  .rd-dash-stats { gap: 1.25rem; justify-content: space-between; }
  .rd-dash-stat { min-width: 0; }
  .rd-filters { margin-inline-start: 0; }
  .rd-sponsor-bar .rd-progress { display: none; }
  .rd-details { grid-template-columns: 1fr; }
  .rd-provide-chips { grid-template-columns: 1fr; }
  .rd-auth { grid-template-columns: 1fr; }
  .rd-auth__side { display: none; }
  .rd-step-sep { width: 28px; }
}
@media (prefers-reduced-motion: reduce) {
  body,
  .rd-child,
  .rd-sim,
  .rd-program .art img { transition: none !important; }

  html.is-language-entering body,
  html.is-language-leaving body { opacity: 1; }
}

/* Unified public-site dropdown styling. Loaded after page styles. */

/* Native selects */
body select:not([multiple]):not([size]) {
  appearance: none !important;
  min-height: 44px !important;
  border: 1.5px solid rgba(8, 38, 30, .18) !important;
  border-radius: 12px !important;
  padding-block: .65rem !important;
  padding-inline: 1rem 2.75rem !important;
  background-color: #fff !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 20 20'%3E%3Cpath d='m5 7.5 5 5 5-5' fill='none' stroke='%2308261E' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right .9rem center !important;
  background-size: 16px !important;
  color: var(--rd-ink) !important;
  font-family: inherit !important;
  font-size: var(--type-body) !important;
  line-height: var(--type-leading-small) !important;
  font-weight: var(--type-weight-bold) !important;
  box-shadow: 0 1px 0 rgba(8, 38, 30, .03) !important;
  cursor: pointer;
  transition-property: border-color, box-shadow, background-color;
  transition-duration: .15s;
}
[dir="rtl"] body select:not([multiple]):not([size]) {
  padding-inline: 1rem 2.75rem !important;
  background-position: left .9rem center !important;
}
body select:not([multiple]):not([size]):hover {
  border-color: rgba(8, 38, 30, .42) !important;
  background-color: var(--rd-cream-2) !important;
}
body select:not([multiple]):not([size]):focus {
  border-color: var(--rd-gold) !important;
  outline: 2px solid var(--rd-gold) !important;
  outline-offset: 1px !important;
  box-shadow: 0 0 0 4px rgba(201, 162, 39, .12) !important;
}
body select:not([multiple]):not([size]):disabled {
  background-color: #f1eee7 !important;
  color: var(--rd-muted) !important;
  cursor: not-allowed;
  opacity: .7;
}
body select option {
  background: #fff;
  color: var(--rd-ink);
  font-family: inherit;
  font-weight: var(--type-weight-semibold);
}

/* Header program + account dropdowns */
.rd-dropdown__btn,
.rd-user__btn {
  min-height: 44px;
  transition-property: color, border-color, background-color, box-shadow, transform;
  transition-duration: .15s;
}
.rd-dropdown__btn:active,
.rd-user__btn:active { transform: scale(.96); }
.rd-dropdown__btn:focus-visible,
.rd-user__btn:focus-visible {
  outline: 2px solid var(--rd-gold);
  outline-offset: 2px;
}
.rd-dropdown__btn .programs-dropdown__chevron {
  transition-property: transform;
  transition-duration: .18s;
}
.rd-dropdown[data-open="true"] .programs-dropdown__chevron,
.rd-dropdown:hover .programs-dropdown__chevron,
.rd-dropdown:focus-within .programs-dropdown__chevron { transform: rotate(180deg); }
.rd-dropdown__menu,
.rd-user__menu {
  margin-top: .65rem;
  border: 1px solid rgba(8, 38, 30, .1);
  border-radius: 16px;
  padding: .45rem;
  background: rgba(255, 255, 255, .98);
  box-shadow:
    0 24px 55px -24px rgba(8, 38, 30, .35),
    0 8px 20px -14px rgba(8, 38, 30, .18);
  transform: translateY(8px) scale(.98);
  transform-origin: top center;
  backdrop-filter: blur(14px);
  transition-property: opacity, visibility, transform;
  transition-duration: .16s;
}
.rd-dropdown:hover .rd-dropdown__menu,
.rd-dropdown[data-open="true"] .rd-dropdown__menu,
.rd-dropdown:focus-within .rd-dropdown__menu,
.rd-user:hover .rd-user__menu,
.rd-user:focus-within .rd-user__menu,
.rd-user[data-open="true"] .rd-user__menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0) scale(1);
}
.rd-dropdown__menu a,
.rd-user__menu a,
.rd-user__menu button {
  min-height: 44px;
  font-size: var(--type-control);
  border-radius: 11px;
  padding: .65rem .8rem;
  transition-property: color, background-color, transform;
  transition-duration: .14s;
}
.rd-dropdown__menu a:hover,
.rd-dropdown__menu a:focus-visible,
.rd-user__menu a:hover,
.rd-user__menu a:focus-visible,
.rd-user__menu button:hover,
.rd-user__menu button:focus-visible {
  background: var(--rd-cream-2);
  color: var(--rd-red);
  outline: none;
}
.rd-dropdown__menu a:active,
.rd-user__menu a:active,
.rd-user__menu button:active { transform: scale(.98); }
.rd-user__head {
  margin: .15rem .2rem .4rem;
  padding: .7rem .7rem .8rem;
  border-radius: 10px;
  background: var(--rd-cream-2);
  border-bottom: 0;
}
.rd-user__head span { display: block; margin-top: .15rem; overflow-wrap: anywhere; }

/* Crypto searchable dropdown */
body [id$="-dropdown-btn"] {
  min-height: 48px;
  font-size: var(--type-body);
  border: 1.5px solid rgba(8, 38, 30, .18) !important;
  border-radius: 12px !important;
  background: #fff !important;
  color: var(--rd-ink) !important;
  box-shadow: 0 1px 0 rgba(8, 38, 30, .03) !important;
  transition-property: border-color, box-shadow, background-color !important;
  transition-duration: .15s !important;
}
body [id$="-dropdown-btn"]:hover,
body [id$="-dropdown-btn"]:focus-visible {
  border-color: var(--rd-gold) !important;
  box-shadow: 0 0 0 4px rgba(201, 162, 39, .12) !important;
  outline: none;
}
body [id$="-dropdown-panel"] {
  margin-top: .65rem !important;
  font-size: var(--type-control);
  overflow: hidden;
  border: 1px solid rgba(8, 38, 30, .1) !important;
  border-radius: 16px !important;
  background: #fff !important;
  box-shadow:
    0 24px 55px -24px rgba(8, 38, 30, .35),
    0 8px 20px -14px rgba(8, 38, 30, .18) !important;
}
body [id$="-dropdown-btn"] [id$="-selected-name"] { font-size: var(--type-body) !important; }
body [id$="-dropdown-btn"] [id$="-selected-code"] { font-size: var(--type-label) !important; }
body [id$="-dropdown-panel"] input { font-size: var(--type-body) !important; }
body [id$="-dropdown-panel"] .currency-item .text-sm { font-size: var(--type-control) !important; }
body [id$="-dropdown-panel"] .currency-item .text-xs { font-size: var(--type-label) !important; }

/* Enhanced native select listbox */
.hog-select {
  position: relative;
  display: inline-block;
  min-width: 140px;
  max-width: 100%;
  vertical-align: middle;
}
.hog-select--full { display: block; width: 100%; }
.hog-native-select {
  position: absolute !important;
  inset: 0 auto auto 0 !important;
  width: 1px !important;
  min-width: 0 !important;
  height: 1px !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  border: 0 !important;
  opacity: 0 !important;
  pointer-events: none !important;
}
.hog-select__button {
  display: flex;
  width: 100%;
  min-height: 44px;
  align-items: center;
  justify-content: space-between;
  gap: .8rem;
  border: 1.5px solid rgba(8, 38, 30, .18);
  border-radius: 12px;
  padding: .65rem .8rem .65rem 1rem;
  background: #fff;
  color: var(--rd-ink);
  font-family: inherit;
  font-size: var(--type-body);
  line-height: var(--type-leading-small);
  font-weight: var(--type-weight-bold);
  text-align: start;
  cursor: pointer;
  box-shadow: 0 1px 0 rgba(8, 38, 30, .03);
  transition-property: border-color, box-shadow, background-color, transform;
  transition-duration: .15s;
}
[dir="rtl"] .hog-select__button { padding: .65rem 1rem .65rem .8rem; }
.hog-select__button:hover { border-color: rgba(8, 38, 30, .42); background: var(--rd-cream-2); }
.hog-select__button:focus-visible {
  border-color: var(--rd-gold);
  outline: 2px solid var(--rd-gold);
  outline-offset: 1px;
  box-shadow: 0 0 0 4px rgba(201, 162, 39, .12);
}
.hog-select__button:active { transform: scale(.96); }
.hog-select__button:disabled { color: var(--rd-muted); background: #f1eee7; cursor: not-allowed; opacity: .7; }
.hog-select__label { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hog-select__chevron {
  width: 18px;
  height: 18px;
  flex: none;
  color: var(--rd-muted);
  transition-property: transform;
  transition-duration: .18s;
}
.hog-select.is-open .hog-select__chevron { transform: rotate(180deg); }
.hog-select__menu {
  position: absolute;
  inset-block-start: calc(100% + .55rem);
  inset-inline: 0;
  z-index: 100;
  display: grid;
  max-height: min(320px, 50vh);
  gap: .25rem;
  overflow-y: auto;
  overscroll-behavior: contain;
  border: 1px solid rgba(8, 38, 30, .1);
  border-radius: 16px;
  padding: .45rem;
  background: #fff;
  box-shadow:
    0 24px 55px -24px rgba(8, 38, 30, .38),
    0 8px 20px -14px rgba(8, 38, 30, .18);
  scrollbar-width: thin;
  scrollbar-color: rgba(8, 38, 30, .24) transparent;
}
.hog-select.is-up .hog-select__menu { inset-block-start: auto; inset-block-end: calc(100% + .55rem); }
.hog-select__menu[hidden] { display: none; }
.hog-select__option {
  display: flex;
  width: 100%;
  min-height: 42px;
  align-items: center;
  justify-content: space-between;
  gap: .7rem;
  border: 1px solid transparent;
  border-radius: 10px;
  padding: .6rem .7rem;
  background: transparent;
  color: var(--rd-ink);
  font-family: inherit;
  font-size: var(--type-control);
  line-height: var(--type-leading-small);
  font-weight: var(--type-weight-bold);
  text-align: start;
  cursor: pointer;
  transition-property: color, border-color, background-color, transform;
  transition-duration: .12s;
}
.hog-select__option:hover,
.hog-select__option:focus-visible {
  border-color: rgba(8, 38, 30, .08);
  background: var(--rd-cream-2);
  color: var(--rd-red);
  outline: none;
}
.hog-select__option[aria-selected="true"] {
  background: var(--rd-ink);
  color: var(--rd-on-dark);
  font-weight: var(--type-weight-bold);
}
.hog-select__option:disabled { color: #929b97; cursor: not-allowed; opacity: .65; }
.hog-select__option:active:not(:disabled) { transform: scale(.98); }
.hog-select__check { width: 17px; height: 17px; flex: none; opacity: 0; }
.hog-select__option[aria-selected="true"] .hog-select__check { opacity: 1; }
.rd-filters > .hog-select { min-width: 128px; }
.rd-msg-orphan-filter .hog-select { width: 180px; max-width: 180px; }
.rd-compose-field > .hog-select,
.relative > .hog-select,
.rd-filter-field > .hog-select { display: block; width: 100%; }
.rd-filter-field > .hog-select { min-width: 0; }

/* Organized orphan filtering panel */
#orphans-list.rd-toolbar {
  padding-block: 1rem;
  background: rgba(255, 248, 236, .97);
  box-shadow: 0 12px 30px -28px rgba(8, 38, 30, .45);
  backdrop-filter: blur(14px);
}
.rd-toolbar .rd-filter-panel {
  display: block;
}
.rd-filter-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
  margin-bottom: 1rem;
}
.rd-filter-eyebrow {
  margin: 0 0 .18rem;
  color: var(--rd-red);
  font-size: var(--type-caption);
  line-height: var(--type-leading-heading);
  font-weight: var(--type-weight-bold);
  letter-spacing: .11em;
  text-transform: uppercase;
}
.rd-filter-heading .rd-price-line {
  margin: 0;
  color: var(--rd-muted);
  font-size: var(--type-control);
  line-height: var(--type-leading-small);
  font-weight: var(--type-weight-semibold);
}
.rd-filter-heading .rd-price-line b { font-size: var(--type-body-lg); }
.rd-filter-reset {
  display: inline-flex;
  min-height: 44px;
  flex: none;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(200, 16, 46, .22);
  border-radius: 999px;
  padding: .55rem .9rem;
  background: rgba(200, 16, 46, .05);
  color: var(--rd-red);
  font-size: .875rem;
  line-height: var(--type-leading-heading);
  font-weight: var(--type-weight-bold);
  transition-property: color, border-color, background-color, transform;
  transition-duration: .14s;
}
.rd-filter-reset:hover,
.rd-filter-reset:focus-visible {
  border-color: var(--rd-red);
  background: var(--rd-red);
  color: #fff;
  outline: none;
}
.rd-filter-reset:active { transform: scale(.97); }
.rd-filter-reset[hidden] { display: none; }
.rd-filter-panel .rd-filters {
  display: grid;
  grid-template-columns: minmax(240px, 1.55fr) minmax(140px, .8fr) minmax(145px, .85fr) minmax(180px, 1fr) minmax(180px, 1fr);
  gap: .75rem;
  margin: 0;
  align-items: end;
}
.rd-filter-field {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: .4rem;
}
.rd-filter-field > label,
.rd-filter-label {
  display: block;
  color: var(--rd-muted);
  font-size: var(--type-caption);
  line-height: var(--type-leading-heading);
  font-weight: var(--type-weight-bold);
  letter-spacing: .035em;
}
.rd-filter-field .rd-search {
  width: 100%;
  min-width: 0;
  min-height: 48px;
  border-radius: 12px;
  padding: .7rem 1rem;
  background: #fff;
  color: var(--rd-ink);
  font-size: var(--type-body);
  line-height: var(--type-leading-small);
  font-weight: var(--type-weight-semibold);
}
.rd-filter-field .rd-search::placeholder { color: #717c77; font-weight: var(--type-weight-medium); }
.rd-filter-field .hog-select__button,
.rd-filter-field .rd-age-dropdown__trigger { min-height: 48px; }
.rd-filter-field--age .rd-age-dropdown { width: 100%; min-width: 0; }

/* Orphan age multi-select dropdown */
.rd-age-dropdown {
  position: relative;
  width: fit-content;
  min-width: 220px;
}
.rd-age-dropdown__trigger {
  display: flex;
  width: 100%;
  min-height: 44px;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  border: 1.5px solid rgba(8, 38, 30, .2);
  border-radius: 12px;
  padding: .65rem .85rem .65rem 1rem;
  background: #fff;
  color: var(--rd-ink);
  font-family: inherit;
  font-size: var(--type-body);
  line-height: var(--type-leading-heading);
  font-weight: var(--type-weight-bold);
  cursor: pointer;
  box-shadow: 0 1px 0 rgba(8, 38, 30, .03);
  transition-property: border-color, box-shadow, background-color, transform;
  transition-duration: .15s;
}
[dir="rtl"] .rd-age-dropdown__trigger { padding: .65rem 1rem .65rem .85rem; }
.rd-age-dropdown__trigger:hover { border-color: rgba(8, 38, 30, .42); background: var(--rd-cream-2); }
.rd-age-dropdown__trigger:focus-visible {
  border-color: var(--rd-gold);
  outline: 2px solid var(--rd-gold);
  outline-offset: 1px;
  box-shadow: 0 0 0 4px rgba(201, 162, 39, .12);
}
.rd-age-dropdown__trigger:active { transform: scale(.96); }
.rd-age-dropdown__trigger svg {
  width: 18px;
  height: 18px;
  flex: none;
  color: var(--rd-muted);
  transition-property: transform;
  transition-duration: .18s;
}
.rd-age-dropdown[data-open="true"] .rd-age-dropdown__trigger svg { transform: rotate(180deg); }
.rd-age-dropdown__menu {
  position: absolute;
  inset-block-start: calc(100% + .6rem);
  inset-inline-start: 0;
  z-index: 80;
  display: grid;
  width: min(360px, calc(100vw - 2rem));
  grid-template-columns: 1fr 1fr;
  gap: .4rem;
  border: 1px solid rgba(8, 38, 30, .1);
  border-radius: 16px;
  padding: .55rem;
  background: #fff;
  box-shadow:
    0 24px 55px -24px rgba(8, 38, 30, .38),
    0 8px 20px -14px rgba(8, 38, 30, .18);
}
.rd-age-dropdown__menu[hidden] { display: none; }
.rd-age-dropdown__menu .rd-chip {
  display: flex;
  width: 100%;
  min-height: 48px;
  align-items: center;
  justify-content: space-between;
  gap: .5rem;
  border: 1px solid transparent;
  border-radius: 11px;
  padding: .65rem .75rem;
  background: var(--rd-cream-2);
  color: var(--rd-ink);
  text-align: start;
  font-size: var(--type-control);
  transition-property: color, border-color, background-color, transform;
  transition-duration: .14s;
}
.rd-age-dropdown__menu .rd-chip:hover,
.rd-age-dropdown__menu .rd-chip:focus-visible {
  border-color: rgba(8, 38, 30, .2);
  background: #fff;
  color: var(--rd-red);
  outline: none;
}
.rd-age-dropdown__menu .rd-chip[aria-pressed="true"],
.rd-age-dropdown__menu .rd-chip.active {
  border-color: var(--rd-ink);
  background: var(--rd-ink);
  color: var(--rd-on-dark);
}
.rd-age-dropdown__menu .rd-chip:active { transform: scale(.98); }
.rd-age-dropdown__menu .rd-chip small {
  color: inherit;
  font-size: var(--type-caption);
  font-weight: var(--type-weight-semibold);
  opacity: .7;
  white-space: nowrap;
}
.rd-age-dropdown__menu .age-chip--all { grid-column: 1 / -1; }
.age-picker__summary {
  grid-column: 1 / -1;
  margin: .15rem .2rem 0;
  padding: .6rem .4rem .15rem;
  border-top: 1px solid rgba(8, 38, 30, .08);
  color: var(--rd-muted);
  font-size: var(--type-label);
  line-height: var(--type-leading-small);
}

@media (max-width: 1040px) {
  #orphans-list.rd-toolbar { position: relative; top: auto; }
  .rd-filter-panel .rd-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rd-filter-field--search { grid-column: 1 / -1; }
}

@media (max-width: 640px) {
  body select:not([multiple]):not([size]) { font-size: var(--type-body) !important; }
  .rd-filter-heading { align-items: flex-start; flex-direction: column; gap: .75rem; }
  .rd-filter-reset { width: 100%; }
  .rd-filter-panel .rd-filters { grid-template-columns: minmax(0, 1fr); }
  .rd-filter-field--search { grid-column: auto; }
  .rd-age-dropdown { width: 100%; min-width: 0; }
  .rd-age-dropdown__menu { width: 100%; grid-template-columns: 1fr; }
  .rd-age-dropdown__menu .age-chip--all { grid-column: auto; }
  .hog-select__button,
  .hog-select__option,
  .rd-age-dropdown__trigger,
  .rd-age-dropdown__menu .rd-chip { font-size: var(--type-body); }
}

@media (prefers-reduced-motion: reduce) {
  .rd-dropdown__btn,
  .rd-user__btn,
  .rd-dropdown__menu,
  .rd-user__menu,
  .rd-dropdown__menu a,
  .rd-user__menu a,
  .rd-user__menu button,
  .rd-age-dropdown__trigger,
  .rd-age-dropdown__trigger svg,
  .rd-age-dropdown__menu .rd-chip,
  .hog-select__button,
  .hog-select__chevron,
  .hog-select__option,
  body select:not([multiple]):not([size]) { transition: none; }
}

/* Small-control, directionality, scrolling, and layout polish. */
:root {
  --hog-content-max: 1200px;
  --rd-content-max: 1200px;
  --rd-icon-size: 1.05em;
}

/* Resilient wrapping for translations, user content, and enlarged text. */
:where(h1, h2, h3, h4, h5, h6, p, li, dt, dd, figcaption, blockquote, address) {
  min-inline-size: 0;
  max-inline-size: 100%;
  overflow-wrap: break-word;
}
:where(h1, h2, h3, h4, h5, h6) { text-wrap: balance; }
:where(p, dd, figcaption, blockquote) { text-wrap: pretty; }
:where(.rd-wrap, [class*="__grid"], [class*="__layout"], [class*="__main"], [class*="__body"]) > * {
  min-inline-size: 0;
  max-inline-size: 100%;
}
:where(.rd-donate, .rd-btn-red, .rd-btn-ghost, .rd-btn-primary,
       .rd-btn-light, .rd-btn-outline-light, .rd-soft-btn, .rd-sponsor-btn,
       .rd-btn-gift, .rd-btn-gift-full, .rd-btn-sponsor-lg, .rd-card-cta,
       .rd-msg-primary, .rd-msg-ghost, .rd-give__submit, .gallery-view-tab,
       .gallery-filter-submit, .impact-story__cta, .op-checkout-back, .cta) {
  min-inline-size: 0;
  max-inline-size: 100%;
  block-size: auto;
  min-block-size: 44px;
  white-space: normal !important;
  line-height: var(--type-leading-small);
  overflow-wrap: break-word;
  text-align: center;
  text-wrap: balance;
}
.rd-brand,
.rd-brand > span {
  min-inline-size: 0;
  max-inline-size: 100%;
}
.rd-brand > span { overflow-wrap: break-word; }
.rd-foot .rd-brand { white-space: normal; }
.rd-paymethod__head .txt,
.rd-recipient-copy {
  min-inline-size: 0;
  max-inline-size: 100%;
  overflow-wrap: anywhere;
}
.rd-recipient-row { min-inline-size: 0; max-inline-size: 100%; flex-wrap: wrap; }
.rd-recipient-row > a { max-inline-size: 100%; overflow-wrap: break-word; }
.rd-loadmore nav { max-inline-size: 100%; flex-wrap: wrap; justify-content: center; }

/* Narrower reading shell without reducing full-bleed sections. */
.rd-wrap {
  max-width: var(--rd-content-max);
}
.site-editorial-hero__inner,
.program-collage-hero__content,
.impact-carousel__header {
  width: min(var(--rd-content-max), calc(100% - 2rem)) !important;
}
.family-profile-template.max-w-7xl {
  max-width: var(--rd-content-max);
}

/* Native smooth scrolling only: no wheel hijacking. */
html {
  scroll-behavior: smooth;
  scroll-padding-block-start: 96px;
  scrollbar-gutter: stable;
}
:where(section, article, [id]) {
  scroll-margin-block-start: 96px;
}
:where(.rd-mnav, .rd-msg-list, .rd-dropdown__menu, .rd-user__menu,
       .hog-select__listbox, [id$="-dropdown-panel"]) {
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  scrollbar-color: rgba(8, 38, 30, .3) transparent;
}

/* Consistent stroke icons; sizing follows surrounding text. */
.rd-icon-sprite {
  position: absolute;
  width: 0;
  height: 0;
  overflow: hidden;
  pointer-events: none;
}
.rd-ui-icon,
.rd-dir-arrow {
  display: inline-block;
  flex: 0 0 auto;
  width: var(--rd-icon-size);
  height: var(--rd-icon-size);
  color: currentColor;
  vertical-align: -.16em;
}
.rd-ui-icon {
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.rd-ui-icon--forward,
.rd-dir-arrow {
  transition-property: translate, scale, opacity;
  transition-duration: .16s;
  transition-timing-function: cubic-bezier(.2, 0, 0, 1);
}

[dir="rtl"] .rd-ui-icon--forward,
[dir="rtl"] .rd-dir-arrow {
  scale: -1 1;
}

.rd-dir-arrow {
  position: relative;
  width: 1.05em;
}
.rd-dir-arrow::before,
[dir="rtl"] .rd-dir-arrow::before {
  position: absolute;
  inset: 0;
  content: "";
  background: currentColor;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14M14 6l6 6-6 6' fill='none' stroke='black' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14M14 6l6 6-6 6' fill='none' stroke='black' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}
:where(a, button):hover > .rd-ui-icon--forward,
:where(a, button):hover > .rd-dir-arrow {
  translate: 2px 0;
}
[dir="rtl"] :where(a, button):hover > .rd-ui-icon--forward,
[dir="rtl"] :where(a, button):hover > .rd-dir-arrow {
  translate: -2px 0;
}
:where(a, button):hover > .rd-ui-icon--back { translate: -2px 0; }
[dir="rtl"] :where(a, button):hover > .rd-ui-icon--back { translate: 2px 0; }

/* Small icon-only controls retain 44px hit area; mobile navigation uses 48px. */
#mobile-menu-btn { width: 48px; height: 48px; min-width: 48px; min-height: 48px; }
.rd-iconbtn,
.rd-burger,
.rd-totop,
.rd-compose-remove,
.rd-msg-person__actions .rd-msg-ghost,
.rd-msg-pagination a,
.rd-icon-control {
  min-width: 44px;
  min-height: 44px;
  align-items: center;
  justify-content: center;
}
.rd-iconbtn,
.rd-burger,
.rd-totop,
.rd-compose-remove,
.rd-msg-person__actions .rd-msg-ghost,
.rd-msg-pagination a,
.rd-icon-control,
.rd-donate,
.rd-btn-red,
.rd-btn-ghost,
.rd-soft-btn,
.rd-msg-primary,
.rd-msg-ghost {
  transition-property: color, background-color, border-color, box-shadow, transform, opacity;
  transition-duration: .16s;
  transition-timing-function: cubic-bezier(.2, 0, 0, 1);
}
:where(.rd-iconbtn, .rd-burger, .rd-totop, .rd-compose-remove,
       .rd-icon-control, .rd-donate, .rd-btn-red, .rd-btn-ghost,
       .rd-soft-btn, .rd-msg-primary, .rd-msg-ghost):active {
  transform: scale(.96);
}
:where(.rd-iconbtn, .rd-burger, .rd-totop, .rd-compose-remove,
       .rd-icon-control):focus-visible {
  outline: 2px solid var(--rd-gold);
  outline-offset: 2px;
}

/* Keep icon/text order logical in either writing direction. */
:where(.rd-msg-primary, .rd-msg-ghost, .rd-soft-btn, .rd-btn-red,
       .rd-btn-ghost, .rd-card-cta, .rd-text-link, .rcpt) {
  gap: .42rem;
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .rd-ui-icon,
  .rd-dir-arrow { transition-duration: 0s; }
}

@media (max-width: 640px) {
  html { scroll-padding-block-start: 84px; }
  :where(section, article, [id]) { scroll-margin-block-start: 84px; }
  .rd-head .rd-wrap { min-block-size: 68px; block-size: auto; padding-block: .5rem; }
  .rd-head .rd-brand { flex: 1 1 auto; white-space: normal; line-height: var(--type-leading-heading); }
  .rd-head .rd-brand small { display: none; }
  .rd-toolbar .rd-wrap > *,
  .rd-checkout__grid > *,
  .rd-checkout__main > * { inline-size: 100%; min-inline-size: 0; max-inline-size: 100%; }
}

/* ========================================
   CONSOLIDATED PAGE STYLES
   ======================================== */

/* Pages: impact/home — moved from static/css/pages/impact.css */
.rd-needband { background: var(--rd-cream); border-bottom: 1px solid rgba(8, 38, 30, .08); }
.rd-needband .rd-wrap { padding-block: 0; }
.rd-needband__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: rgba(8, 38, 30, .1); background-clip: content-box; }
.rd-needband__grid:has(.rd-needband__cell:nth-child(4)) { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.rd-needband__cell { min-width: 0; padding: 1.9rem 1.4rem; background: var(--rd-cream); text-align: start; }
.rd-needband__cell .num { color: var(--rd-red); font-size: clamp(1.9rem, 3.4vw, 2.7rem); font-weight: var(--type-weight-bold); line-height: var(--type-leading-tight); font-variant-numeric: tabular-nums; }
.rd-needband__cell .lbl { margin-top: .35rem; color: var(--rd-muted); font-size: var(--type-small); font-weight: var(--type-weight-bold); line-height: var(--type-leading-small); }
.rd-needband__cell .src { margin-top: .3rem; color: #87968f; font-size: var(--type-caption); line-height: var(--type-leading-small); }
.rd-needband__cell .src a { min-height: 44px; display: inline-flex; align-items: center; gap: .3rem; color: var(--rd-red); font-weight: var(--type-weight-bold); text-decoration: underline; text-underline-offset: .22em; }
.rd-pillar__index { display: block; margin-bottom: .5rem; color: var(--rd-gold); font-size: var(--type-label); font-weight: var(--type-weight-bold); letter-spacing: .14em; }

/* Homepage narrative system -------------------------------------------------
   One deliberate journey: need -> action -> delivery -> proof -> mission. */
.home-page {
  --home-section-space: clamp(4.75rem, 8vw, 7.5rem);
  overflow: clip;
  background: var(--rd-cream);
}

.home-page :is(.rd-sec, .rd-reach, .rd-impact-ledger) {
  padding-block: var(--home-section-space);
}

.home-page .rd-sec-head {
  max-inline-size: 43rem;
  margin-block-end: clamp(2rem, 4vw, 3.25rem);
}

.home-page .rd-sec-head .rd-h-section {
  max-inline-size: 18ch;
  text-wrap: balance;
}

.home-page .rd-sec-head .rd-lede {
  max-inline-size: 60ch;
  text-wrap: pretty;
}

/* The two main actions appear immediately after the live need figures. */
.home-program-choice {
  background: var(--rd-cream);
}

.home-program-choice .rd-programs {
  --program-gutter: clamp(1rem, 4vw, 4rem);
  inline-size: 100vw;
  margin-right: 0;
  padding-inline: var(--program-gutter);
  grid-template-columns: minmax(0, 1fr);
  gap: clamp(1rem, 2.5vw, 1.5rem);
  align-items: stretch;
}

.home-program-choice .rd-program {
  display: grid;
  grid-template-columns: minmax(18rem, .85fr) minmax(0, 1.15fr);
  block-size: clamp(30rem, 62svh, 36rem);
  min-inline-size: 0;
  border-radius: clamp(1.1rem, 2vw, 1.7rem);
  box-shadow: 0 1.75rem 4rem -2.6rem rgba(8, 38, 30, .58);
}

.home-program-choice .rd-program .art {
  block-size: 100%;
  min-block-size: 0;
}

.home-program-choice .rd-program .body {
  min-block-size: 0;
  justify-content: center;
  padding: clamp(2rem, 5vw, 4.5rem);
  gap: clamp(.65rem, 1.2vw, 1rem);
}

.home-program-choice .rd-program .body > p:not(.tag) {
  max-inline-size: 58ch;
  min-block-size: 0;
  flex: 0 0 auto;
}

.home-program-choice .rd-program .meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1rem, 4vw, 3rem);
  margin-block-start: clamp(.35rem, 1vw, .9rem);
  padding-block: 1rem;
  border-block: 1px solid rgba(255, 248, 236, .15);
}

.home-program-choice .rd-program h3 {
  max-inline-size: 18ch;
  font-size: clamp(1.75rem, 3vw, 2.7rem);
  line-height: var(--type-leading-tight);
  text-wrap: balance;
}

.home-program-choice .rd-program p {
  min-block-size: 4.2em;
  line-height: var(--type-leading-small);
}

.home-program-choice .rd-program .meta { inline-size: 100%; }
.home-program-choice .rd-card-cta { margin-block-start: .35rem; }

@media (max-width: 700px) {
  .home-program-choice .rd-programs {
    --program-gutter: 1rem;
  }

  .home-program-choice .rd-program {
    display: flex;
    block-size: min(80svh, 42rem);
    min-block-size: 36rem;
  }

  .home-program-choice .rd-program .art {
    block-size: clamp(12rem, 34%, 14rem);
    min-block-size: 12rem;
  }

  .home-program-choice .rd-program .body {
    justify-content: flex-start;
    padding: 1.5rem;
  }
}

/* Delivery path: editorial copy beside one readable vertical sequence. */
.home-page .rd-loop { background: var(--rd-cream-2); }

.home-flow-grid {
  display: grid;
  grid-template-columns: minmax(16rem, .76fr) minmax(0, 1.24fr);
  gap: clamp(2.5rem, 7vw, 7rem);
  align-items: start;
}

.home-flow-grid .rd-sec-head {
  position: sticky;
  inset-block-start: 7rem;
  margin-block-end: 0;
}

.home-flow-grid .rd-loop__steps {
  grid-template-columns: 1fr;
  gap: 0;
  margin-block-start: 0;
  counter-reset: none;
}

.home-flow-grid .rd-loop__step {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 1.15rem;
  min-block-size: 0;
  padding: 1.45rem 0;
  border: 0;
  border-block-start: 1px solid rgba(8, 38, 30, .15);
  border-radius: 0;
  background: transparent;
}

.home-flow-grid .rd-loop__step:last-child { border-block-end: 1px solid rgba(8, 38, 30, .15); }
.home-flow-grid .rd-loop__step .n { margin: 0; }
.home-flow-grid .rd-loop__step h3 { margin-block: .1rem .35rem; font-size: clamp(1.1rem, 2vw, 1.35rem); }
.home-flow-grid .rd-loop__step p { max-inline-size: 48ch; line-height: var(--type-leading-body); }
.home-flow-grid .rd-loop__step::after { display: none; }

/* Evidence components read as one chapter rather than unrelated sections. */
.home-proof {
  background: var(--rd-cream);
  border-block: 1px solid rgba(8, 38, 30, .09);
}

.home-proof > section + section { border-block-start: 1px solid rgba(8, 38, 30, .09); }
.home-proof .rd-reach { background: var(--rd-cream-2); }
.home-proof .rd-field-preview { background: var(--rd-cream); }
.home-proof .rd-reach__head { max-inline-size: none; }

/* Comprehensive reach dashboard ------------------------------------------ */
.rd-reach {
  position: relative;
  color: var(--rd-ink);
  background: var(--rd-cream-2);
}

.rd-reach__head {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(18rem, .68fr);
  gap: clamp(2rem, 6vw, 6rem);
  align-items: end;
  margin-block-end: clamp(2.5rem, 5vw, 4.5rem);
}

.rd-reach__head .rd-eyebrow { margin-block-end: .9rem; }
.rd-reach__head h2 { max-inline-size: 18ch; text-wrap: balance; }
.rd-reach__head > p {
  max-inline-size: 48ch;
  padding-block-start: 1rem;
  border-block-start: 1px solid rgba(8, 38, 30, .18);
  color: var(--rd-muted);
  line-height: var(--type-leading-body);
  text-wrap: pretty;
}

.rd-reach__achievements {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-block: 1px solid rgba(8, 38, 30, .15);
}

.rd-reach-stat {
  min-inline-size: 0;
  padding: clamp(1.35rem, 2.5vw, 2.1rem);
  border-inline-end: 1px solid rgba(8, 38, 30, .12);
  border-block-end: 1px solid rgba(8, 38, 30, .12);
}

[dir="rtl"] .rd-reach-stat { border-inline-end: 0; border-inline-start: 1px solid rgba(8, 38, 30, .12); }
.rd-reach-stat--primary { grid-column: span 2; background: var(--rd-ink); color: var(--rd-on-dark); }
.rd-reach-stat__icon {
  display: grid;
  inline-size: 2.75rem;
  block-size: 2.75rem;
  margin-block-end: clamp(2rem, 4vw, 3.5rem);
  place-items: center;
  border: 1px solid rgba(8, 38, 30, .16);
  border-radius: .8rem;
  color: var(--rd-red);
  background: var(--rd-cream);
}
.rd-reach-stat--primary .rd-reach-stat__icon { border-color: rgba(255,248,236,.2); color: var(--rd-gold); background: rgba(255,248,236,.08); }
.rd-reach-stat__icon .rd-ui-icon { inline-size: 1.3rem; block-size: 1.3rem; }
.rd-reach-stat__value {
  margin: 0;
  color: var(--rd-red);
  font-size: clamp(2.15rem, 4vw, 4.5rem);
  font-weight: var(--type-weight-bold);
  line-height: var(--type-leading-tight);
  letter-spacing: -.055em;
  font-variant-numeric: tabular-nums;
}
.rd-reach-stat--primary .rd-reach-stat__value { color: var(--rd-gold); }
.rd-reach-stat__total { color: var(--rd-muted); font-size: .45em; letter-spacing: -.02em; }
.rd-reach-stat h3 { margin-block: .85rem .35rem; font-size: clamp(1rem, 1.5vw, 1.2rem); line-height: var(--type-leading-heading); }
.rd-reach-stat--primary h3 { color: var(--rd-on-dark); }
.rd-reach-stat > p:last-child { max-inline-size: 32ch; color: var(--rd-muted); font-size: var(--type-label); line-height: var(--type-leading-body); }
.rd-reach-stat--primary > p:last-child { color: rgba(255,248,236,.68); }

.rd-reach__needs {
  margin-block-start: clamp(3.5rem, 7vw, 6rem);
  padding: clamp(1.4rem, 4vw, 3.5rem);
  border-radius: clamp(1.25rem, 2.5vw, 2rem);
  color: var(--rd-on-dark);
  background: var(--rd-ink);
  box-shadow: 0 2.4rem 5rem -3.2rem rgba(8, 38, 30, .65);
}

.rd-reach__needs-head {
  display: grid;
  grid-template-columns: minmax(9rem, .35fr) minmax(0, 1fr);
  gap: 1.5rem;
  align-items: end;
  margin-block-end: 2rem;
}
.rd-reach__needs-head .rd-eyebrow { color: var(--rd-gold); }
.rd-reach__needs-head h3 { max-inline-size: 22ch; color: var(--rd-on-dark); font-size: clamp(1.75rem, 3.5vw, 3rem); line-height: var(--type-leading-tight); letter-spacing: -.04em; text-wrap: balance; }
.rd-reach__needs-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: rgba(255,248,236,.15); }

.rd-gap-card {
  display: flex;
  min-inline-size: 0;
  flex-direction: column;
  padding: clamp(1.35rem, 3vw, 2.25rem);
  color: var(--rd-on-dark);
  background: var(--rd-ink);
}
.rd-gap-card__top { display: flex; align-items: center; gap: .9rem; }
.rd-gap-card__icon {
  display: grid;
  flex: 0 0 3rem;
  inline-size: 3rem;
  block-size: 3rem;
  place-items: center;
  border-radius: .85rem;
  color: var(--rd-ink);
  background: var(--rd-gold);
}
.rd-gap-card--family .rd-gap-card__icon { color: #fff; background: var(--rd-olive); }
.rd-gap-card--campaign .rd-gap-card__icon { color: #fff; background: var(--rd-red); }
.rd-gap-card__icon .rd-ui-icon { inline-size: 1.35rem; block-size: 1.35rem; }
.rd-gap-card__top p { margin-block-end: .2rem; color: rgba(255,248,236,.62); font-size: var(--type-caption); font-weight: var(--type-weight-bold); letter-spacing: .07em; }
.rd-gap-card__top h4 { color: var(--rd-on-dark); font-size: var(--type-body-lg); line-height: var(--type-leading-heading); }
.rd-gap-card__number { display: grid; gap: .35rem; margin-block: clamp(2rem, 4vw, 3rem) 1.2rem; }
.rd-gap-card__number strong { color: var(--rd-gold); font-size: clamp(2.6rem, 5vw, 4.8rem); line-height: var(--type-leading-tight); letter-spacing: -.055em; font-variant-numeric: tabular-nums; }
.rd-gap-card--campaign .rd-gap-card__number strong { color: #fff; }
.rd-gap-card__number span { max-inline-size: 36ch; color: rgba(255,248,236,.75); font-size: var(--type-small); line-height: var(--type-leading-small); }
.rd-gap-card progress {
  inline-size: 100%;
  block-size: .55rem;
  overflow: hidden;
  border: 0;
  border-radius: 999px;
  color: var(--rd-gold);
  background: rgba(255,248,236,.15);
}
.rd-gap-card progress::-webkit-progress-bar { background: rgba(255,248,236,.15); }
.rd-gap-card progress::-webkit-progress-value { border-radius: 999px; background: var(--rd-gold); }
.rd-gap-card progress::-moz-progress-bar { border-radius: 999px; background: var(--rd-gold); }
.rd-gap-card--campaign progress::-webkit-progress-value { background: var(--rd-red); }
.rd-gap-card--campaign progress::-moz-progress-bar { background: var(--rd-red); }
.rd-gap-card__progress-copy { display: flex; justify-content: space-between; gap: 1rem; margin-block-start: .65rem; color: rgba(255,248,236,.65); font-size: var(--type-caption); font-variant-numeric: tabular-nums; }
.rd-gap-card__detail { max-inline-size: 54ch; margin-block: 1rem 1.5rem; color: rgba(255,248,236,.7); font-size: var(--type-label); line-height: var(--type-leading-body); }
.rd-gap-card__action {
  display: inline-flex;
  width: fit-content;
  min-block-size: 2.8rem;
  align-items: center;
  gap: .5rem;
  margin-block-start: auto;
  padding-block: .65rem;
  border-block-end: 1px solid currentColor;
  color: var(--rd-gold);
  font-weight: var(--type-weight-bold);
}
.rd-gap-card--campaign .rd-gap-card__action { color: #fff; }
.rd-gap-card__action .rd-ui-icon { inline-size: 1rem; transition: transform .2s ease; }
.rd-gap-card__action:hover .rd-ui-icon { transform: translateX(.25rem); }
[dir="rtl"] .rd-gap-card__action:hover .rd-ui-icon { transform: translateX(-.25rem); }

.rd-reach__footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem 2rem;
  margin-block-start: 1.5rem;
  padding-block-start: 1.25rem;
  border-block-start: 1px solid rgba(8,38,30,.14);
  color: var(--rd-muted);
  font-size: var(--type-label);
}
.rd-reach__footer p { max-inline-size: 64ch; }
.rd-reach__footer a { display: inline-flex; align-items: center; gap: .4rem; color: var(--rd-red); font-weight: var(--type-weight-bold); white-space: nowrap; }
.rd-reach__footer .rd-ui-icon { inline-size: 1rem; }

/* Mission uses a split editorial layout instead of another equal card row. */
.home-mission { position: relative; }

.home-mission__grid {
  position: relative;
  display: grid;
  grid-template-columns: minmax(18rem, .9fr) minmax(0, 1.1fr);
  gap: clamp(3rem, 8vw, 8rem);
}

.home-mission .rd-sec-head { margin: 0; }
.home-mission .rd-pillars { grid-template-columns: 1fr; gap: 0; margin: 0; }
.home-mission .rd-pillar {
  display: grid;
  grid-template-columns: 3rem minmax(0, 1fr);
  gap: 1rem;
  padding-block: 1.4rem;
  border-block-start: 1px solid rgba(255, 248, 236, .2);
}
.home-mission .rd-pillar:last-child { border-block-end: 1px solid rgba(255, 248, 236, .2); }
.home-mission .rd-pillar__index { margin: .25rem 0 0; }

/* Orphan preview utility row replaces inline layout declarations. */
.home-orphans__head { max-inline-size: 45rem; }
.home-orphans__footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
  margin-block-start: 2rem;
}
.home-orphans__footer p { max-inline-size: 62ch; color: rgba(255, 248, 236, .7); font-size: var(--type-control); }
.home-orphans__footer .rd-text-link { color: var(--rd-gold); border-color: var(--rd-gold); }

/* Partnership becomes a light transition between people and the final ask. */
.home-partner {
  color: var(--rd-ink);
  background: var(--rd-cream-2);
}
.home-partner .rd-partner__grid { align-items: start; }
.home-partner .rd-h-section { margin-block: .9rem; color: var(--rd-ink) !important; }
.home-partner .rd-partner__way { border-color: rgba(8, 38, 30, .14); }
.home-partner .rd-partner__way h3 { color: var(--rd-ink); }
.home-partner .rd-partner__way p { color: var(--rd-muted); }
.home-partner .rd-partner__index { color: var(--rd-red); }
.home-partner .rd-mailcard {
  position: sticky;
  inset-block-start: 7rem;
  padding: clamp(1.5rem, 3vw, 2.25rem);
  border-color: rgba(8, 38, 30, .12);
  background: var(--rd-cream);
  box-shadow: 0 1.5rem 3.5rem -2.5rem rgba(8, 38, 30, .35);
}
.home-partner .rd-mailcard h3 { color: var(--rd-ink); font-size: var(--type-h4); }
.home-partner .rd-mailcard p { color: var(--rd-muted); }
.home-partner .rd-mailcard .rd-card-cta { margin-block-start: 0; }

@media (max-width: 900px) {
  .home-program-choice .rd-programs,
  .home-flow-grid,
  .home-mission__grid {
    grid-template-columns: 1fr;
  }

  .home-program-choice .rd-program {
    block-size: min(80svh, 42rem);
    min-block-size: 38rem;
  }

  .home-program-choice .rd-program .art {
    block-size: 100%;
  }

  @media (max-width: 700px) {
    .home-program-choice .rd-program .art {
      block-size: clamp(12rem, 34%, 14rem);
    }
  }

  .home-flow-grid .rd-sec-head,
  .home-partner .rd-mailcard { position: static; }
  .home-mission__grid { gap: 2.5rem; }
  .rd-reach__head,
  .rd-reach__needs-head { grid-template-columns: 1fr; }
  .rd-reach__achievements { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rd-reach-stat--primary { grid-column: 1 / -1; }
}

@media (max-width: 640px) {
  .home-page { --home-section-space: clamp(3.75rem, 14vw, 5.25rem); }
  .home-page .rd-sec-head { margin-block-end: 2rem; }
  .home-flow-grid { gap: 2rem; }
  .home-flow-grid .rd-loop__step { padding-block: 1.2rem; }
  .home-mission .rd-pillar { grid-template-columns: 2.5rem minmax(0, 1fr); }
  .home-orphans__footer { align-items: flex-start; }
  .rd-reach__achievements,
  .rd-reach__needs-grid { grid-template-columns: 1fr; }
  .rd-reach-stat--primary { grid-column: auto; }
  .rd-reach-stat { border-inline: 0; }
  .rd-reach-stat__icon { margin-block-end: 1.6rem; }
  .rd-reach__needs { padding: 1rem; }
  .rd-reach__needs-head { padding: .5rem .35rem 0; }
  .rd-gap-card { padding: 1.35rem .35rem; }
  .rd-gap-card__progress-copy,
  .rd-reach__footer { align-items: flex-start; flex-direction: column; }
}

.rd-impact-ledger { position: relative; overflow: hidden; padding-block: 7rem; background: var(--rd-ink); color: var(--rd-on-dark); }
.rd-impact-ledger .rd-wrap { position: relative; z-index: 1; }
.rd-impact-ledger__head { max-width: 780px; margin-bottom: 2.2rem; }
.rd-impact-ledger .rd-impact-ledger__head h2 { margin: .9rem 0 1rem; color: var(--rd-on-dark); font-size: clamp(2.625rem, 5vw, 4rem); line-height: var(--type-leading-tight); letter-spacing: -.035em; text-wrap: balance; font-weight: var(--type-weight-bold); font-size: var(--type-section); }
.rd-impact-ledger__head > p:not(.rd-eyebrow) { max-width: 680px; color: rgba(255,248,236,.76); font-size: var(--type-body-lg); line-height: var(--type-leading-body); }
.rd-impact-ledger__stamp { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: 1.25rem; color: rgba(255,248,236,.72); font-size: var(--type-label); }
.rd-impact-ledger__stamp span { padding: .4rem .8rem; border: 1px solid rgba(201,162,39,.45); border-radius: 999px; }
.rd-impact-tabs { display: flex; flex-wrap: wrap; gap: .55rem; margin-bottom: 2rem; }
.rd-impact-tab { position: relative; min-height: 46px; padding: .65rem 1.1rem; border: 1px solid rgba(255,248,236,.25); border-radius: 999px; background: transparent; color: var(--rd-on-dark); font: inherit; font-size: var(--type-small); font-weight: var(--type-weight-bold); cursor: pointer; transition: background-color .18s ease, color .18s ease, border-color .18s ease; }
.rd-impact-tab:hover { border-color: var(--rd-gold); }
.rd-impact-tab:focus-visible, .rd-impact-actions a:focus-visible { outline: 3px solid var(--rd-gold); outline-offset: 3px; }
.rd-impact-tab.is-active { border-color: var(--rd-cream); background: var(--rd-cream); color: var(--rd-ink); }
.rd-impact-tab.is-active::after { margin-inline-start: .45rem; color: var(--rd-red); content: "✓"; }
.rd-impact-panel { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 3rem; align-items: stretch; }
.rd-impact-panel[hidden] { display: none; }
.rd-impact-story { grid-column: span 5; min-height: 540px; position: relative; overflow: hidden; border-radius: 28px; background: #0e3529; color: var(--rd-on-dark); }
.rd-impact-story--empty::before { content: ""; position: absolute; inset: -20%; opacity: .3; background: repeating-radial-gradient(circle at 70% 25%, transparent 0 16px, rgba(201,162,39,.2) 17px 18px); }
.rd-impact-story::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(8,38,30,.95), rgba(8,38,30,.08) 72%); pointer-events: none; }
.rd-impact-story__image { position: absolute; inset: 0; background: #0e3529; }
.rd-impact-story__image img { width: 100%; height: 100%; display: block; object-fit: cover; outline: 1px solid oklch(1 0 0 / .1); outline-offset: -1px; transition: opacity 220ms ease; }
.rd-impact-story__copy { position: absolute; z-index: 1; inset-inline: 1.5rem; inset-block-end: 1.5rem; }
.rd-impact-story__label { color: var(--rd-gold); font-size: var(--type-label); font-weight: var(--type-weight-bold); letter-spacing: .06em; }
.rd-impact-ledger .rd-impact-story__copy h3 { margin: .45rem 0; color: var(--rd-on-dark); font-size: var(--type-h3); line-height: var(--type-leading-small); text-wrap: balance; }
.rd-impact-story__copy > p:not(.rd-impact-story__label) { color: rgba(255,248,236,.76); font-size: var(--type-small); line-height: var(--type-leading-body); }
.rd-impact-story__copy a { width: fit-content; min-height: 44px; display: inline-flex; align-items: center; margin-top: .8rem; color: var(--rd-on-dark); font-size: var(--type-small); font-weight: var(--type-weight-bold); border-bottom: 1px solid var(--rd-gold); text-decoration: none; }
.rd-impact-metrics { grid-column: span 7; align-self: stretch; display: grid; grid-auto-rows: minmax(0, 1fr); border-block: 1px solid rgba(255,248,236,.18); }
.rd-impact-metric { display: grid; grid-template-columns: minmax(150px, .72fr) minmax(0, 1fr); align-items: center; gap: 1.5rem; padding: 1.5rem .25rem; border-bottom: 1px solid rgba(255,248,236,.16); color: var(--rd-on-dark); }
.rd-impact-metric:last-child { border-bottom: 0; }
.rd-impact-metric strong { color: var(--rd-on-dark); font-size: clamp(3.25rem, 5.5vw, 4.75rem); font-weight: var(--type-weight-bold); line-height: var(--type-leading-tight); font-variant-numeric: tabular-nums; }
.rd-impact-ledger .rd-impact-metric__copy h3 { color: var(--rd-on-dark); font-size: var(--type-body-lg); line-height: var(--type-leading-small); }
.rd-impact-metric__copy p, .rd-impact-metric__copy a { color: rgba(255,248,236,.68); font-size: var(--type-label); line-height: var(--type-leading-body); }
.rd-impact-metric__copy a { width: fit-content; min-height: 44px; display: inline-flex; align-items: center; margin-top: .25rem; color: var(--rd-gold); border-bottom: 1px solid currentColor; text-decoration: none; }
.rd-impact-metric__copy a:focus-visible { outline: 3px solid var(--rd-gold); outline-offset: 3px; }
.rd-impact-empty { min-width: 0; align-self: center; display: grid; gap: .65rem; padding: clamp(2rem, 5vw, 4rem); }
.rd-impact-ledger .rd-impact-empty h3 { max-width: 24ch; color: var(--rd-on-dark); font-size: clamp(1.7rem, 3vw, 2.4rem); line-height: var(--type-leading-heading); text-wrap: balance; }
.rd-impact-empty > p:not(.rd-impact-story__label) { max-width: 48ch; color: rgba(255,248,236,.7); font-size: var(--type-control); line-height: var(--type-leading-body); }
.rd-impact-empty > a { width: fit-content; min-height: 44px; display: inline-flex; align-items: center; margin-top: .35rem; color: var(--rd-gold); font-weight: var(--type-weight-bold); border-bottom: 1px solid currentColor; text-decoration: none; }
.rd-impact-empty > a:focus-visible { outline: 3px solid var(--rd-gold); outline-offset: 3px; }
.rd-impact-review { padding: 2rem 0; color: rgba(255,248,236,.75); font-size: var(--type-control); }
.rd-impact-actions { display: flex; align-items: center; gap: 1.4rem; flex-wrap: wrap; margin-top: 2rem; padding-top: 1.6rem; border-top: 1px solid rgba(255,248,236,.16); }
.rd-impact-actions__primary { padding: .85rem 1.35rem; border-radius: 12px; background: var(--rd-red); color: #fff; font-weight: var(--type-weight-bold); text-decoration: none; }
.rd-impact-actions__secondary { min-height: 44px; display: inline-flex; align-items: center; color: var(--rd-gold); font-weight: var(--type-weight-bold); border-bottom: 1px solid currentColor; text-decoration: none; }
.rd-impact-actions > span { color: rgba(255,248,236,.72); font-size: var(--type-label); }
.rd-field-preview { padding-block: 6.5rem; }
.rd-field-preview__head { max-width: 700px; margin-bottom: 2.6rem; }
.rd-field-preview__head h2 { margin-top: .7rem; color: var(--rd-ink); font-size: clamp(2.6rem, 5vw, 4.8rem); line-height: var(--type-leading-tight); letter-spacing: -.05em; }
.rd-field-preview__head > p { max-width: 38rem; margin-top: 1rem; color: var(--rd-muted); font-size: var(--type-body); line-height: var(--type-leading-body); }
.rd-field-preview__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); grid-template-rows: repeat(2, 240px); gap: 1rem; }
.rd-field-preview__item { min-width: 0; overflow: hidden; border-radius: 22px; background: var(--rd-cream-2); }
.rd-field-preview__item--1 { grid-column: 1 / span 7; grid-row: 1 / span 2; }
.rd-field-preview__item--2 { grid-column: 8 / span 5; grid-row: 1; }
.rd-field-preview__item--3 { grid-column: 8 / span 2; grid-row: 2; }
.rd-field-preview__item--4 { grid-column: 10 / span 3; grid-row: 2; }
.rd-field-preview__item a { position: relative; display: block; width: 100%; height: 100%; color: inherit; text-decoration: none; }
.rd-field-preview__image { position: absolute; inset: 0; display: block; overflow: hidden; background: var(--rd-cream-2); }
.rd-field-preview__image img { width: 100%; height: 100%; display: block; object-fit: cover; outline: 1px solid oklch(0 0 0 / .1); outline-offset: -1px; transition: transform .24s ease; }
.rd-field-preview__caption { position: absolute; inset-inline: 0; inset-block-end: 0; display: grid; gap: .25rem; padding: 1.2rem; background: linear-gradient(transparent, rgba(8,38,30,.9)); color: var(--rd-on-dark); transform: translateY(0); transition: transform .24s ease; }
.rd-field-preview__item:hover .rd-field-preview__image img, .rd-field-preview__item:focus-within .rd-field-preview__image img { transform: scale(1.025); }
.rd-field-preview__item:hover .rd-field-preview__caption, .rd-field-preview__item:focus-within .rd-field-preview__caption { transform: translateY(-8px); }
.rd-field-preview__meta { color: var(--rd-gold); font-size: var(--type-caption); font-weight: var(--type-weight-bold); letter-spacing: .07em; text-transform: uppercase; }
.rd-field-preview__caption strong { max-width: 28ch; font-size: var(--type-body-lg); line-height: var(--type-leading-heading); }
.rd-field-preview__item--1 .rd-field-preview__caption strong { font-size: var(--type-h3); }
.rd-field-preview__archive { position: relative; background: var(--rd-ink); }
.rd-field-preview__archive::before { content: ""; position: absolute; inset: -35%; background: repeating-radial-gradient(circle, transparent 0 8px, rgba(201,162,39,.12) 8px 9px); pointer-events: none; }
.rd-field-preview__archive a { position: relative; display: flex; flex-direction: column; justify-content: flex-end; gap: .35rem; padding: 1.25rem; color: var(--rd-on-dark); }
.rd-field-preview__archive span { color: var(--rd-gold); font-size: var(--type-caption); font-weight: var(--type-weight-bold); }
.rd-field-preview__archive strong { max-width: 16ch; font-size: var(--type-body); line-height: var(--type-leading-small); }
.rd-field-preview__caption > span:not(.rd-field-preview__meta) { color: rgba(255,248,236,.72); font-size: var(--type-label); }
.rd-field-preview__verified { color: var(--rd-gold); font-size: var(--type-caption); }
.rd-field-preview__cta { display: inline-flex; margin-top: 1.5rem; }
@media (max-width: 1020px) {
  .rd-needband .rd-needband__grid,
  .rd-needband .rd-needband__grid:has(.rd-needband__cell:nth-child(4)) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rd-needband__grid:not(:has(.rd-needband__cell:nth-child(4))) .rd-needband__cell:last-child { grid-column: 1 / -1; }
}
@media (max-width: 800px) {
  .rd-field-preview { padding-block: 5rem; }
  .rd-field-preview__head { display: block; }
  .rd-field-preview__head > p { margin-top: 1rem; }
  .rd-field-preview__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: 320px repeat(2, 220px); }
  .rd-field-preview__item--1 { grid-column: 1 / -1; grid-row: 1; }
  .rd-field-preview__item--2 { grid-column: 1 / -1; grid-row: 2; }
  .rd-field-preview__item--3 { grid-column: 1; grid-row: 3; }
  .rd-field-preview__item--4 { grid-column: 2; grid-row: 3; }
}
@media (max-width: 640px) {
  .rd-impact-ledger { padding-block: 4.5rem; }
  .rd-impact-tabs { display: grid; grid-template-columns: minmax(0, 1fr); }
  .rd-impact-tab { min-height: 48px; text-align: start; }
  .rd-impact-panel { display: block; }
  .rd-impact-story { min-height: 430px; margin-bottom: 1.5rem; }
  .rd-impact-metric { grid-template-columns: minmax(0, 1fr); gap: .5rem; padding-block: 1.5rem; }
  .rd-impact-metric strong { font-size: 3rem; }
}
@media (max-width: 520px) {
  .rd-field-preview__grid { display: block; }
  .rd-field-preview__item { min-height: 260px; margin-bottom: 1rem; }
}
@media (prefers-reduced-motion: reduce) {
  .rd-impact-tab, .rd-impact-story__image img, .rd-field-preview__image img, .rd-field-preview__caption { transition: none; }
}

/* Pages: families — moved from static/css/pages/families.css */
/* Family sponsorship pages follow Hand Of Giving's cream, ink, red, and gold system. */
.family-program-page,
.family-profile-page {
  background: var(--rd-cream);
  color: var(--rd-ink);
}

.family-hero {
  padding-block: clamp(3.5rem, 7vw, 6.5rem);
  color: var(--rd-on-dark);
  background: var(--rd-ink);
}

.family-hero__layout {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(18rem, .75fr);
  gap: clamp(3rem, 8vw, 7rem);
  align-items: end;
}

.family-hero__copy h1 {
  max-inline-size: 13ch;
  margin: .8rem 0 1.25rem;
  color: var(--rd-on-dark);
  font-size: clamp(3rem, 7vw, 6.4rem);
  font-weight: var(--type-weight-bold);
  line-height: var(--type-leading-tight);
  letter-spacing: -.055em;
  text-wrap: balance;
}

[dir="rtl"] .family-hero__copy h1 { line-height: var(--type-leading-heading); letter-spacing: 0; }

.family-hero__lede {
  max-inline-size: 60ch;
  margin: 0;
  color: rgb(255 248 236 / .76);
  font-size: clamp(1rem, 1.5vw, 1.2rem);
  line-height: var(--type-leading-body);
  text-wrap: pretty;
}

.family-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem 1.4rem;
  align-items: center;
  margin-block-start: 2rem;
}

.family-hero__link { color: var(--rd-on-dark); }

.family-hero__record {
  padding-block-start: 1.25rem;
  border-block-start: 1px solid rgb(255 248 236 / .24);
}

.family-hero__record > p {
  margin: 0 0 1rem;
  color: var(--rd-gold);
  font-size: var(--type-label);
  font-weight: var(--type-weight-bold);
  letter-spacing: .08em;
  text-transform: uppercase;
}

.family-hero__record dl { display: grid; gap: 0; margin: 0; }
.family-hero__record dl > div {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding-block: .9rem;
  border-block-end: 1px solid rgb(255 248 236 / .14);
}
.family-hero__record dt { color: rgb(255 248 236 / .68); font-size: var(--type-control); }
.family-hero__record dd {
  margin: 0;
  color: var(--rd-on-dark);
  font-size: var(--type-h4);
  font-weight: var(--type-weight-bold);
  font-variant-numeric: tabular-nums;
}
.family-hero__record small { display: block; margin-block-start: 1rem; color: rgb(255 248 236 / .52); line-height: var(--type-leading-small); }

.family-process { padding-block: clamp(4rem, 8vw, 7rem); }
.family-process__layout {
  display: grid;
  grid-template-columns: minmax(16rem, .8fr) minmax(0, 1.2fr);
  gap: clamp(3rem, 8vw, 7rem);
}
.family-process header h2,
.family-directory__head h2,
.family-priority h2,
.family-finale h2 {
  margin: .65rem 0 1rem;
  font-size: clamp(2.25rem, 4.5vw, 4.2rem);
  line-height: var(--type-leading-tight);
  letter-spacing: -.04em;
  text-wrap: balance;
}
[dir="rtl"] :is(.family-process header h2, .family-directory__head h2, .family-priority h2, .family-finale h2) { line-height: var(--type-leading-heading); letter-spacing: 0; }
.family-process header > p:last-child { max-inline-size: 55ch; color: var(--rd-muted); line-height: var(--type-leading-body); }
.family-process ol { margin: 0; padding: 0; list-style: none; }
.family-process li {
  display: grid;
  grid-template-columns: 3rem minmax(0, 1fr);
  gap: 1rem;
  padding-block: 1.35rem;
  border-block-start: 1px solid rgb(8 38 30 / .14);
}
.family-process li:last-child { border-block-end: 1px solid rgb(8 38 30 / .14); }
.family-process li > span { color: var(--rd-red); font-weight: var(--type-weight-bold); font-variant-numeric: tabular-nums; }
.family-process h3 { margin: 0 0 .45rem; font-size: var(--type-h4); }
.family-process li p { max-inline-size: 60ch; margin: 0; color: var(--rd-muted); line-height: var(--type-leading-body); }

.family-priority { padding-block: clamp(3.5rem, 7vw, 6rem); color: var(--rd-on-dark); background: var(--rd-red-dark); }
.family-priority__layout { display: grid; grid-template-columns: minmax(15rem, .7fr) minmax(0, 1.3fr); gap: clamp(3rem, 8vw, 7rem); }
.family-priority h2 { color: var(--rd-on-dark); }
.family-priority header > p:last-child { max-inline-size: 45ch; color: rgb(255 248 236 / .72); line-height: var(--type-leading-body); }
.family-priority__links { display: grid; align-content: start; }
.family-priority__links a {
  display: grid;
  grid-template-columns: 2.5rem minmax(0, 1fr);
  gap: .25rem 1rem;
  min-height: 5.5rem;
  padding-block: 1.1rem;
  color: inherit;
  border-block-start: 1px solid rgb(255 248 236 / .2);
  transition-property: color, transform;
  transition-duration: 180ms;
}
.family-priority__links a:last-child { border-block-end: 1px solid rgb(255 248 236 / .2); }
.family-priority__links a:hover { color: var(--rd-gold); transform: translateX(.25rem); }
[dir="rtl"] .family-priority__links a:hover { transform: translateX(-.25rem); }
.family-priority__links span { grid-row: 1 / 3; color: var(--rd-gold); font-weight: var(--type-weight-bold); }
.family-priority__links strong { font-size: var(--type-h4); }
.family-priority__links small { color: rgb(255 248 236 / .65); }

.family-directory { padding-block: clamp(4rem, 8vw, 7rem); }
.family-directory__head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(18rem, .65fr);
  gap: 2rem;
  align-items: end;
  margin-block-end: 2rem;
}
.family-directory__head h2 { margin-block-end: 0; }
.family-directory__head > p { max-inline-size: 52ch; margin: 0; color: var(--rd-muted); line-height: var(--type-leading-body); }

.family-filters {
  display: grid;
  grid-template-columns: minmax(13rem, 1.4fr) repeat(2, minmax(11rem, 1fr)) auto;
  gap: .85rem;
  align-items: end;
  padding: 1.1rem;
  background: var(--rd-cream-2);
}
.family-filters label { display: grid; gap: .4rem; }
.family-filters label > span { color: var(--rd-muted); font-size: var(--type-caption); font-weight: var(--type-weight-bold); }
.family-filters :is(input, select) {
  width: 100%;
  min-height: 48px;
  border: 1px solid rgb(8 38 30 / .18);
  border-radius: 10px;
  padding: .72rem .85rem;
  color: var(--rd-ink);
  background: #fff;
  font: inherit;
  font-size: var(--type-body);
}
.family-filters :is(input, select):focus-visible { border-color: var(--rd-red); outline: 3px solid rgb(164 35 32 / .16); outline-offset: 1px; }
.family-filters button {
  min-height: 48px;
  border: 0;
  border-radius: 10px;
  padding: .72rem 1.1rem;
  color: #fff;
  background: var(--rd-red);
  font: inherit;
  font-weight: var(--type-weight-bold);
  cursor: pointer;
  transition-property: background-color, transform;
  transition-duration: 180ms;
}
.family-filters button:hover { background: var(--rd-red-dark); }
.family-filters button:active { transform: scale(.96); }
.family-directory__results { position: relative; margin-block-start: 2rem; }
.family-card__body {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .85rem 1rem;
}
.family-card__identity { flex: 1 1 12rem; min-inline-size: 0; }
.family-card__identity .rd-child__name { min-inline-size: 0; margin: 0; }
.family-card__funding { flex: 1 0 100%; min-inline-size: 0; }
.family-card__body .rd-child__cta {
  flex: 0 0 auto;
  margin: 0;
}
.family-card__priority { color: #fff; background: var(--rd-red); }
.family-pagination { display: flex; justify-content: center; align-items: center; gap: 1rem; margin-block-start: 2.5rem; }
.family-pagination a { min-height: 44px; padding: .7rem 1rem; color: var(--rd-ink); border: 1px solid rgb(8 38 30 / .18); border-radius: 10px; }
.family-pagination a:hover { color: var(--rd-red); border-color: var(--rd-red); }
.family-pagination span { color: var(--rd-muted); font-size: var(--type-small); }
.family-empty { padding-block: 4rem; text-align: center; }
.family-empty h3 { margin: .5rem 0; font-size: var(--type-h2); }
.family-empty > p:not(.rd-eyebrow) { color: var(--rd-muted); }

.family-finale { padding-block: clamp(3.5rem, 7vw, 5.5rem); color: var(--rd-on-dark); background: var(--rd-ink); }
.family-finale__layout { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2rem; align-items: end; }
.family-finale h2 { max-inline-size: 18ch; margin-block-end: 0; color: var(--rd-on-dark); }

@media (max-width: 980px) {
  .family-hero__layout,
  .family-process__layout,
  .family-priority__layout,
  .family-directory__head { grid-template-columns: minmax(0, 1fr); }
  .family-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
  .family-hero__copy h1 { font-size: clamp(2.7rem, 14vw, 4rem); }
  .family-filters,
  .family-finale__layout { grid-template-columns: minmax(0, 1fr); }
  .family-filters button { width: 100%; }
  .family-priority__links a { grid-template-columns: 2rem minmax(0, 1fr); }
  .family-finale__layout { align-items: start; }
  .family-finale__layout .rd-btn-light { width: fit-content; }

  .family-card__body {
    align-items: flex-start;
  }

}

/* Family profile */
.family-profile-crumbs { padding-block: 1rem .5rem; }
.family-profile-hero { padding-block: 1rem clamp(4rem, 8vw, 7rem); }
.family-profile-hero__layout {
  display: grid;
  grid-template-columns: minmax(17rem, .75fr) minmax(0, 1.25fr);
  gap: clamp(3rem, 8vw, 7rem);
  align-items: center;
  overflow: hidden;
  border-radius: 24px;
  padding: clamp(1.3rem, 3vw, 2.5rem);
  color: var(--rd-on-dark);
  background: var(--rd-ink);
}
.family-profile-hero__media { position: relative; min-height: 30rem; overflow: hidden; border-radius: 16px; background: var(--rd-red-dark); }
.family-profile-hero__media img { width: 100%; height: 100%; min-height: 30rem; object-fit: cover; outline: 1px solid oklch(1 0 0 / .1); outline-offset: -1px; }
.family-profile-hero__media > div { display: grid; min-height: 30rem; place-items: center; color: var(--rd-on-dark); font-size: 5rem; font-weight: var(--type-weight-bold); }
.family-profile-hero__media > span { position: absolute; inset: auto auto 1rem 1rem; max-width: calc(100% - 2rem); padding: .55rem .75rem; border-radius: 8px; color: var(--rd-ink); background: var(--rd-on-dark); font-size: var(--type-label); font-weight: var(--type-weight-bold); }
[dir="rtl"] .family-profile-hero__media > span { inset-inline: 1rem auto; }
.family-profile-hero__copy { max-inline-size: 45rem; }
.family-profile-hero__copy h1 { max-inline-size: 12ch; margin: .7rem 0 1rem; color: var(--rd-on-dark); font-size: clamp(3rem, 6vw, 5.6rem); line-height: var(--type-leading-tight); letter-spacing: -.05em; text-wrap: balance; }
[dir="rtl"] .family-profile-hero__copy h1 { line-height: var(--type-leading-heading); letter-spacing: 0; }
.family-profile-hero__facts { display: flex; flex-wrap: wrap; gap: .75rem 1.8rem; margin: 0 0 1.25rem; }
.family-profile-hero__facts div { display: grid; gap: .2rem; }
.family-profile-hero__facts dt { color: rgb(255 248 236 / .58); font-size: var(--type-caption); }
.family-profile-hero__facts dd { margin: 0; color: var(--rd-gold); font-weight: var(--type-weight-bold); font-variant-numeric: tabular-nums; }
.family-profile-hero__lede { max-inline-size: 60ch; margin: 0 0 1.7rem; color: rgb(255 248 236 / .76); line-height: var(--type-leading-body); text-wrap: pretty; }
.family-profile-hero__actions { display: flex; flex-wrap: wrap; gap: .75rem; }

.family-profile-body { padding-block: 0 clamp(4rem, 8vw, 7rem); }
.family-profile-body__layout { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(18rem, .65fr); gap: clamp(2rem, 5vw, 4.5rem); align-items: start; }
.family-profile-main { display: grid; gap: clamp(3rem, 6vw, 5rem); }
.family-profile-section,
.family-profile-need { padding-block-start: 1.4rem; border-block-start: 1px solid rgb(8 38 30 / .16); }
.family-profile-section h2,
.family-profile-need h2 { margin: .55rem 0 1rem; font-size: clamp(2rem, 4vw, 3.4rem); line-height: var(--type-leading-tight); letter-spacing: -.035em; text-wrap: balance; }
[dir="rtl"] :is(.family-profile-section h2, .family-profile-need h2) { line-height: var(--type-leading-heading); letter-spacing: 0; }
.family-profile-prose,
.family-profile-need > p:last-child { max-inline-size: 68ch; color: var(--rd-muted); font-size: var(--type-body); line-height: var(--type-leading-body); }
.family-profile-prose p { margin-block: 0 1rem; }
.family-profile-need { padding: 1.5rem; border: 0; background: var(--rd-cream-2); }
.family-profile-media { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.family-profile-media a { display: grid; gap: .65rem; color: var(--rd-ink); }
.family-profile-media img,
.family-profile-media__video { width: 100%; aspect-ratio: 4 / 3; border-radius: 12px; object-fit: cover; outline: 1px solid oklch(0 0 0 / .1); outline-offset: -1px; }
.family-profile-media__video { display: grid; place-items: center; color: var(--rd-on-dark); background: var(--rd-ink); font-size: var(--type-h2); }
.family-profile-media strong { font-size: var(--type-control); }

.family-sponsorship { position: sticky; top: 6rem; padding: 1.5rem; color: var(--rd-ink); background: #fff; box-shadow: 0 24px 60px -48px rgb(8 38 30 / .8), 0 0 0 1px rgb(8 38 30 / .08); }
.family-sponsorship h2 { margin: .4rem 0 1.2rem; font-size: clamp(2.5rem, 5vw, 4rem); line-height: 1; font-variant-numeric: tabular-nums; }
.family-sponsorship h2 small { color: var(--rd-muted); font-size: var(--type-body); font-weight: var(--type-weight-semibold); }
.family-sponsorship__progress { padding-block: 1rem; border-block: 1px solid rgb(8 38 30 / .12); }
.family-sponsorship__progress > div { display: flex; justify-content: space-between; gap: 1rem; }
.family-sponsorship__progress progress { width: 100%; height: .55rem; margin-block: .8rem .4rem; border: 0; border-radius: 999px; overflow: hidden; background: rgb(8 38 30 / .12); }
.family-sponsorship__progress progress::-webkit-progress-bar { background: rgb(8 38 30 / .12); }
.family-sponsorship__progress progress::-webkit-progress-value { background: var(--rd-red); }
.family-sponsorship__progress progress::-moz-progress-bar { background: var(--rd-red); }
.family-sponsorship__progress p { margin: 0; color: var(--rd-muted); font-size: var(--type-label); font-variant-numeric: tabular-nums; }
.family-sponsorship__action { display: grid; min-height: 50px; place-items: center; margin-block: 1.25rem; border-radius: 10px; padding: .75rem 1rem; color: #fff; background: var(--rd-red); font-weight: var(--type-weight-bold); transition-property: background-color, transform; transition-duration: 180ms; }
.family-sponsorship__action:hover { color: #fff; background: var(--rd-red-dark); }
.family-sponsorship__action:active { transform: scale(.96); }
.family-sponsorship__message { display: flex; min-height: 48px; align-items: center; justify-content: center; gap: .45rem; margin-block: .75rem 1.25rem; border: 1px solid rgb(8 38 30 / .2); border-radius: 10px; color: var(--rd-ink); font-weight: var(--type-weight-bold); }
.family-sponsorship__message:hover { color: var(--rd-red); border-color: var(--rd-red); }
.family-sponsorship__message .rd-ui-icon { width: 1.05rem; height: 1.05rem; }
.family-sponsorship__complete { margin-block: 1.25rem; padding: 1rem; color: var(--rd-ink); background: var(--rd-cream-2); font-weight: var(--type-weight-bold); }
.family-sponsorship__details { display: grid; gap: 0; margin: 0; }
.family-sponsorship__details div { display: flex; justify-content: space-between; gap: 1rem; padding-block: .75rem; border-block-end: 1px solid rgb(8 38 30 / .1); }
.family-sponsorship__details dt { color: var(--rd-muted); }
.family-sponsorship__details dd { margin: 0; font-weight: var(--type-weight-bold); text-align: end; }
.family-sponsorship__note { margin: 1.2rem 0 0; color: var(--rd-muted); font-size: var(--type-label); line-height: var(--type-leading-body); }
.family-profile-finale { padding-block: clamp(3.5rem, 7vw, 5.5rem); color: var(--rd-on-dark); background: var(--rd-red-dark); }
.family-profile-finale__layout { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2rem; align-items: end; }
.family-profile-finale h2 { max-inline-size: 18ch; margin: .6rem 0 0; color: var(--rd-on-dark); font-size: clamp(2.2rem, 4vw, 3.8rem); line-height: var(--type-leading-tight); letter-spacing: -.04em; text-wrap: balance; }

@media (max-width: 980px) {
  .family-profile-hero__layout,
  .family-profile-body__layout { grid-template-columns: minmax(0, 1fr); }
  .family-profile-hero__media { max-width: 28rem; }
  .family-sponsorship { position: static; }
}

@media (max-width: 640px) {
  .family-profile-hero__layout { padding: 1rem; }
  .family-profile-hero__media,
  .family-profile-hero__media img,
  .family-profile-hero__media > div { min-height: 22rem; }
  .family-profile-hero__copy h1 { font-size: clamp(2.7rem, 14vw, 4rem); }
  .family-profile-media,
  .family-profile-finale__layout { grid-template-columns: minmax(0, 1fr); }
  .family-profile-finale__layout { align-items: start; }
  .family-profile-finale__layout .rd-btn-light { width: fit-content; }
}

@media (prefers-reduced-motion: reduce) {
  .family-priority__links a,
  .family-filters button,
  .family-card,
  .family-sponsorship__action { transition-duration: 0s; }
}

/* Pages: campaigns/orphan list — moved from static/css/pages/campaigns.css */
/* Shared campaign spotlight for program pages. */
.rd-campaigns {
  position: relative;
  padding-block: clamp(3.5rem, 7vw, 6rem);
  width: 100%;
}

.rd-campaigns__head {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(20rem, 1.1fr);
  gap: clamp(1.5rem, 5vw, 5rem);
  align-items: end;
  margin-bottom: clamp(1.8rem, 4vw, 3rem);
  padding-bottom: clamp(1.4rem, 3vw, 2rem);
  border-bottom: 1px solid rgba(8, 38, 30, .13);
}
.rd-campaigns__head .rd-eyebrow { margin-bottom: .75rem; }
.rd-campaigns__head .rd-h-section { margin: 0; color: var(--rd-ink); }
.rd-campaigns__head > p {
  max-width: 58ch;
  justify-self: end;
  margin: 0;
  color: var(--rd-muted);
  font-size: var(--type-body);
  line-height: var(--type-leading-body);
  text-wrap: pretty;
}

.rd-campaigns__layout {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(25rem, 1.1fr);
  gap: clamp(1.25rem, 3vw, 2rem);
  align-items: start;
}
.rd-campaign-results { min-width: 0; }

/* Campaign story card */
.rd-campaign-card {
  overflow: hidden;
  border-radius: 28px;
  background: #fff;
  box-shadow:
    0 0 0 1px oklch(0 0 0 / .06),
    0 1px 2px -1px oklch(0 0 0 / .06),
    0 18px 42px -28px rgba(8, 38, 30, .28);
  transition-property: box-shadow, transform;
  transition-duration: .18s;
  transition-timing-function: cubic-bezier(.2, 0, 0, 1);
}
.rd-campaign-card:hover {
  box-shadow:
    0 0 0 1px oklch(0 0 0 / .08),
    0 2px 5px -2px oklch(0 0 0 / .08),
    0 24px 48px -26px rgba(8, 38, 30, .3);
}
.rd-campaign-card__top {
  display: flex;
  min-height: 104px;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
  padding: 1.35rem clamp(1.25rem, 3vw, 1.8rem);
  color: var(--rd-on-dark);
  background:var(--rd-ink);
}
.rd-campaign-card__status,
.rd-campaign-card__top-actions,
.rd-campaign-card__dates {
  display: flex;
  align-items: center;
}
.rd-campaign-card__status { min-width: 0; gap: .8rem; }
.rd-campaign-card__mark {
  display: grid;
  width: 44px;
  height: 44px;
  flex: none;
  place-items: center;
  border-radius: 13px;
  color: var(--rd-gold);
  background: rgba(255, 248, 236, .1);
  box-shadow: inset 0 0 0 1px rgba(255, 248, 236, .13);
}
.rd-campaign-card__mark .rd-ui-icon { width: 21px; height: 21px; }
.rd-campaign-card__kicker {
  display: block;
  margin-bottom: .15rem;
  color: rgba(255, 248, 236, .62);
  font-size: var(--type-caption);
  line-height: var(--type-leading-heading);
  font-weight: var(--type-weight-bold);
  letter-spacing: .07em;
  text-transform: uppercase;
}
[dir="rtl"] .rd-campaign-card__kicker { letter-spacing: 0; }
.rd-campaign-card__status strong {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  color: var(--rd-on-dark);
  font-size: var(--type-control);
  line-height: var(--type-leading-heading);
}
.rd-campaign-card__status strong.is-ended { color: rgba(255, 248, 236, .65); }
.rd-status-dot {
  width: 8px;
  height: 8px;
  flex: none;
  border-radius: 50%;
  background: var(--rd-gold);
  box-shadow: 0 0 0 4px rgba(201, 162, 39, .14);
}
.rd-campaign-card__top-actions { flex: none; gap: .8rem; }
.rd-campaign-card__dates {
  flex-direction: column;
  align-items: flex-end;
  text-align: end;
}
[dir="rtl"] .rd-campaign-card__dates { align-items: flex-start; }
.rd-campaign-card__dates span {
  color: rgba(255, 248, 236, .58);
  font-size: var(--type-caption);
  line-height: var(--type-leading-heading);
}
.rd-campaign-card__dates b { margin-top: .18rem; color: var(--rd-on-dark); font-size: var(--type-small); }
.rd-campaign-share {
  display: inline-grid;
  width: 44px;
  height: 44px;
  flex: none;
  place-items: center;
  border: 0;
  border-radius: 13px;
  color: var(--rd-on-dark);
  background: rgba(255, 248, 236, .1);
  box-shadow: inset 0 0 0 1px rgba(255, 248, 236, .13);
  cursor: pointer;
  transition-property: color, background-color, box-shadow, transform;
  transition-duration: .16s;
}
.rd-campaign-share:hover { color: var(--rd-gold); background: rgba(255, 248, 236, .16); }
.rd-campaign-share:active { transform: scale(.96); }
.rd-campaign-share:focus-visible { outline: 2px solid var(--rd-gold); outline-offset: 2px; }

.rd-campaign-card__body { padding: clamp(1.5rem, 3vw, 2.25rem); }
.rd-campaign-card__intro { max-width: 65ch; }
.rd-campaign-card__index {
  margin: 0 0 .55rem;
  color: var(--rd-red);
  font-size: var(--type-caption);
  line-height: var(--type-leading-heading);
  font-weight: var(--type-weight-bold);
  letter-spacing: .06em;
  text-transform: uppercase;
}
[dir="rtl"] .rd-campaign-card__index { letter-spacing: 0; }
.rd-campaign-card__intro h3 {
  margin: 0;
  color: var(--rd-ink);
  font-size: clamp(1.55rem, 3vw, 2.25rem);
  line-height: var(--type-leading-heading);
  font-weight: var(--type-weight-bold);
  letter-spacing: -.02em;
  text-wrap: balance;
  overflow-wrap: anywhere;
}
[dir="rtl"] .rd-campaign-card__intro h3 { line-height: var(--type-leading-heading); letter-spacing: 0; }
.rd-campaign-card__description {
  margin: .85rem 0 0;
  color: var(--rd-muted);
  font-size: var(--type-control);
  line-height: var(--type-leading-body);
  text-wrap: pretty;
}
.rd-campaign-card__figures {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr));
  margin: 1.55rem 0 0;
  border-block: 1px solid rgba(8, 38, 30, .11);
}
.rd-campaign-card__figures > div { padding: 1rem 0; }
.rd-campaign-card__figures > div + div {
  padding-inline-start: 1.25rem;
  border-inline-start: 1px solid rgba(8, 38, 30, .11);
}
.rd-campaign-card__figures dt {
  color: var(--rd-muted);
  font-size: var(--type-label);
  line-height: var(--type-leading-heading);
  font-weight: var(--type-weight-bold);
}
.rd-campaign-card__figures dd {
  margin: .25rem 0 0;
  color: var(--rd-ink);
  font-size: clamp(1.35rem, 2.5vw, 1.8rem);
  line-height: var(--type-leading-tight);
  font-weight: var(--type-weight-bold);
  font-variant-numeric: tabular-nums;
}

.rd-campaign-progress,
.rd-campaign-start {
  margin-top: 1.4rem;
  border-radius: 16px;
  background: var(--rd-cream-2);
}
.rd-campaign-progress { padding: 1rem 1.1rem; }
.rd-campaign-progress__top,
.rd-campaign-progress__labels {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}
.rd-campaign-progress__top { color: var(--rd-ink); font-size: var(--type-small); font-weight: var(--type-weight-bold); }
.rd-campaign-progress__top b { color: var(--rd-red); font-variant-numeric: tabular-nums; }
.rd-campaign-progress__track {
  height: 9px;
  margin-top: .75rem;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(8, 38, 30, .1);
  box-shadow: inset 0 1px 2px rgba(8, 38, 30, .08);
}
.rd-campaign-progress__track i {
  display: block;
  height: 100%;
  max-width: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--rd-red), var(--rd-gold));
}
.rd-campaign-progress__labels { margin-top: .65rem; color: var(--rd-muted); font-size: var(--type-caption); }
.rd-campaign-start {
  display: flex;
  gap: .8rem;
  padding: 1rem 1.1rem;
  color: var(--rd-ink);
}
.rd-campaign-start > span {
  display: grid;
  width: 38px;
  height: 38px;
  flex: none;
  place-items: center;
  border-radius: 11px;
  color: var(--rd-red);
  background: #fff;
}
.rd-campaign-start b { font-size: var(--type-small); }
.rd-campaign-start p { margin: .2rem 0 0; color: var(--rd-muted); font-size: var(--type-label); line-height: var(--type-leading-small); }

.rd-campaign-support { margin-top: 1.55rem; }
.rd-campaign-support h4 {
  display: flex;
  align-items: center;
  gap: .45rem;
  margin: 0 0 .75rem;
  color: var(--rd-ink);
  font-size: var(--type-control);
  line-height: var(--type-leading-heading);
  font-weight: var(--type-weight-bold);
}
.rd-campaign-support h4 .rd-ui-icon { color: var(--rd-olive); }
.rd-campaign-support ul {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .35rem 1.1rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.rd-campaign-support li {
  display: flex;
  min-width: 0;
  gap: .55rem;
  align-items: flex-start;
  padding-block: .4rem;
  color: var(--rd-muted);
  font-size: var(--type-label);
  line-height: var(--type-leading-small);
}
.rd-campaign-support li i {
  width: 6px;
  height: 6px;
  flex: none;
  margin-top: .48rem;
  border-radius: 50%;
  background: var(--rd-gold);
}

.rd-campaign-nav {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: .75rem;
  padding: .9rem clamp(1rem, 3vw, 1.5rem);
  border-top: 1px solid rgba(8, 38, 30, .09);
  background: var(--rd-cream-2);
}
.rd-campaign-nav > a,
.rd-campaign-nav > span {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  gap: .4rem;
  border-radius: 12px;
  padding: .55rem .85rem;
  color: var(--rd-ink);
  font-size: var(--type-label);
  line-height: var(--type-leading-heading);
  font-weight: var(--type-weight-bold);
  transition-property: color, background-color, box-shadow, transform;
  transition-duration: .16s;
}
.rd-campaign-nav > a:first-child,
.rd-campaign-nav > span:first-child { justify-self: start; }
.rd-campaign-nav > a:last-child,
.rd-campaign-nav > span:last-child { justify-self: end; }
.rd-campaign-nav > a:hover { color: var(--rd-red); background: #fff; box-shadow: 0 1px 3px rgba(8, 38, 30, .08); }
.rd-campaign-nav > a:active { transform: scale(.96); }
.rd-campaign-nav > a:focus-visible { outline: 2px solid var(--rd-gold); outline-offset: 2px; }
.rd-campaign-nav .is-disabled { color: rgba(91, 107, 100, .45); }
.rd-campaign-nav > p {
  display: inline-flex;
  min-width: 56px;
  align-items: baseline;
  justify-content: center;
  gap: .3rem;
  margin: 0;
  color: var(--rd-muted);
  font-size: var(--type-label);
  font-variant-numeric: tabular-nums;
}
.rd-campaign-nav > p b { color: var(--rd-red); font-size: var(--type-body); }
.rd-campaign-card__foot {
  display: flex;
  justify-content: center;
  gap: .35rem;
  padding: .65rem 1rem;
  color: var(--rd-muted);
  font-size: var(--type-caption);
  line-height: var(--type-leading-heading);
  background: #fff;
}
.rd-campaign-card__foot span:first-child { color: var(--rd-ink); font-weight: var(--type-weight-bold); }

/* Donation panel */
.rd-campaign-give {
  position: sticky;
  top: 100px;
  overflow: hidden;
  border-radius: 28px;
  background: #fff;
  box-shadow:
    0 0 0 1px oklch(0 0 0 / .06),
    0 1px 2px -1px oklch(0 0 0 / .06),
    0 28px 64px -38px rgba(8, 38, 30, .38);
}
.rd-campaign-give__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.3rem clamp(1.25rem, 3vw, 1.8rem);
  color: #fff;
  background: var(--rd-ink);
}
.rd-campaign-give__head > span {
  display: grid;
  width: 44px;
  height: 44px;
  flex: none;
  place-items: center;
  border-radius: 13px;
  color: var(--rd-gold);
  background: rgba(255, 248, 236, .09);
  box-shadow: inset 0 0 0 1px rgba(255, 248, 236, .13);
}
.rd-campaign-give__head p {
  margin: 0 0 .2rem;
  color: var(--rd-gold);
  font-size: var(--type-caption);
  font-weight: var(--type-weight-bold);
  letter-spacing: .07em;
  text-transform: uppercase;
}
[dir="rtl"] .rd-campaign-give__head p { letter-spacing: 0; }
.rd-campaign-give__head h3 {
  margin: 0;
  color: #fff;
  font-size: var(--type-h4);
  line-height: var(--type-leading-heading);
  font-weight: var(--type-weight-bold);
  letter-spacing: -.02em;
  text-wrap: balance;
}
[dir="rtl"] .rd-campaign-give__head h3 { letter-spacing: 0; }
.rd-campaign-give__selected {
  padding: .9rem clamp(1.25rem, 3vw, 1.8rem);
  border-bottom: 1px solid rgba(8, 38, 30, .08);
  background: var(--rd-cream-2);
}
.rd-campaign-give__selected span {
  display: block;
  color: var(--rd-red);
  font-size: var(--type-caption);
  line-height: var(--type-leading-heading);
  font-weight: var(--type-weight-bold);
  letter-spacing: .06em;
  text-transform: uppercase;
}
[dir="rtl"] .rd-campaign-give__selected span { letter-spacing: 0; }
.rd-campaign-give__selected b {
  display: block;
  margin-top: .2rem;
  color: var(--rd-ink);
  font-size: var(--type-body);
  line-height: var(--type-leading-small);
  overflow-wrap: anywhere;
}
.rd-campaign-give__route {
  display: flex;
  align-items: center;
  gap: .45rem;
  margin: 0;
  padding: .8rem clamp(1.25rem, 3vw, 1.8rem);
  border-bottom: 1px solid rgba(8, 38, 30, .07);
  list-style: none;
}
.rd-campaign-give__route li {
  display: flex;
  min-width: 0;
  flex: 1;
  align-items: center;
  gap: .4rem;
  color: var(--rd-muted);
  font-size: var(--type-caption);
  font-weight: var(--type-weight-bold);
}
.rd-campaign-give__route li:not(:last-child)::after {
  height: 1px;
  flex: 1;
  margin-inline-start: .2rem;
  background: rgba(8, 38, 30, .14);
  content: "";
}
.rd-campaign-give__route li > span {
  display: grid;
  width: 26px;
  height: 26px;
  flex: none;
  place-items: center;
  border-radius: 50%;
  background: rgba(8, 38, 30, .08);
  font-variant-numeric: tabular-nums;
}
.rd-campaign-give__route .is-current { color: var(--rd-red); }
.rd-campaign-give__route .is-current > span { color: #fff; background: var(--rd-red); }
.rd-campaign-give__route .is-complete { color: var(--rd-olive); }
.rd-campaign-give__route .is-complete > span { background: rgba(90, 107, 63, .12); }
.rd-campaign-give__body { padding: 0; }
.rd-campaign-give__step { padding: clamp(1.15rem, 3vw, 1.55rem); }
.rd-campaign-give__step + .rd-campaign-give__step { border-top: 1px solid rgba(8, 38, 30, .08); }
.rd-campaign-give__step-head {
  display: flex;
  align-items: flex-start;
  gap: .7rem;
  margin-bottom: 1rem;
}
.rd-campaign-give__step-head > span {
  display: grid;
  width: 30px;
  height: 30px;
  flex: none;
  place-items: center;
  border-radius: 9px;
  color: #fff;
  background: var(--rd-red);
  font-size: var(--type-caption);
  font-weight: var(--type-weight-bold);
  font-variant-numeric: tabular-nums;
}
.rd-campaign-give__step-head h4 {
  margin: .05rem 0 0;
  color: var(--rd-ink);
  font-size: var(--type-body);
  line-height: var(--type-leading-heading);
  font-weight: var(--type-weight-bold);
  text-wrap: balance;
}
.rd-campaign-give__step-head p {
  margin: .18rem 0 0;
  color: var(--rd-muted);
  font-size: var(--type-caption);
  line-height: var(--type-leading-small);
}
.rd-campaign-amounts {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: .45rem;
}
.rd-campaign-amounts button {
  min-width: 0;
  min-height: 48px;
  border: 0;
  border-radius: 12px;
  padding: .55rem .35rem;
  color: var(--rd-ink);
  background: var(--rd-cream-2);
  box-shadow: inset 0 0 0 1px rgba(8, 38, 30, .11);
  font: inherit;
  font-size: var(--type-small);
  font-weight: var(--type-weight-bold);
  cursor: pointer;
  transition-property: color, background-color, box-shadow, transform;
  transition-duration: .16s;
}
.rd-campaign-amounts button:hover { color: var(--rd-red); box-shadow: inset 0 0 0 1px var(--rd-red); }
.rd-campaign-amounts button:active { transform: scale(.96); }
.rd-campaign-amounts button:focus-visible { outline: 3px solid var(--rd-gold); outline-offset: 2px; }
.rd-campaign-amounts button.is-active { color: #fff; background: var(--rd-red); box-shadow: none; }
.rd-campaign-custom {
  margin-top: .7rem;
  border-radius: 16px;
  padding: .85rem;
  background: var(--rd-cream-2);
  box-shadow: inset 0 0 0 1px rgba(8, 38, 30, .08);
}
.rd-campaign-custom[hidden], .rd-campaign-custom__error[hidden] { display: none; }
.rd-campaign-custom label { display: block; margin-bottom: .4rem; color: var(--rd-ink); font-size: var(--type-label); font-weight: var(--type-weight-bold); }
.rd-campaign-custom > div {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  min-height: 48px;
  align-items: center;
  gap: .5rem;
  border-radius: 10px;
  padding-inline: .8rem;
  background: #fff;
  box-shadow: 0 0 0 1px rgba(8, 38, 30, .14);
}
.rd-campaign-custom > div:focus-within { box-shadow: 0 0 0 2px var(--rd-red); }
.rd-campaign-custom input { width: 100%; min-width: 0; border: 0; padding: .7rem 0; color: var(--rd-ink); background: transparent; font: inherit; font-size: 1rem; font-weight: var(--type-weight-bold); outline: 0; }
.rd-campaign-custom > div > span { color: var(--rd-muted); font-size: var(--type-caption); font-weight: var(--type-weight-bold); }
.rd-campaign-custom p { margin: .4rem 0 0; color: var(--rd-muted); font-size: var(--type-caption); }
.rd-campaign-custom .rd-campaign-custom__error { color: var(--rd-red); font-weight: var(--type-weight-bold); }
.rd-campaign-give__payment .checkout-gateways { margin: 0; }
.rd-campaign-give__summary {
  padding: 1rem clamp(1.25rem, 3vw, 1.55rem);
  border-top: 1px solid rgba(8, 38, 30, .08);
  color: var(--rd-on-dark);
  background: var(--rd-ink);
}
.rd-campaign-give__summary > div {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 1rem;
}
.rd-campaign-give__summary span { color: rgba(255, 248, 236, .65); font-size: var(--type-caption); font-weight: var(--type-weight-bold); }
.rd-campaign-give__summary strong { color: var(--rd-gold); font-size: var(--type-h3); line-height: var(--type-leading-tight); font-variant-numeric: tabular-nums; }
.rd-campaign-give__summary p {
  display: flex;
  align-items: center;
  gap: .35rem;
  margin: .65rem 0 0;
  color: rgba(255, 248, 236, .58);
  font-size: var(--type-caption);
  line-height: var(--type-leading-small);
}
.rd-campaign-give__summary .rd-ui-icon { flex: none; color: var(--rd-gold); }

/* Keep shared checkout component visually native inside campaign checkout. */
.rd-campaign-give .crypto-payment-widget {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.rd-campaign-give .crypto-payment-widget [class~="bg-green-500"],
.rd-campaign-give .crypto-payment-widget [class~="bg-green-600"] { background-color: var(--rd-red) !important; }
.rd-campaign-give .crypto-payment-widget [class~="bg-green-50"],
.rd-campaign-give .crypto-payment-widget [class~="bg-green-100"] { background-color: var(--rd-cream-2) !important; }
.rd-campaign-give .crypto-payment-widget [class~="text-green-500"],
.rd-campaign-give .crypto-payment-widget [class~="text-green-600"],
.rd-campaign-give .crypto-payment-widget [class~="text-green-700"] { color: var(--rd-red) !important; }
.rd-campaign-give .crypto-payment-widget [class~="border-green-100"],
.rd-campaign-give .crypto-payment-widget [class~="border-green-200"],
.rd-campaign-give .crypto-payment-widget [class~="border-green-500"] { border-color: rgba(200, 16, 46, .18) !important; }
.rd-campaign-give .crypto-payment-widget input[id$="-amount"] { direction: ltr; }
.rd-campaign-give .checkout-gateway-tab { min-height: 70px; }
.rd-campaign-give .checkout-gateway-panel { padding: 1rem; }
.rd-campaign-give .stripe-checkout-form__submit:active,
.rd-campaign-give .crypto-payment-widget button[id$="-create-btn"]:active { transform: scale(.96); }

/* Empty states */
.rd-campaign-empty {
  display: grid;
  min-height: 280px;
  place-items: center;
  align-content: center;
  gap: .65rem;
  border-radius: 24px;
  padding: 2rem;
  color: var(--rd-muted);
  text-align: center;
  background: var(--rd-cream-2);
  box-shadow: 0 0 0 1px rgba(8, 38, 30, .07);
}
.rd-campaign-empty > span {
  display: grid;
  width: 54px;
  height: 54px;
  place-items: center;
  border-radius: 16px;
  color: var(--rd-red);
  background: #fff;
}
.rd-campaign-empty > span .rd-ui-icon { width: 24px; height: 24px; }
.rd-campaign-empty h3 { margin: .25rem 0 0; color: var(--rd-ink); font-size: var(--type-h4); font-weight: var(--type-weight-bold); }
.rd-campaign-empty p { margin: 0; }
.rd-campaign-empty a {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  gap: .4rem;
  margin-top: .4rem;
  border-radius: 12px;
  padding: .65rem 1rem;
  color: #fff;
  background: var(--rd-red);
  font-size: var(--type-small);
  font-weight: var(--type-weight-bold);
  transition-property: background-color, transform;
  transition-duration: .16s;
}
.rd-campaign-empty a:hover { background: var(--rd-red-dark); }
.rd-campaign-empty a:active { transform: scale(.96); }
.rd-campaign-empty--compact { min-height: 320px; border-radius: 0; box-shadow: none; }
.rd-campaign-empty--wide { min-height: 340px; }

/* Share result toast */
.rd-share-toast {
  position: fixed;
  inset-inline-start: 50%;
  bottom: 1.5rem;
  z-index: 80;
  display: flex;
  min-height: 44px;
  align-items: center;
  gap: .5rem;
  border-radius: 14px;
  padding: .7rem 1rem;
  color: #fff;
  background: var(--rd-ink);
  box-shadow: 0 16px 36px -16px rgba(8, 38, 30, .5);
  opacity: 0;
  filter: blur(4px);
  translate: -50% 12px;
  scale: .96;
  transition-property: opacity, filter, translate, scale;
  transition-duration: .16s;
  transition-timing-function: cubic-bezier(.2, 0, 0, 1);
}
[dir="rtl"] .rd-share-toast { translate: 50% 12px; }
.rd-share-toast.is-visible { opacity: 1; filter: blur(0); translate: -50% 0; scale: 1; }
[dir="rtl"] .rd-share-toast.is-visible { translate: 50% 0; }
.rd-share-toast.is-error { background: var(--rd-red); }

@media (max-width: 980px) {
  .rd-campaigns__layout { grid-template-columns: 1fr; }
  .rd-campaign-give { position: relative; top: auto; }
}

@media (max-width: 700px) {
  .rd-campaigns { padding-block: 3rem; }
  .rd-campaigns__head { grid-template-columns: 1fr; gap: 1rem; }
  .rd-campaigns__head > p { justify-self: start; }
  .rd-campaign-card,
  .rd-campaign-give,
  .rd-campaign-empty { border-radius: 18px; }
  .rd-campaign-card__top { align-items: flex-start; }
  .rd-campaign-card__top-actions { align-items: flex-end; flex-direction: column-reverse; }
  .rd-campaign-support ul { grid-template-columns: 1fr; }
  .rd-campaign-amounts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rd-campaign-amounts__custom { grid-column: 1 / -1; }
}

@media (max-width: 460px) {
  .rd-campaign-card__top { flex-direction: column; }
  .rd-campaign-card__top-actions { width: 100%; flex-direction: row; justify-content: space-between; align-items: center; }
  .rd-campaign-card__dates { align-items: flex-start; text-align: start; }
  .rd-campaign-card__figures { grid-template-columns: 1fr 1fr; }
  .rd-campaign-nav > a span,
  .rd-campaign-nav > .is-disabled span { display: none; }
  .rd-campaign-nav > a,
  .rd-campaign-nav > span { width: 44px; padding: 0; justify-content: center; }
  .rd-campaign-give__route li b { display: none; }
  .rd-campaign-give__route li:not(:last-child)::after { margin-inline: .35rem; }
}

@media (prefers-reduced-motion: reduce) {
  .rd-campaign-card,
  .rd-campaign-share,
  .rd-campaign-nav > a,
  .rd-campaign-amounts button,
  .rd-share-toast { transition-duration: 0s; }
}

/* Pages: gallery — moved from static/css/pages/gallery.css */
[hidden].gallery-lightbox { display: none !important; }

.gallery-site-head {
  position: sticky;
  top: 0;
  z-index: 30;
  border-bottom: 1px solid rgba(8, 38, 30, .12);
  background: rgba(255, 248, 236, .96);
  backdrop-filter: blur(12px);
}
.gallery-site-head__inner { min-height: 76px; display: flex; align-items: center; gap: 1rem; }
.gallery-site-head__actions { display: flex; align-items: center; gap: .65rem; margin-inline-start: auto; }
.gallery-site-head__actions form { margin: 0; }
.gallery-head-back,
.gallery-head-language,
.gallery-head-donate {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: .55rem 1rem;
  border-radius: 999px;
  font-weight: var(--type-weight-bold);
  text-decoration: none;
}
.gallery-head-back,
.gallery-head-language { border: 1px solid rgba(8, 38, 30, .14); background: transparent; color: var(--rd-ink); }
.gallery-head-back:hover,
.gallery-head-language:hover { border-color: var(--rd-ink); }
.gallery-head-donate { border: 0; border-radius: 12px; background: var(--rd-red); color: #fff; }
.gallery-head-donate:hover { background: #9e0c24; }
.gallery-head-back:focus-visible,
.gallery-head-language:focus-visible,
.gallery-head-donate:focus-visible { outline: 3px solid var(--rd-gold); outline-offset: 3px; }

.gallery-page { background: var(--rd-cream); color: var(--rd-ink); }
.gallery-hero {
  min-height: 440px;
  position: relative;
  display: flex;
  align-items: center;
  overflow: hidden;
  background: var(--rd-ink);
  color: var(--rd-on-dark);
}
.gallery-hero::before {
  content: "";
  position: absolute;
  inset: -28%;
  opacity: .055;
  background: repeating-radial-gradient(circle at 70% 42%, transparent 0 10px, var(--rd-on-dark) 10px 11px);
  pointer-events: none;
}
.gallery-hero__inner {
  width: 100%;
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(360px, 1fr);
  align-items: center;
  gap: clamp(3rem, 7vw, 6rem);
  padding-block: 5.5rem;
}
.gallery-hero .rd-eyebrow { color: var(--rd-gold); }
.gallery-hero .rd-eyebrow::before { background: var(--rd-gold); }
.gallery-hero h1 {
  max-width: 10ch;
  margin: .8rem 0 1rem;
  color: var(--rd-on-dark);
  font-size: clamp(3.1rem, 6vw, 5.4rem);
  line-height: var(--type-leading-tight);
  letter-spacing: -.045em;
  text-wrap: balance;
}
.gallery-hero__copy > p:last-child { max-width: 58ch; color: rgba(255, 248, 236, .78); font-size: var(--type-body-lg); line-height: var(--type-leading-body); text-wrap: pretty; }
.gallery-hero__contact { height: 270px; position: relative; direction: ltr; }
.gallery-hero__contact figure {
  position: absolute;
  overflow: hidden;
  margin: 0;
  border: 7px solid var(--rd-cream);
  border-radius: 18px;
  background: var(--rd-ink-2, #0e3529);
  box-shadow: 0 24px 45px -25px rgba(0, 0, 0, .9);
}
.gallery-hero__contact figure:nth-child(1) { width: 58%; height: 230px; inset: 12px auto auto 0; z-index: 2; transform: rotate(-1deg); }
.gallery-hero__contact figure:nth-child(2) { width: 48%; height: 190px; inset: 0 0 auto auto; transform: rotate(1.2deg); }
.gallery-hero__contact figure:nth-child(3) { width: 38%; height: 125px; inset: auto 8% 0 auto; z-index: 3; transform: rotate(-.8deg); }
.gallery-hero__contact img { width: 100%; height: 100%; display: block; object-fit: cover; outline: 1px solid oklch(1 0 0 / .1); outline-offset: -1px; }

.gallery-content { padding-block: clamp(4rem, 7vw, 6.75rem); }
.gallery-intro { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: 2rem; }
.gallery-intro h2 { max-width: 14ch; margin-top: .55rem; color: var(--rd-ink); font-size: clamp(2rem, 4vw, 3.2rem); line-height: var(--type-leading-tight); text-wrap: balance; }
.gallery-intro > p { max-width: 56ch; color: var(--rd-muted); line-height: var(--type-leading-body); text-wrap: pretty; }
.gallery-view-tabs { display: inline-grid; grid-template-columns: 1fr 1fr; gap: 4px; margin-bottom: 2.6rem; padding: 4px; border: 1px solid rgba(8, 38, 30, .14); border-radius: 14px; background: var(--rd-cream-2); }
.gallery-view-tab { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; padding: .65rem 1.2rem; border-radius: 10px; color: var(--rd-muted); font-size: var(--type-small); font-weight: var(--type-weight-bold); text-decoration: none; }
.gallery-view-tab:hover { color: var(--rd-ink); }
.gallery-view-tab.is-active { background: var(--rd-ink); color: var(--rd-on-dark); }
.gallery-view-tab:focus-visible,
.gallery-media-button:focus-visible,
.gallery-report-card__open:focus-visible,
.gallery-pagination a:focus-visible,
.gallery-clear-filters:focus-visible { outline: 3px solid var(--rd-gold); outline-offset: 3px; }

.gallery-story-list { display: grid; gap: clamp(4rem, 7vw, 6rem); }
.gallery-story { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); align-items: center; gap: 2rem; scroll-margin-top: 2rem; }
.gallery-story__media { min-width: 0; grid-column: 1 / span 6; }
.gallery-story__copy { min-width: 0; grid-column: 8 / span 5; }
.gallery-story--reverse .gallery-story__media { grid-column: 7 / span 6; grid-row: 1; }
.gallery-story--reverse .gallery-story__copy { grid-column: 1 / span 5; grid-row: 1; }
.gallery-media-button {
  width: 100%;
  min-height: 48px;
  display: block;
  padding: 0;
  overflow: hidden;
  border: 0;
  border-radius: 24px;
  background: #0e3529;
  cursor: pointer;
  text-align: start;
  aspect-ratio: 4 / 3;
}
.gallery-media-button--hidden { position: absolute !important; width: 1px !important; height: 1px !important; min-height: 0 !important; overflow: hidden !important; clip-path: inset(50%) !important; white-space: nowrap !important; }
.gallery-card__media { width: 100%; height: 100%; position: relative; display: block; overflow: hidden; background: var(--rd-cream-2); }
.gallery-media-button img,
.gallery-card__image { width: 100%; height: 100%; display: block; object-fit: cover; outline: 1px solid oklch(0 0 0 / .1); outline-offset: -1px; transition: transform .24s cubic-bezier(.22, 1, .36, 1), opacity .24s ease; }
.gallery-media-button:hover img,
.gallery-media-button:focus-visible img { transform: scale(1.025); }
.gallery-card__fallback { position: absolute; inset: 0; display: none; place-items: center; color: var(--rd-on-dark); background: #0e3529; }
.gallery-card__fallback .rd-ui-icon { width: 38px; height: 38px; }
.gallery-media-button.is-broken img { display: none; }
.gallery-media-button.is-broken .gallery-card__fallback { display: grid; }
.gallery-card__category { margin-bottom: .55rem; color: var(--rd-red); font-size: var(--type-caption); font-weight: var(--type-weight-bold); letter-spacing: .055em; }
.gallery-story__copy h3,
.gallery-report-card h3 { margin-bottom: .8rem; color: var(--rd-ink); font-size: clamp(1.8rem, 3vw, 2.65rem); line-height: var(--type-leading-heading); text-wrap: balance; }
.gallery-story__copy > p:not(.gallery-card__category) { color: var(--rd-muted); line-height: var(--type-leading-body); text-wrap: pretty; }
.gallery-report-meta { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .85rem 1.2rem; margin: 1.45rem 0; padding-block: 1.05rem; border-block: 1px solid rgba(8, 38, 30, .14); }
.gallery-report-meta > div { min-width: 0; display: grid; gap: .1rem; }
.gallery-report-meta dt { color: var(--rd-muted); font-size: var(--type-caption); font-weight: var(--type-weight-bold); }
.gallery-report-meta dd { color: var(--rd-ink); font-size: var(--type-small); font-weight: var(--type-weight-bold); overflow-wrap: break-word; }
.gallery-status { display: inline-flex; align-items: center; gap: .4rem; }
.gallery-status::before { content: ""; width: 8px; height: 8px; flex: none; border-radius: 50%; background: var(--rd-gold); }
.gallery-story__copy .rd-card-cta { margin-top: 0; }
.gallery-verified { display: inline-flex; margin-bottom: 1.2rem; padding: .4rem .65rem; border-inline-start: 3px solid var(--rd-gold); color: var(--rd-ink); font-size: var(--type-label); font-weight: var(--type-weight-bold); }

.gallery-archive-filters { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)) auto; align-items: end; gap: .8rem; margin-bottom: 1.4rem; padding: 1.1rem; border: 1px solid rgba(8, 38, 30, .14); border-radius: 18px; background: var(--rd-cream-2); }
.gallery-archive-filters label { min-width: 0; display: grid; gap: .3rem; }
.gallery-archive-filters label > span { color: var(--rd-muted); font-size: var(--type-caption); font-weight: var(--type-weight-bold); }
.gallery-archive-filters select { width: 100%; min-height: 48px; padding: .55rem .8rem; border: 1px solid rgba(8, 38, 30, .14); border-radius: 11px; background: var(--rd-cream); color: var(--rd-ink); font-size: var(--type-body); }
.gallery-clear-filters,
.gallery-filter-submit { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; padding: .55rem 1rem; border: 1px solid var(--rd-ink); border-radius: 11px; background: transparent; color: var(--rd-ink); font-weight: var(--type-weight-bold); text-decoration: none; }
.gallery-count { margin-bottom: 1rem; color: var(--rd-muted); font-size: var(--type-label); font-variant-numeric: tabular-nums; }
.gallery-archive-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.gallery-report-card { min-width: 0; overflow: hidden; border-radius: 20px; background: var(--rd-cream-2); box-shadow: 0 0 0 1px oklch(0 0 0 / .08); }
.gallery-report-card__cover { position: relative; overflow: hidden; aspect-ratio: 4 / 3; background: #0e3529; }
.gallery-report-card__open { width: 100%; height: 100%; display: block; padding: 0; border: 0; background: transparent; cursor: pointer; }
.gallery-report-card__open img { width: 100%; height: 100%; display: block; object-fit: cover; outline: 1px solid oklch(0 0 0 / .1); outline-offset: -1px; transition: transform .24s cubic-bezier(.22, 1, .36, 1); }
.gallery-report-card:hover .gallery-report-card__open img,
.gallery-report-card__open:focus-visible img { transform: scale(1.025); }
.gallery-report-card__cover.is-broken img,
.gallery-report-card__open.is-broken img { display: none; }
.gallery-report-card__fallback { width: 100%; height: 100%; display: grid; place-items: center; color: var(--rd-on-dark); font-size: var(--type-small); }
.gallery-report-card__body { padding: 1.2rem; }
.gallery-report-card h3 { margin-bottom: .55rem; font-size: var(--type-h4); line-height: var(--type-leading-small); }
.gallery-report-card h3 a { text-decoration: none; }
.gallery-report-card h3 a:hover { color: var(--rd-red); }
.gallery-report-card__body > p:not(.gallery-card__category) { color: var(--rd-muted); font-size: var(--type-small); line-height: var(--type-leading-body); text-wrap: pretty; }
.gallery-report-card__foot { display: flex; align-items: center; justify-content: space-between; gap: .8rem; margin-top: 1rem; padding-top: .85rem; border-top: 1px solid rgba(8, 38, 30, .14); font-size: var(--type-caption); font-weight: var(--type-weight-bold); }
.gallery-pagination { display: flex; align-items: center; justify-content: center; gap: 1rem; margin-top: 2.5rem; color: var(--rd-muted); font-size: var(--type-small); font-variant-numeric: tabular-nums; }
.gallery-pagination a { width: 48px; height: 48px; display: grid; place-items: center; border: 1px solid rgba(8, 38, 30, .14); border-radius: 50%; color: var(--rd-ink); }
.gallery-pagination a:hover { border-color: var(--rd-red); color: var(--rd-red); }
.gallery-pagination .rd-ui-icon { width: 18px; height: 18px; }
.gallery-empty { display: grid; justify-items: center; gap: 1rem; padding: 5rem 1rem; text-align: center; }
.gallery-empty > .rd-ui-icon { width: 42px; height: 42px; color: var(--rd-olive); }
.gallery-empty h2 { color: var(--rd-ink); font-size: var(--type-h4); }

.gallery-site-foot { padding-block: 2.75rem; background: var(--rd-ink); color: var(--rd-on-dark); }
.gallery-site-foot__inner { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; }
.gallery-site-foot strong { font-weight: var(--type-weight-bold); }
.gallery-site-foot p { color: rgba(255, 248, 236, .65); font-size: var(--type-small); }
.gallery-site-foot nav { display: flex; align-items: center; gap: 1.2rem; font-size: var(--type-label); }
.gallery-site-foot a { text-decoration: none; }
.gallery-site-foot a:hover { color: var(--rd-gold); }
.gallery-site-foot nav span { color: rgba(255, 248, 236, .72); }

.gallery-lightbox { position: fixed; inset: 0; z-index: 60; display: grid; overflow: hidden; padding: 1.5rem; background: rgba(8, 38, 30, .985); color: var(--rd-on-dark); opacity: 0; transition: opacity .24s ease; }
.gallery-lightbox.is-open { opacity: 1; }
.gallery-lightbox__bar { position: absolute; inset: 1.5rem 1.5rem auto; z-index: 3; display: flex; align-items: center; justify-content: space-between; pointer-events: none; }
.gallery-lightbox__bar span { color: rgba(255, 248, 236, .68); font-size: var(--type-label); font-variant-numeric: tabular-nums; }
.gallery-lightbox__bar button,
.gallery-lightbox__nav { width: 48px; height: 48px; display: grid; place-items: center; border: 1px solid rgba(255, 248, 236, .3); border-radius: 50%; background: rgba(255, 248, 236, .06); color: var(--rd-on-dark); cursor: pointer; pointer-events: auto; transition: color .18s ease, background-color .18s ease, transform .18s ease; }
.gallery-lightbox__bar button:hover,
.gallery-lightbox__nav:hover { background: var(--rd-on-dark); color: var(--rd-ink); transform: scale(.96); }
.gallery-lightbox__bar button:focus-visible,
.gallery-lightbox__nav:focus-visible,
.gallery-lightbox__report-link:focus-visible { outline: 3px solid var(--rd-gold); outline-offset: 3px; }
.gallery-lightbox__bar .rd-ui-icon,
.gallery-lightbox__nav .rd-ui-icon { width: 20px; height: 20px; }
.gallery-lightbox__layout { min-height: 0; display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 1.5rem; }
.gallery-lightbox__stage { min-width: 0; min-height: 0; height: 100%; display: grid; place-items: center; margin: 0; padding: 2rem 4rem; }
.gallery-lightbox__stage img { width: auto; max-width: 100%; max-height: calc(100dvh - 4rem); object-fit: contain; opacity: 0; transform: scale(.985); outline: 1px solid oklch(1 0 0 / .12); outline-offset: -1px; transition: opacity .22s ease, transform .28s cubic-bezier(.16, 1, .3, 1); }
.gallery-lightbox__stage img.is-ready { opacity: 1; transform: scale(1); }
.gallery-lightbox__fallback { color: rgba(255, 248, 236, .75); font-size: var(--type-control); }
.gallery-lightbox__drawer { align-self: stretch; max-height: 100dvh; overflow: auto; padding: 5rem 0 1rem 1.5rem; border-inline-start: 1px solid rgba(255, 248, 236, .16); }
[dir="rtl"] .gallery-lightbox__drawer { padding: 5rem 1.5rem 1rem 0; }
.gallery-lightbox__drawer h2 { margin: .6rem 0 .9rem; color: var(--rd-on-dark); font-size: var(--type-h3); line-height: var(--type-leading-heading); text-wrap: balance; }
.gallery-lightbox__drawer > p:not(.gallery-card__category) { color: rgba(255, 248, 236, .74); font-size: var(--type-control); line-height: var(--type-leading-body); }
.gallery-lightbox__drawer .gallery-report-meta { grid-template-columns: 1fr; border-color: rgba(255, 248, 236, .16); }
.gallery-lightbox__drawer .gallery-report-meta dt { color: var(--rd-gold); }
.gallery-lightbox__drawer .gallery-report-meta dd { color: var(--rd-on-dark); }
.gallery-lightbox__report-link { display: inline-flex; margin-top: .25rem; border-bottom: 1px solid currentColor; color: var(--rd-gold); font-weight: var(--type-weight-bold); text-decoration: none; }
.gallery-lightbox__nav { position: absolute; z-index: 3; top: 50%; transform: translateY(-50%); }
.gallery-lightbox__nav:hover { transform: translateY(-50%) scale(.96); }
.gallery-lightbox__nav--prev { inset-inline-start: calc(340px + 2.25rem); }
.gallery-lightbox__nav--next { inset-inline-end: calc(340px + 2.25rem); }

.report-detail { background: var(--rd-cream); color: var(--rd-ink); }
.report-detail__hero { padding-block: clamp(4rem, 8vw, 6.5rem); background: var(--rd-ink); color: var(--rd-on-dark); }
.report-detail__hero-grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(360px, 1.1fr); align-items: center; gap: clamp(2rem, 7vw, 6rem); }
.report-detail__back { display: inline-flex; margin-bottom: 2.4rem; color: var(--rd-gold); font-size: var(--type-label); font-weight: var(--type-weight-bold); text-underline-offset: .25em; }
.report-detail__intro h1 { max-width: 12ch; margin: .8rem 0 1.1rem; color: var(--rd-on-dark); font-size: clamp(2.8rem, 5.5vw, 5.4rem); line-height: 1; letter-spacing: -.045em; text-wrap: balance; }
.report-detail__intro > p:not(.rd-eyebrow) { max-width: 55ch; color: rgba(255, 248, 236, .72); font-size: var(--type-body); line-height: var(--type-leading-body); }
.gallery-verified--dark { margin-top: 1.5rem; border-color: var(--rd-gold); color: var(--rd-on-dark); }
.report-detail__cover { aspect-ratio: 4 / 3; overflow: hidden; margin: 0; border-radius: 26px; }
.report-detail__cover img { width: 100%; height: 100%; display: block; object-fit: cover; outline: 1px solid oklch(1 0 0 / .12); outline-offset: -1px; }
.report-detail__record { display: grid; grid-template-columns: .7fr 1.3fr; gap: clamp(2rem, 7vw, 6rem); padding-block: 5rem; }
.report-detail__record h2,
.report-detail__evidence h2 { color: var(--rd-ink); font-size: clamp(2rem, 4vw, 3.3rem); line-height: var(--type-leading-tight); text-wrap: balance; }
.report-detail__meta { margin: 0; }
.report-detail__evidence { padding-block: 1rem 6rem; }
.report-detail__evidence > header { max-width: 680px; }
.report-detail__evidence > header > p:last-child { margin-top: .8rem; color: var(--rd-muted); line-height: var(--type-leading-body); }
.report-detail__load { display: inline-flex; margin-top: 1.5rem; }
.report-detail__load:disabled { cursor: default; opacity: .65; }
.report-detail__media { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; margin-top: 2rem; }
.report-detail__media[hidden] { display: none; }
.report-detail__media figure { min-width: 0; overflow: hidden; margin: 0; border-radius: 20px; background: #fff; box-shadow: 0 16px 35px -28px rgba(8, 38, 30, .7); }
.report-detail__media-frame { aspect-ratio: 4 / 3; display: grid; place-items: center; overflow: hidden; background: var(--rd-cream-2); }
.report-detail__media-frame img { width: 100%; height: 100%; display: block; object-fit: cover; outline: 1px solid oklch(0 0 0 / .1); outline-offset: -1px; }
.report-detail__media-fallback { color: var(--rd-muted); font-size: var(--type-small); }
.report-detail__media figcaption { display: grid; gap: .35rem; padding: 1rem; }
.report-detail__media figcaption > span { color: var(--rd-red); font-size: var(--type-caption); font-weight: var(--type-weight-bold); font-variant-numeric: tabular-nums; }
.report-detail__media figcaption p { color: var(--rd-ink); font-size: var(--type-control); line-height: var(--type-leading-small); }
.report-detail__media figcaption small { color: var(--rd-muted); font-size: var(--type-caption); }

@media (max-width: 900px) {
  .gallery-hero__inner { grid-template-columns: 1fr; gap: 2.5rem; }
  .gallery-hero__contact { width: min(100%, 620px); }
  .gallery-story,
  .gallery-story--reverse { grid-template-columns: 1fr; gap: 1.5rem; }
  .gallery-story__media,
  .gallery-story__copy,
  .gallery-story--reverse .gallery-story__media,
  .gallery-story--reverse .gallery-story__copy { grid-column: 1; grid-row: auto; }
  .gallery-archive-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gallery-archive-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gallery-clear-filters { width: 100%; }
  .gallery-lightbox__layout { grid-template-columns: minmax(0, 1fr) 290px; gap: .75rem; }
  .gallery-lightbox__stage { padding-inline: 3rem; }
  .gallery-lightbox__nav--prev { inset-inline-start: calc(290px + 1rem); }
  .gallery-lightbox__nav--next { inset-inline-end: calc(290px + 1rem); }
  .report-detail__hero-grid,
  .report-detail__record { grid-template-columns: 1fr; }
  .report-detail__cover { max-width: 680px; width: 100%; }
}

@media (max-width: 640px) {
  .gallery-site-head__inner { min-height: 68px; }
  .gallery-site-head .rd-brand small,
  .gallery-head-back { display: none; }
  .gallery-site-head__actions { gap: .45rem; }
  .gallery-head-language,
  .gallery-head-donate { padding-inline: .8rem; }
  .gallery-hero { min-height: 0; }
  .gallery-hero__inner { gap: 2rem; padding-block: 4rem; }
  .gallery-hero h1 { font-size: 3rem; }
  .gallery-hero__contact { height: 230px; }
  .gallery-hero__contact figure:nth-child(1) { height: 190px; }
  .gallery-hero__contact figure:nth-child(2) { height: 155px; }
  .gallery-hero__contact figure:nth-child(3) { height: 105px; }
  .gallery-content { padding-block: 3.5rem 5rem; }
  .gallery-intro { display: block; }
  .gallery-intro > p { margin-top: 1rem; }
  .gallery-view-tabs { width: 100%; }
  .gallery-view-tab { padding-inline: .6rem; }
  .gallery-story-list { gap: 3.6rem; }
  .gallery-media-button { border-radius: 20px; }
  .gallery-report-meta { grid-template-columns: 1fr; }
  .gallery-archive-filters { grid-template-columns: 1fr; }
  .gallery-archive-grid { grid-template-columns: 1fr; }
  .gallery-site-foot__inner { align-items: start; flex-direction: column; }
  .gallery-site-foot nav { flex-wrap: wrap; }
  .gallery-lightbox { padding: .75rem; }
  .gallery-lightbox__bar { inset: .75rem .75rem auto; }
  .gallery-lightbox__layout { grid-template-columns: 1fr; grid-template-rows: minmax(0, 1fr) auto; gap: 0; }
  .gallery-lightbox__stage { min-height: 55dvh; padding: 3.5rem 2.25rem 1rem; }
  .gallery-lightbox__stage img { max-height: 54dvh; }
  .gallery-lightbox__drawer,
  [dir="rtl"] .gallery-lightbox__drawer { max-height: 34dvh; padding: 1rem 0 4rem; border-inline-start: 0; border-top: 1px solid rgba(255, 248, 236, .16); }
  .gallery-lightbox__drawer h2 { font-size: var(--type-h4); }
  .gallery-lightbox__drawer .gallery-report-meta { grid-template-columns: 1fr 1fr; gap: .5rem .75rem; }
  .gallery-lightbox__nav { top: auto; bottom: .75rem; transform: none; }
  .gallery-lightbox__nav:hover { transform: scale(.96); }
  .gallery-lightbox__nav--prev { inset-inline-start: calc(50% - 58px); }
  .gallery-lightbox__nav--next { inset-inline-end: calc(50% - 58px); }
  .report-detail__hero { padding-block: 3.5rem; }
  .report-detail__hero-grid { gap: 2rem; }
  .report-detail__back { margin-bottom: 1.75rem; }
  .report-detail__intro h1 { font-size: 2.65rem; }
  .report-detail__cover { border-radius: 20px; }
  .report-detail__record { gap: 1.5rem; padding-block: 3.5rem; }
  .report-detail__evidence { padding-block: 0 4rem; }
  .report-detail__media { grid-template-columns: 1fr; gap: 1rem; }
}

@media (max-width: 390px) {
  .gallery-site-head .rd-brand > span,
  .gallery-head-donate { display: none; }
  .gallery-head-language { padding-inline: .75rem; }
  .gallery-hero h1 { font-size: 2.65rem; }
  .gallery-hero__contact { height: 205px; }
}

@media (prefers-reduced-motion: reduce) {
  .gallery-media-button img,
  .gallery-report-card__open img,
  .gallery-lightbox,
  .gallery-lightbox__bar button,
  .gallery-lightbox__nav,
  .gallery-lightbox__stage img { transition: none; }
}

/* Pages: checkout — moved from static/css/pages/orphan-checkout.css */
/* Dedicated orphan sponsorship and one-time gift checkout. */
.orphan-checkout-page { background: var(--rd-cream); }
.op-checkout { padding-block: clamp(2rem, 5vw, 4.5rem); }
.op-checkout__wrap { max-width: 1080px; }
.op-checkout__back {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  gap: .45rem;
  margin-bottom: 1.5rem;
  color: var(--rd-muted);
  font-size: var(--type-small);
  font-weight: var(--type-weight-bold);
}
.op-checkout__back:hover { color: var(--rd-red); }
.op-checkout__intro { max-width: 700px; margin-bottom: 2rem; }
.op-checkout__intro .rd-eyebrow { margin-bottom: .7rem; }
.op-checkout__intro h1 {
  margin: 0;
  max-width: 18ch;
  color: var(--rd-ink);
  font-size: clamp(2rem, 4.5vw, 3.5rem);
  line-height: var(--type-leading-tight);
  font-weight: var(--type-weight-bold);
  letter-spacing: -.035em;
  text-wrap: balance;
}
[dir="rtl"] .op-checkout__intro h1 { line-height: var(--type-leading-heading); letter-spacing: 0; }
.op-checkout__intro > p:last-child { max-width: 58ch; margin: .9rem 0 0; color: var(--rd-muted); line-height: var(--type-leading-body); }
.op-checkout-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); max-width: 700px; margin: 0 0 1.5rem; padding: 0; list-style: none; }
.op-checkout-steps li { position: relative; display: flex; min-width: 0; align-items: center; gap: .45rem; color: var(--rd-muted); font-size: var(--type-label); font-weight: var(--type-weight-bold); }
.op-checkout-steps li:not(:last-child)::after { height: 1px; flex: 1; margin-inline: .5rem; background: rgba(8, 38, 30, .16); content: ""; }
.op-checkout-steps li > span:first-child,
.op-checkout-steps li > .rd-ui-icon { display: grid; width: 26px; height: 26px; flex: none; place-items: center; border: 1px solid rgba(8, 38, 30, .18); border-radius: 50%; }
.op-checkout-steps .is-current { color: var(--rd-red); }
.op-checkout-steps .is-current > span:first-child { border-color: var(--rd-red); color: #fff; background: var(--rd-red); }
.op-checkout-steps .is-complete { color: var(--rd-olive); }
.op-checkout-steps .is-complete > .rd-ui-icon { border-color: var(--rd-olive); }

.op-checkout__layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px;
  gap: 1.5rem;
  align-items: start;
}
.op-checkout__main { display: grid; gap: 1rem; min-width: 0; }

.op-checkout-child {
  display: flex;
  align-items: center;
  gap: 1rem;
  border-radius: 18px;
  padding: 1rem 1.15rem;
  background: #fff;
  box-shadow:
    0 0 0 1px oklch(0 0 0 / .06),
    0 1px 2px -1px oklch(0 0 0 / .06),
    0 10px 28px -24px rgba(8, 38, 30, .32);
}
.op-checkout-child__avatar {
  display: grid;
  width: 64px;
  height: 64px;
  flex: none;
  place-items: center;
  overflow: hidden;
  border-radius: 15px;
  color: #fff;
  font-size: var(--type-h4);
  font-weight: var(--type-weight-bold);
}
.op-checkout-child__avatar img { width: 100%; height: 100%; object-fit: cover; outline: 1px solid oklch(0 0 0 / .1); outline-offset: -1px; }
.op-checkout-child__copy { min-width: 0; flex: 1; }
.op-checkout-child__copy p { margin: 0; color: var(--rd-ink); font-size: var(--type-body); font-weight: var(--type-weight-bold); }
.op-checkout-child__copy span { display: block; margin-top: .15rem; color: var(--rd-muted); font-size: var(--type-label); }
.op-checkout-child > strong { color: var(--rd-red); font-size: var(--type-h4); font-weight: var(--type-weight-bold); font-variant-numeric: tabular-nums; white-space: nowrap; }
.op-checkout-child > strong small { margin-inline-start: .15rem; color: var(--rd-muted); font-size: var(--type-caption); font-weight: var(--type-weight-semibold); }

.op-gift-amounts {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .55rem;
  border-radius: 18px;
  padding: .65rem;
  background: var(--rd-cream-2);
}
.op-gift-amounts a {
  display: grid;
  min-height: 46px;
  place-items: center;
  border-radius: 12px;
  color: var(--rd-ink);
  background: #fff;
  box-shadow: 0 0 0 1px rgba(8, 38, 30, .1);
  font-size: var(--type-small);
  font-weight: var(--type-weight-bold);
  transition-property: color, background-color, box-shadow, transform;
  transition-duration: .16s;
}
.op-gift-amounts a:hover { color: var(--rd-red); box-shadow: 0 0 0 1px var(--rd-red); }
.op-gift-amounts a:active { transform: scale(.96); }
.op-gift-amounts a[aria-current="true"] { color: #fff; background: var(--rd-red); box-shadow: none; }
.op-gift-amounts a:focus-visible { outline: 2px solid var(--rd-gold); outline-offset: 2px; }

.op-payment-card,
.op-payment-choice {
  overflow: hidden;
  border-radius: 22px;
  background: #fff;
  box-shadow:
    0 0 0 1px oklch(0 0 0 / .06),
    0 1px 2px -1px oklch(0 0 0 / .06),
    0 18px 42px -30px rgba(8, 38, 30, .32);
}
.op-payment-choice { padding: clamp(1rem, 3vw, 1.5rem); }
.op-payment-choice__intro { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: .35rem; }
.op-payment-choice__intro .rd-eyebrow { margin: 0 0 .25rem; }
.op-payment-choice__intro h2 { margin: 0; color: var(--rd-ink); font-size: var(--type-body-lg); font-weight: var(--type-weight-bold); }
.op-payment-choice__intro > span { display: inline-flex; min-height: 40px; align-items: center; gap: .35rem; color: var(--rd-olive); font-size: var(--type-caption); font-weight: var(--type-weight-bold); }
.co-payment-intro { margin: 0 0 .9rem; color: var(--rd-muted); font-size: var(--type-label); line-height: var(--type-leading-small); }
.co-payment-reassurance { display: flex; align-items: center; gap: .4rem; margin: .85rem 0 0; color: var(--rd-muted); font-size: var(--type-label); line-height: var(--type-leading-small); }
.co-payment-reassurance .rd-ui-icon { flex: none; color: var(--rd-olive); }
.checkout-gateways {
  padding: .45rem;
  border-radius: 20px;
  background: var(--rd-cream-2);
  box-shadow: inset 0 0 0 1px rgba(8, 38, 30, .08);
}
.checkout-gateways__tabs { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: .45rem; }
.checkout-gateway-tab {
  position: relative;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  min-width: 0;
  min-height: 76px;
  align-items: center;
  gap: .65rem;
  border-radius: 15px;
  padding: .75rem;
  color: var(--rd-muted);
  cursor: pointer;
  scroll-snap-align: start;
  transition: color .2s ease, background-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.checkout-gateway-tab:hover { color: var(--rd-ink); background: rgba(255, 255, 255, .62); }
.checkout-gateway-tab:active { transform: scale(.98); }
.checkout-gateway-tab.is-active {
  color: var(--rd-ink);
  background: #fff;
  box-shadow: 0 1px 2px rgba(8, 38, 30, .08), 0 12px 24px -20px rgba(8, 38, 30, .55);
}
.checkout-gateway-tab:has(input:focus-visible) { outline: 3px solid var(--rd-gold); outline-offset: 2px; }
.checkout-gateway-tab input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.checkout-gateway-tab__icon {
  display: grid;
  width: 40px;
  height: 40px;
  place-items: center;
  border-radius: 11px;
  font-size: var(--type-body);
  font-weight: var(--type-weight-bold);
}
.checkout-gateway-tab__icon svg { width: 22px; height: 22px; stroke: currentColor; stroke-width: 1.7; }
.checkout-gateway-tab__icon--card { color: #584fd0; background: #efedff; }
.checkout-gateway-tab__icon--paypal { color: #003087; background: #e8f3ff; }
.checkout-gateway-tab__icon--crypto { color: #7b530e; background: #fff0cc; }
.checkout-gateway-tab__copy { display: grid; min-width: 0; gap: .1rem; }
.checkout-gateway-tab__copy strong { color: inherit; font-size: var(--type-small); font-weight: var(--type-weight-bold); line-height: var(--type-leading-heading); }
.checkout-gateway-tab__copy small { overflow: hidden; color: var(--rd-muted); font-size: var(--type-caption); line-height: var(--type-leading-heading); text-overflow: ellipsis; white-space: nowrap; }
.checkout-gateway-tab__badge { position: absolute; inset-block-start: .4rem; inset-inline-end: .45rem; color: var(--rd-olive); font-size: .58rem; font-weight: var(--type-weight-bold); letter-spacing: .04em; }
.checkout-gateway-tab__status {
  display: grid;
  width: 20px;
  height: 20px;
  place-items: center;
  border-radius: 50%;
  color: transparent;
  background: rgba(8, 38, 30, .08);
  font-size: var(--type-caption);
  transition: color .2s ease, background-color .2s ease;
}
.checkout-gateway-tab.is-active .checkout-gateway-tab__status { color: #fff; background: var(--rd-red); }
.checkout-gateways__panels { margin-top: .45rem; }
.checkout-gateway-panel {
  min-height: 142px;
  border-radius: 15px;
  padding: clamp(1rem, 3vw, 1.35rem);
  background: #fff;
  box-shadow: inset 0 0 0 1px rgba(8, 38, 30, .07);
  animation: checkout-panel-in .22s cubic-bezier(.2, 0, 0, 1);
}
.checkout-gateway-panel[hidden] { display: none !important; }
.checkout-gateway-panel__intro { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: .9rem; }
.checkout-gateway-panel__intro > div { display: grid; gap: .12rem; }
.checkout-gateway-panel__intro strong { color: var(--rd-ink); font-size: var(--type-small); font-weight: var(--type-weight-bold); }
.checkout-gateway-panel__intro span { color: var(--rd-muted); font-size: var(--type-caption); line-height: var(--type-leading-small); }
.checkout-gateway-panel__amount { flex: none; color: var(--rd-ink) !important; font-size: var(--type-body) !important; font-weight: var(--type-weight-bold); font-variant-numeric: tabular-nums; }
.checkout-gateway-panel .stripe-checkout-form__method { display: none; }
.checkout-gateway-panel .stripe-checkout-form__submit { min-height: 54px; }
.checkout-gateway-panel .paypal-checkout { max-width: 480px; margin-inline: auto; }
.checkout-gateway-panel .crypto-payment-widget {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.checkout-gateway-panel .crypto-payment-widget > .flex:first-child { display: none; }
@keyframes checkout-panel-in { from { opacity: 0; transform: translateY(5px); } }
.stripe-checkout-form__submit:disabled { cursor: wait; opacity: .78; transform: none; box-shadow: none; }
.stripe-checkout-form__submit [hidden] { display: none; }
.op-payment-card__head {
  display: flex;
  align-items: center;
  gap: .8rem;
  padding: 1.15rem clamp(1rem, 3vw, 1.5rem);
  color: var(--rd-on-dark);
  background: var(--rd-ink);
}
.op-payment-card__head > span {
  display: grid;
  width: 44px;
  height: 44px;
  flex: none;
  place-items: center;
  border-radius: 13px;
  color: var(--rd-gold);
  background: rgba(255, 248, 236, .1);
  box-shadow: inset 0 0 0 1px rgba(255, 248, 236, .12);
  font-size: var(--type-body-lg);
}
.op-payment-card__head h2 { margin: 0; color: #fff; font-size: var(--type-body); font-weight: var(--type-weight-bold); }
.op-payment-card__head p { margin: .15rem 0 0; color: rgba(255, 248, 236, .68); font-size: var(--type-label); line-height: var(--type-leading-small); }
.op-payment-card__body { padding: clamp(1rem, 3vw, 1.5rem); }
.op-payment-choice .crypto-payment-widget {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.op-payment-choice .crypto-payment-widget > .flex:first-child { display: none; }
.op-payment-choice .crypto-payment-widget [class~="bg-green-500"],
.op-payment-choice .crypto-payment-widget [class~="bg-green-600"] { background-color: var(--rd-red) !important; }
.op-payment-choice .crypto-payment-widget [class~="text-green-500"],
.op-payment-choice .crypto-payment-widget [class~="text-green-600"],
.op-payment-choice .crypto-payment-widget [class~="text-green-700"] { color: var(--rd-red) !important; }
.op-payment-choice .crypto-payment-widget [class~="bg-green-50"],
.op-payment-choice .crypto-payment-widget [class~="bg-green-100"] { background-color: var(--rd-cream-2) !important; }
.op-payment-choice .crypto-payment-widget input[data-fixed-amount="true"] {
  color: var(--rd-ink);
  background: var(--rd-cream-2) !important;
  cursor: not-allowed;
  box-shadow: inset 0 0 0 1px rgba(8, 38, 30, .06);
}
.op-payment-choice .crypto-fixed-note { display: flex; align-items: center; gap: .35rem; margin-top: .45rem; color: var(--rd-olive); font-size: var(--type-caption); font-weight: var(--type-weight-bold); }
.op-payment-choice .crypto-network-warning {
  display: flex;
  gap: .55rem;
  margin-bottom: 1rem;
  border-radius: 12px;
  padding: .75rem .85rem;
  color: #744c08;
  background: #fff5d6;
  font-size: var(--type-label);
  line-height: var(--type-leading-small);
}
.op-payment-choice .crypto-network-warning .rd-ui-icon { flex: none; margin-top: .15rem; }
.op-payment-choice .crypto-network-warning p { margin: 0; }
.op-payment-choice .crypto-copy-confirmation { min-height: 1.25rem; margin-top: .4rem; color: var(--rd-olive); font-size: var(--type-caption); font-weight: var(--type-weight-bold); }
.op-payment-choice .crypto-status[data-state="confirmed"] { border-color: rgba(90, 107, 63, .3) !important; background: rgba(90, 107, 63, .1) !important; }
.op-payment-choice .crypto-status[data-state="confirmed"] span { color: var(--rd-olive) !important; }
.op-payment-choice .crypto-status[data-state="confirmed"] .rounded-full { background: var(--rd-olive) !important; }
.op-payment-choice .crypto-status[data-state="expired"],
.op-payment-choice .crypto-status[data-state="failed"] { border-color: rgba(200, 16, 46, .22) !important; background: rgba(200, 16, 46, .07) !important; }
.op-payment-choice .crypto-status[data-state="expired"] span,
.op-payment-choice .crypto-status[data-state="failed"] span { color: var(--rd-red) !important; }
.op-payment-choice .crypto-status[data-state="expired"] .rounded-full,
.op-payment-choice .crypto-status[data-state="failed"] .rounded-full { background: var(--rd-red) !important; }

.op-checkout-summary {
  position: sticky;
  top: 100px;
  overflow: hidden;
  border-radius: 20px;
  padding: 1.25rem;
  color: var(--rd-on-dark);
  background: var(--rd-ink);
  box-shadow:
    0 0 0 1px oklch(0 0 0 / .06),
    0 1px 2px -1px oklch(0 0 0 / .06),
    0 16px 34px -28px rgba(8, 38, 30, .3);
}
.op-checkout-summary h2 { margin: 0 0 1rem; color: #fff; font-size: var(--type-body); font-weight: var(--type-weight-bold); }
.op-checkout-summary__row,
.op-checkout-summary__total { display: flex; justify-content: space-between; gap: 1rem; padding-block: .65rem; font-size: var(--type-small); }
.op-checkout-summary__row { border-bottom: 1px solid rgba(255, 248, 236, .12); color: rgba(255, 248, 236, .66); }
.op-checkout-summary__row b { color: #fff; }
.op-checkout-summary__total { margin-top: .25rem; color: #fff; font-size: var(--type-control); font-weight: var(--type-weight-bold); }
.op-checkout-summary__total b { color: var(--rd-gold); font-size: var(--type-h4); }
.op-checkout-summary__fixed { display: flex; gap: .4rem; margin: .75rem 0 0; border-radius: 11px; padding: .7rem; color: var(--rd-on-dark); background: rgba(255, 248, 236, .09); font-size: var(--type-caption); line-height: var(--type-leading-small); }
.op-checkout-summary ul { display: grid; gap: .55rem; margin: 1rem 0 0; padding: 1rem 0 0; border-top: 1px solid rgba(255, 248, 236, .12); list-style: none; color: rgba(255, 248, 236, .66); font-size: var(--type-caption); }
.op-checkout-summary li { display: flex; align-items: center; gap: .4rem; }
.op-checkout-summary li .rd-ui-icon { color: var(--rd-olive); }

.op-checkout-header { position: sticky; top: 0; z-index: 50; border-bottom: 1px solid rgba(8, 38, 30, .1); background: rgba(255, 248, 236, .97); backdrop-filter: blur(12px); }
.op-checkout-header > .rd-wrap { display: flex; min-height: 72px; align-items: center; justify-content: space-between; gap: 1rem; }
.op-checkout-header__actions { display: flex; min-width: 0; align-items: center; justify-content: flex-end; gap: .75rem; }
.op-checkout-header__actions form { margin: 0; }
.op-checkout-secure,
.op-checkout-back { display: inline-flex; min-height: 44px; align-items: center; gap: .35rem; color: var(--rd-muted); font-size: var(--type-label); font-weight: var(--type-weight-bold); }
.op-checkout-back:hover { color: var(--rd-red); }
.op-checkout-footer { border-top: 1px solid rgba(8, 38, 30, .1); padding-block: 1.15rem; color: var(--rd-muted); background: var(--rd-cream); }
.op-checkout-footer .rd-wrap { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.op-checkout-footer p { margin: 0; font-size: var(--type-label); }
.op-checkout-footer nav { display: flex; flex-wrap: wrap; gap: .8rem 1.1rem; }
.op-checkout-footer a { color: inherit; font-size: var(--type-label); }
.op-checkout-footer a:hover { color: var(--rd-red); }

/* Minimal checkout footer: legal identity only, no navigation columns. */
.checkout-minimal .rd-foot { padding-block: 1.25rem; }
.checkout-minimal .rd-foot__grid,
.checkout-minimal .rd-foot__legal-nav { display: none; }
.checkout-minimal .rd-foot__legal { justify-content: center; margin-top: 0; padding-top: 0; border-top: 0; text-align: center; }

@media (max-width: 860px) {
  .op-checkout-header > .rd-wrap { min-height: 68px; }
  .op-checkout-secure { display: none; }
  .op-checkout__layout { grid-template-columns: minmax(0, 1fr); }
  .op-checkout-summary { position: static; order: -1; }
}
@media (max-width: 560px) {
  .op-checkout-header .rd-brand span { display: none; }
  .rd-checkout .rd-co { padding: 1rem; }
  .rd-checkout .crypto-payment-widget { padding: .5rem !important; }
  .op-checkout-steps li { display: grid; grid-template-columns: 26px minmax(0, 1fr); align-content: start; font-size: var(--type-caption); }
  .op-checkout-steps li:not(:last-child)::after { position: absolute; inset-inline-start: 31px; inset-inline-end: .35rem; top: 13px; margin: 0; }
  .op-checkout-steps li > span:last-child { grid-column: 1 / -1; margin-top: .25rem; }
  .op-checkout-header > .rd-wrap { gap: .5rem; padding-inline: .75rem; }
  .op-checkout-header__actions { flex: 1; gap: .35rem; }
  .op-checkout-header__actions form { flex: none; }
  .op-checkout-back {
    flex: 1; min-width: 0; max-width: 10rem; justify-content: flex-start;
    overflow: visible; line-height: var(--type-leading-heading); text-align: start; text-overflow: clip; white-space: normal;
  }
  .op-checkout-footer .rd-wrap { flex-direction: column; text-align: center; }
  .op-checkout-footer nav { justify-content: center; }
  .op-checkout { padding-block: 1.25rem 2.5rem; }
  .op-checkout-child { align-items: flex-start; flex-wrap: wrap; }
  .op-checkout-child__copy { min-width: calc(100% - 80px); }
  .op-checkout-child > strong { width: 100%; padding-inline-start: 80px; }
  .op-gift-amounts { grid-template-columns: 1fr 1fr; }
  .op-payment-card,
  .op-payment-choice { border-radius: 18px; }
  .op-payment-choice__intro > span { display: none; }
  .checkout-gateways__tabs {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .checkout-gateways__tabs:has(> :only-child) { grid-template-columns: minmax(0, 1fr); }
  .checkout-gateways__tabs:has(> :nth-child(2):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .checkout-gateway-tab { grid-template-columns: minmax(0, 1fr); min-height: 82px; justify-items: center; gap: .3rem; padding: .55rem .35rem; text-align: center; }
  .checkout-gateway-tab__icon { width: 34px; height: 34px; border-radius: 9px; }
  .checkout-gateway-tab__copy strong { font-size: var(--type-caption); }
  .checkout-gateway-tab__copy small,
  .checkout-gateway-tab__status,
  .checkout-gateway-tab__badge { display: none; }
  .checkout-gateway-panel { padding: 1rem; }
  .checkout-gateway-panel__intro > div > span { display: none; }
}
@media (max-width: 340px) {
  .rd-checkout button[id$="-dropdown-btn"] { padding-inline: .65rem; }
  .rd-checkout button[id$="-dropdown-btn"] > div { gap: .45rem; min-width: 0; }
  .rd-checkout [id$="-selected-code"] { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .op-gift-amounts a,
  .checkout-gateway-tab { transition-duration: 0s; }
  .checkout-gateway-panel { animation: none; }
  .co-simple-checkout .co-amt { transition-duration: 0s; }
}

/* ---------- general checkout ---------- */
.co-simple-checkout {
  min-height: calc(100dvh - 144px);
  padding-block: clamp(1.5rem, 4vw, 3.75rem);
  background:
    radial-gradient(circle at 10% 5%, rgba(201, 162, 39, .11), transparent 24rem),
    radial-gradient(circle at 90% 28%, rgba(90, 107, 63, .08), transparent 28rem),
    var(--rd-cream);
}
.co-simple-checkout__wrap { max-width: 1160px; }
.co-simple-checkout__header { display: flex; align-items: flex-end; justify-content: space-between; gap: 1.5rem; margin-bottom: 1rem; }
.co-simple-checkout__header .rd-eyebrow { margin: 0 0 .4rem; }
.co-simple-checkout__header h1 { margin: 0; max-width: 16ch; color: var(--rd-ink); font-size: clamp(2.25rem, 5vw, 3.7rem); line-height: var(--type-leading-tight); font-weight: var(--type-weight-bold); letter-spacing: -.045em; text-wrap: balance; }
[dir="rtl"] .co-simple-checkout__header h1 { line-height: var(--type-leading-heading); letter-spacing: 0; }
.co-simple-checkout__secure { display: inline-flex; min-height: 44px; flex: none; align-items: center; gap: .4rem; border-radius: 12px; padding: .65rem .85rem; color: var(--rd-olive); background: rgba(90, 107, 63, .09); box-shadow: inset 0 0 0 1px rgba(90, 107, 63, .12); font-size: var(--type-caption); font-weight: var(--type-weight-bold); }
.checkout-route { display: flex; max-width: 620px; align-items: center; gap: .5rem; margin: 0 0 1.6rem; padding: 0; list-style: none; }
.checkout-route li { display: flex; flex: 1; min-width: 0; align-items: center; gap: .45rem; color: var(--rd-muted); font-size: var(--type-caption); }
.checkout-route li:not(:last-child)::after { height: 1px; flex: 1; margin-inline-start: .2rem; background: rgba(8, 38, 30, .16); content: ""; }
.checkout-route li > span { display: grid; width: 26px; height: 26px; flex: none; place-items: center; border-radius: 50%; background: rgba(8, 38, 30, .08); font-size: var(--type-caption); font-weight: var(--type-weight-bold); }
.checkout-route li b { font-weight: var(--type-weight-bold); }
.checkout-route .is-current { color: var(--rd-red); }
.checkout-route .is-current > span { color: #fff; background: var(--rd-red); }
.checkout-route .is-complete { color: var(--rd-olive); }
.checkout-route .is-complete > span { background: rgba(90, 107, 63, .12); }
.co-checkout-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: clamp(1rem, 2.5vw, 1.75rem); align-items: start; }
.co-simple-shell { overflow: visible; border-radius: 24px; background: #fff; box-shadow: 0 0 0 1px rgba(8, 38, 30, .06), 0 28px 70px -52px rgba(8, 38, 30, .6); }
.co-simple-section { padding: clamp(1.25rem, 3vw, 1.75rem); }
.co-simple-section + .co-simple-section { border-top: 1px solid rgba(8, 38, 30, .07); }
.co-simple-section__heading { display: flex; align-items: flex-start; gap: .75rem; margin-bottom: 1.1rem; }
.co-simple-section__number { display: grid; width: 30px; height: 30px; flex: none; place-items: center; border-radius: 9px; color: #fff; background: var(--rd-red); font-size: var(--type-label); font-weight: var(--type-weight-bold); }
.co-simple-section__heading h2 { margin: .1rem 0 0; color: var(--rd-ink); font-size: var(--type-body-lg); font-weight: var(--type-weight-bold); letter-spacing: -.01em; }
.co-simple-section__heading p { margin: .22rem 0 0; color: var(--rd-muted); font-size: var(--type-caption); line-height: var(--type-leading-small); }
.co-simple-checkout .co-amounts { grid-template-columns: repeat(5, minmax(0, 1fr)); margin-top: 0; }
.co-simple-checkout .co-amt { min-height: 50px; border: 0; background: var(--rd-cream-2); box-shadow: inset 0 0 0 1px rgba(8, 38, 30, .11); transition: color .18s ease, background-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.co-simple-checkout .co-amt--custom { grid-column: auto; }
.co-simple-checkout .co-amt:hover { box-shadow: inset 0 0 0 1px var(--rd-red); }
.co-simple-checkout .co-amt:active { transform: scale(.97); }
.co-simple-checkout .co-amt.is-active { box-shadow: none; }
.co-simple-trust { display: flex; align-items: center; justify-content: center; gap: .65rem 1.3rem; border-top: 1px solid rgba(8, 38, 30, .07); border-radius: 0 0 24px 24px; padding: 1rem 1.25rem; color: var(--rd-muted); background: var(--rd-cream-2); font-size: var(--type-caption); }
.co-simple-trust span { display: inline-flex; align-items: center; gap: .35rem; }
.co-simple-trust .rd-ui-icon { color: var(--rd-olive); }
.co-order-card { position: sticky; top: 92px; overflow: hidden; border-radius: 22px; padding: 1.25rem; color: var(--rd-on-dark); background: var(--rd-ink); box-shadow: 0 24px 56px -40px rgba(8, 38, 30, .8); }
.co-order-card::before { position: absolute; inset-block-start: 0; inset-inline: 0; height: 3px; background: var(--rd-red); content: ""; }
.co-order-card__eyebrow { margin: 0 0 1.1rem; color: var(--rd-gold); font-size: var(--type-caption); font-weight: var(--type-weight-bold); letter-spacing: .08em; text-transform: uppercase; }
.co-simple-overview { display: grid; gap: 1.15rem; }
.co-simple-recipient { display: flex; min-width: 0; align-items: center; gap: .85rem; }
.co-simple-recipient__avatar { display: grid; width: 54px; height: 54px; flex: none; place-items: center; overflow: hidden; border-radius: 14px; color: var(--rd-gold); background: rgba(255, 248, 236, .1); box-shadow: inset 0 0 0 1px rgba(255, 248, 236, .12); object-fit: cover; outline: 1px solid rgba(255, 255, 255, .1); outline-offset: -1px; }
.co-simple-recipient__copy { display: grid; min-width: 0; gap: .12rem; }
.co-simple-recipient__copy > span { color: rgba(255, 248, 236, .62); font-size: var(--type-caption); font-weight: var(--type-weight-bold); }
.co-simple-recipient__copy strong { overflow: hidden; color: #fff; font-size: var(--type-body); font-weight: var(--type-weight-bold); text-overflow: ellipsis; white-space: nowrap; }
.co-simple-recipient__copy small { color: rgba(255, 248, 236, .66); font-size: var(--type-caption); line-height: var(--type-leading-small); }
.co-simple-total { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: .1rem 1rem; border-top: 1px solid rgba(255, 248, 236, .13); padding-top: 1rem; }
.co-simple-total > span { color: rgba(255, 248, 236, .62); font-size: var(--type-caption); font-weight: var(--type-weight-bold); }
.co-simple-total strong { grid-column: 2; grid-row: 1 / span 2; color: var(--rd-gold); font-size: var(--type-h2); line-height: var(--type-leading-tight); font-weight: var(--type-weight-bold); font-variant-numeric: tabular-nums; }
.co-simple-total small { color: rgba(255, 248, 236, .55); font-size: var(--type-caption); }
.co-order-card__note { display: flex; gap: .65rem; margin-top: 1.25rem; border-radius: 13px; padding: .8rem; background: rgba(255, 248, 236, .08); }
.co-order-card__note > .rd-ui-icon { flex: none; color: var(--rd-gold); }
.co-order-card__note p { display: grid; gap: .15rem; margin: 0; }
.co-order-card__note strong { color: #fff; font-size: var(--type-caption); }
.co-order-card__note span { color: rgba(255, 248, 236, .62); font-size: var(--type-caption); line-height: var(--type-leading-small); }
.co-order-card__secure { display: flex; align-items: flex-start; gap: .4rem; margin: 1rem 0 0; color: rgba(255, 248, 236, .57); font-size: var(--type-caption); line-height: var(--type-leading-small); }
.co-order-card__secure .rd-ui-icon { flex: none; }

@media (max-width: 900px) {
  .co-checkout-layout { grid-template-columns: minmax(0, 1fr); }
  .co-order-card { position: static; order: -1; }
  .co-order-card .co-simple-overview { grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
  .co-order-card .co-simple-total { min-width: 180px; border-top: 0; border-inline-start: 1px solid rgba(255, 248, 236, .13); padding-top: 0; padding-inline-start: 1rem; }
  .co-order-card__note, .co-order-card__secure { display: none; }
}
@media (max-width: 640px) {
  .co-simple-checkout { padding-block: 1.1rem 2.25rem; }
  .co-order-card { order: initial; }
  .co-simple-checkout__header { align-items: flex-start; }
  .co-simple-checkout__header h1 { font-size: clamp(1.9rem, 10vw, 2.6rem); }
  .co-simple-checkout__secure { min-height: 40px; padding: .55rem .7rem; }
  .checkout-route li b { display: none; }
  .checkout-route li:not(:last-child)::after { margin-inline: .35rem; }
  .co-simple-shell, .co-order-card { border-radius: 18px; }
  .co-order-card .co-simple-overview { grid-template-columns: minmax(0, 1fr); }
  .co-order-card .co-simple-total { min-width: 0; border-top: 1px solid rgba(255, 248, 236, .13); border-inline-start: 0; padding-top: .8rem; padding-inline-start: 0; }
  .co-simple-checkout .co-amounts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .co-simple-checkout .co-amt--custom { grid-column: 1 / -1; }
  .co-simple-trust { flex-wrap: wrap; border-radius: 0 0 18px 18px; }
}
@media (max-width: 420px) {
  .co-simple-checkout__secure { display: none; }
  .co-simple-recipient__copy small { display: none; }
}

/* ---------- checkout steps + amount chooser ---------- */
.co-steps { display: flex; align-items: center; gap: .9rem; margin: 1.1rem 0 1rem; padding: 0; list-style: none; }
.co-steps__step { display: inline-flex; align-items: center; gap: .45rem; color: var(--rd-muted); font-size: var(--type-label); font-weight: var(--type-weight-bold); }
.co-steps__step .n { display: grid; width: 26px; height: 26px; place-items: center; border-radius: 50%; background: rgba(8, 38, 30, .1); color: var(--rd-ink); font-size: var(--type-label); font-weight: var(--type-weight-bold); }
.co-steps__step.is-active { color: var(--rd-ink); font-weight: var(--type-weight-bold); }
.co-steps__step.is-active .n { background: var(--rd-red); color: #fff; }
.co-steps__step .sep { width: clamp(1.5rem, 5vw, 4rem); height: 1px; margin-inline-end: .45rem; background: rgba(8, 38, 30, .18); }

.co-amounts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .6rem; margin-top: .9rem; }
.co-amt { position: relative; min-height: 52px; display: inline-flex; align-items: center; justify-content: center; padding: .6rem .8rem; border: 1.5px solid rgba(8, 38, 30, .18); border-radius: 12px; background: var(--rd-cream); color: var(--rd-ink); font: inherit; font-size: var(--type-control); font-weight: var(--type-weight-bold); cursor: pointer; transition: border-color .16s ease, background-color .16s ease, color .16s ease; }
.co-amt:hover { border-color: var(--rd-red); color: var(--rd-red); }
.co-amt.is-active { border-color: var(--rd-red); background: var(--rd-red); color: #fff; }
.co-amt:focus-visible { outline: 3px solid var(--rd-gold); outline-offset: 2px; }
.co-amt--custom { grid-column: 1 / -1; font-size: var(--type-small); font-weight: var(--type-weight-bold); }
.co-amounts__hint { margin: .7rem 0 0; color: var(--rd-muted); font-size: var(--type-label); }
.co-custom-amount { margin-top: .8rem; border-radius: 14px; padding: .9rem; background: var(--rd-cream-2); box-shadow: inset 0 0 0 1px rgba(8, 38, 30, .08); }
.co-custom-amount[hidden] { display: none; }
.co-custom-amount label { display: block; margin-bottom: .45rem; color: var(--rd-ink); font-size: var(--type-label); font-weight: var(--type-weight-bold); }
.co-custom-amount__control { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: .55rem; min-height: 48px; border-radius: 10px; padding-inline: .8rem; background: #fff; box-shadow: 0 0 0 1px rgba(8, 38, 30, .14); }
.co-custom-amount__control:focus-within { box-shadow: 0 0 0 2px var(--rd-red); }
.co-custom-amount__control > span { color: var(--rd-muted); font-size: var(--type-label); font-weight: var(--type-weight-bold); }
.co-custom-amount__control > span:first-child { color: var(--rd-ink); font-size: var(--type-body); }
.co-custom-amount__control input { width: 100%; min-width: 0; border: 0; padding: .7rem 0; color: var(--rd-ink); background: transparent; font: inherit; font-size: var(--type-body); font-weight: var(--type-weight-bold); outline: 0; }
.co-custom-amount p { margin: .45rem 0 0; color: var(--rd-muted); font-size: var(--type-caption); }
.co-custom-amount .co-custom-amount__error { color: var(--rd-red); font-weight: var(--type-weight-bold); }
.co-custom-amount__error[hidden] { display: none; }
.co-custom-amount__control:has(input[aria-invalid="true"]) { box-shadow: 0 0 0 2px var(--rd-red); }

@media (max-width: 560px) {
  .co-steps { flex-wrap: wrap; row-gap: .4rem; }
  .co-steps__step .sep { width: 1rem; }
  .co-amounts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Pages: food aid — moved from static/css/pages/food-aid.css */
/* Food Aid program page — evidence-led editorial layout. */

.food-aid-page {
  background: var(--rd-cream);
}

.food-aid-page main {
  overflow: clip;
}

.food-hero {
  position: relative;
  display: grid;
  min-block-size: calc(100vh - var(--ui-header-block, 4.75rem));
  min-block-size: calc(100svh - var(--ui-header-block, 4.75rem));
  overflow: hidden;
  color: var(--rd-on-dark);
  background:
    radial-gradient(circle at 92% 4%, rgba(201, 162, 39, .12), transparent 30rem),
    var(--rd-ink);
}

.food-hero__layout {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1.04fr) minmax(22rem, .96fr);
  grid-template-areas: "copy give";
  gap: clamp(2.5rem, 6vw, 6rem);
  align-items: center;
  padding-block: clamp(4rem, 7vw, 6.5rem);
}

.food-hero__copy {
  grid-area: copy;
  min-width: 0;
}

.food-hero__copy .rd-eyebrow {
  margin-block-end: 1rem;
}

.food-hero__copy h1 {
  max-inline-size: 10.5ch;
  margin: 0;
  color: var(--rd-on-dark);
  font-size: clamp(3.6rem, 6.3vw, 5.7rem);
  font-weight: var(--type-weight-bold);
  line-height: var(--type-leading-tight);
  letter-spacing: -.055em !important;
  text-wrap: balance;
}

[dir="rtl"] .food-hero__copy h1 {
  max-inline-size: 12ch;
  line-height: var(--type-leading-heading);
  letter-spacing: 0 !important;
}

.food-hero__copy h1 span {
  color: var(--rd-gold);
}

.food-hero__lede {
  max-inline-size: 58ch;
  margin: 1.35rem 0 0;
  color: rgba(255, 248, 236, .76);
  font-size: clamp(1rem, 1.45vw, 1.15rem);
  line-height: var(--type-leading-body);
}

.food-hero__promises {
  display: flex;
  flex-wrap: wrap;
  gap: .8rem 1.35rem;
  margin: 1.4rem 0 0;
  padding: 0;
  list-style: none;
}

.food-hero__promises li {
  display: inline-flex;
  align-items: center;
  gap: .48rem;
  color: rgba(255, 248, 236, .84);
  font-size: var(--type-label);
  font-weight: var(--type-weight-bold);
}

.food-hero__promises .rd-ui-icon {
  width: 1.1rem;
  height: 1.1rem;
  color: var(--rd-gold);
}

.food-give-shell {
  grid-area: give;
  min-width: 0;
  overflow: hidden;
  border: 1px solid rgba(8, 38, 30, .12);
  border-radius: 1.5rem;
  color: var(--rd-ink);
  background: var(--rd-cream);
  box-shadow: 0 1.8rem 4rem -2.4rem rgba(0, 0, 0, .8);
}

.food-give-shell__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.15rem 1.35rem;
  border-block-end: 1px solid rgba(8, 38, 30, .1);
}

.food-give-shell__head p {
  margin: 0;
  color: var(--rd-ink);
  font-size: var(--type-body);
  font-weight: var(--type-weight-bold);
}

.food-give-shell__head span {
  color: var(--rd-muted);
  font-size: var(--type-caption);
  line-height: var(--type-leading-small);
  text-align: end;
}

.food-give-shell .rd-give {
  max-width: none;
  margin: 0;
  padding: 1.15rem 1.35rem .9rem;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.food-give-shell .rd-give__frequency-note {
  margin-block-end: .8rem;
  border: 1px solid rgba(8, 38, 30, .1);
  color: var(--rd-ink);
  background: var(--rd-cream-2);
}

.food-give-shell .rd-give__chip {
  min-height: 3rem;
  border-color: rgba(8, 38, 30, .21);
  color: var(--rd-ink);
  background: transparent;
}

.food-give-shell .rd-give__chip:hover {
  border-color: var(--rd-red);
}

.food-give-shell .rd-give__chip[aria-pressed="true"] {
  border-color: var(--rd-ink);
  color: var(--rd-on-dark);
  background: var(--rd-ink);
}

.food-give-shell .rd-give__custom input {
  border-color: rgba(8, 38, 30, .2);
  color: var(--rd-ink);
  background: #fff;
}

.food-give-shell .stripe-checkout-form__method {
  background: var(--rd-cream-2);
  box-shadow: inset 0 0 0 1px rgba(8, 38, 30, .09);
}

.food-give-shell .stripe-checkout-form__icon {
  background: #fff;
}

.food-give-shell .stripe-checkout-form__copy strong,
.food-give-shell .stripe-checkout-form__amount {
  color: var(--rd-ink);
}

.food-give-shell .stripe-checkout-form__copy small,
.food-give-shell .stripe-checkout-form__security {
  color: var(--rd-muted);
}

.food-give-shell .rd-give__submit--secondary {
  border-color: rgba(8, 38, 30, .18);
  color: var(--rd-muted);
}

.food-give-shell .rd-give__submit--secondary:hover {
  border-color: rgba(8, 38, 30, .35);
  color: var(--rd-ink);
  background: var(--rd-cream-2);
}

.food-give-impact {
  display: flex;
  align-items: center;
  gap: .55rem;
  margin: 0;
  padding: .9rem 1.35rem 1rem;
  border-block-start: 1px solid rgba(8, 38, 30, .1);
  color: var(--rd-muted);
  background: rgba(201, 162, 39, .09);
  font-size: var(--type-label);
  line-height: var(--type-leading-small);
}

.food-give-impact .rd-ui-icon {
  width: 1.05rem;
  height: 1.05rem;
  flex: none;
  color: var(--rd-olive);
}

.food-path {
  padding-block: clamp(5rem, 9vw, 8rem);
  border-block-end: 1px solid rgba(8, 38, 30, .1);
  background: var(--rd-cream);
}

.food-path__layout {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(24rem, 1.1fr);
  gap: clamp(3rem, 8vw, 8rem);
  align-items: start;
}

.food-path__intro {
  position: sticky;
  top: 7rem;
}

.food-path__intro h2,
.food-reports__head h2,
.food-finale h2 {
  margin: .85rem 0 0;
  color: var(--rd-ink);
  font-size: clamp(2.5rem, 4.7vw, 4.6rem);
  font-weight: var(--type-weight-bold);
  line-height: var(--type-leading-tight);
  letter-spacing: -.045em !important;
  text-wrap: balance;
}

[dir="rtl"] .food-path__intro h2,
[dir="rtl"] .food-reports__head h2,
[dir="rtl"] .food-finale h2 {
  line-height: var(--type-leading-heading);
  letter-spacing: 0 !important;
}

.food-path__intro > p:last-child {
  max-inline-size: 50ch;
  margin: 1.3rem 0 0;
  color: var(--rd-muted);
  line-height: var(--type-leading-body);
}

.food-path__steps {
  margin: 0;
  padding: 0;
  list-style: none;
}

.food-path__steps li {
  display: grid;
  grid-template-columns: 4.2rem minmax(0, 1fr);
  gap: 1.4rem;
  padding-block: 1.65rem;
  border-block-start: 1px solid rgba(8, 38, 30, .17);
}

.food-path__steps li:last-child {
  border-block-end: 1px solid rgba(8, 38, 30, .17);
}

.food-path__number {
  color: var(--rd-red);
  font-size: var(--type-label);
  font-weight: var(--type-weight-bold);
  font-variant-numeric: tabular-nums;
}

.food-path__steps h3,
.food-supports h3 {
  margin: 0;
  color: var(--rd-ink);
  font-size: var(--type-h4);
  font-weight: var(--type-weight-bold);
  line-height: var(--type-leading-heading);
}

.food-path__steps p,
.food-supports p {
  margin: .45rem 0 0;
  color: var(--rd-muted);
  font-size: var(--type-control);
  line-height: var(--type-leading-body);
}

.food-supports {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  margin-block-start: clamp(4rem, 7vw, 6rem);
  border-block: 1px solid rgba(8, 38, 30, .13);
}

.food-supports article {
  display: grid;
  grid-template-columns: 4.5rem minmax(0, 1fr);
  gap: 1rem;
  align-items: center;
  min-width: 0;
  padding: 1.4rem;
}

.food-supports article + article {
  border-inline-start: 1px solid rgba(8, 38, 30, .13);
}

.food-supports img {
  width: 4.5rem;
  height: 4.5rem;
  object-fit: contain;
  filter: saturate(.8) contrast(1.04);
}

.food-campaigns {
  padding-block: clamp(5rem, 9vw, 8rem);
  background: var(--rd-cream-2);
}

.food-campaigns .rd-campaigns {
  padding-block: 0;
}

.food-campaigns .rd-campaigns__head {
  margin-block-end: clamp(2rem, 5vw, 3.5rem);
}

.food-campaigns .rd-campaign-card,
.food-campaigns .rd-campaign-give {
  border-radius: 1.25rem;
}

.food-campaigns--archive .rd-campaigns__layout {
  grid-template-columns: minmax(0, 1fr);
}

.food-campaigns--archive .rd-campaign-results {
  max-inline-size: 58rem;
}

.food-campaigns--archive .rd-campaigns__layout > .rd-campaign-give {
  display: none;
}

.food-ongoing {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(18rem, .85fr);
  gap: 2rem;
  align-items: end;
  margin-block-start: 1.5rem;
  padding: clamp(1.8rem, 4vw, 3rem);
  border-radius: 1.25rem;
  color: var(--rd-on-dark);
  background:
    radial-gradient(circle at 88% 18%, rgba(201, 162, 39, .15), transparent 16rem),
    var(--rd-ink);
}

.food-ongoing h3 {
  max-inline-size: 22ch;
  margin: .7rem 0 0;
  color: var(--rd-on-dark);
  font-size: clamp(1.7rem, 3vw, 2.6rem);
  font-weight: var(--type-weight-bold);
  line-height: var(--type-leading-tight);
}

[dir="rtl"] .food-ongoing h3 {
  line-height: var(--type-leading-small);
}

.food-ongoing > div > p:last-child {
  max-inline-size: 57ch;
  margin: .8rem 0 0;
  color: rgba(255, 248, 236, .7);
  line-height: var(--type-leading-body);
}

.food-ongoing__actions {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  justify-content: flex-end;
}

[dir="rtl"] .food-ongoing__actions {
  justify-content: flex-start;
}

.food-reports {
  padding-block: clamp(5rem, 9vw, 8rem);
  background: var(--rd-cream);
}

.food-reports__head {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(19rem, .9fr);
  gap: clamp(2rem, 7vw, 7rem);
  align-items: end;
  padding-block-end: clamp(1.8rem, 4vw, 2.8rem);
  border-block-end: 1px solid rgba(8, 38, 30, .15);
}

.food-reports__head h2 {
  max-inline-size: 14ch;
  font-size: clamp(2.5rem, 4.5vw, 4.3rem);
}

.food-reports__head > div:last-child > p {
  margin: 0 0 1.2rem;
  color: var(--rd-muted);
  line-height: var(--type-leading-body);
}

.food-reports__head .rd-text-link {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
}

.food-reports .rd-reports-grid {
  margin-block-start: clamp(2rem, 4vw, 3rem);
}

.food-reports .rd-report {
  border-radius: 1.1rem;
  background:
    linear-gradient(145deg, rgba(201, 162, 39, .1), transparent 45%),
    var(--rd-ink);
}

.food-reports .rd-report--unavailable {
  border-color: rgba(8, 38, 30, .18);
}

.food-reports .rd-report__fallback {
  background:
    linear-gradient(to top, rgba(8, 38, 30, 1), rgba(11, 61, 46, .72)),
    var(--rd-ink);
}

.food-finale {
  position: relative;
  overflow: hidden;
  padding-block: clamp(4.5rem, 8vw, 7rem);
  color: var(--rd-on-dark);
  background: var(--rd-ink);
}

.food-finale::after {
  position: absolute;
  inset-block-start: -13rem;
  inset-inline-end: -10rem;
  width: 32rem;
  height: 32rem;
  border-radius: 50%;
  content: "";
  background: repeating-radial-gradient(circle, transparent 0 10px, rgba(255, 248, 236, .055) 10px 11px);
}

.food-finale__layout {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(20rem, .88fr);
  gap: clamp(2rem, 8vw, 8rem);
  align-items: end;
}

.food-finale h2 {
  max-inline-size: 12ch;
  color: var(--rd-on-dark);
}

.food-finale__action > p {
  max-inline-size: 52ch;
  margin: 0;
  color: rgba(255, 248, 236, .72);
  line-height: var(--type-leading-body);
}

.food-finale__action .actions {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  margin-block-start: 1.4rem;
}

@media (max-width: 1020px) {
  .food-hero__layout {
    grid-template-columns: minmax(0, 1fr) minmax(18rem, .78fr);
    grid-template-areas: "copy give";
  }

  .food-path__layout {
    grid-template-columns: minmax(0, 1fr);
    gap: 3rem;
  }

  .food-path__intro {
    position: static;
  }

  .food-path__intro h2 {
    max-inline-size: 15ch;
  }

  .food-supports {
    grid-template-columns: minmax(0, 1fr);
  }

  .food-supports article + article {
    border-block-start: 1px solid rgba(8, 38, 30, .13);
    border-inline-start: 0;
  }

  .food-ongoing,
  .food-reports__head,
  .food-finale__layout {
    grid-template-columns: minmax(0, 1fr);
  }

  .food-ongoing__actions {
    justify-content: flex-start;
  }
}

@media (max-width: 700px) {
  .food-aid-page .rd-burger {
    display: inline-flex;
    visibility: visible;
    opacity: 1;
  }

  .food-hero__layout {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
      "copy"
      "give";
    gap: 1.5rem;
    padding-block: 2.6rem 3.5rem;
  }

  .food-hero__copy h1 {
    max-inline-size: 11ch;
    font-size: clamp(2.65rem, 12vw, 3.55rem);
    line-height: var(--type-leading-tight);
  }

  [dir="rtl"] .food-hero__copy h1 {
    max-inline-size: 13ch;
    line-height: var(--type-leading-heading);
  }

  .food-hero__lede {
    margin-block-start: 1rem;
    font-size: var(--type-control);
    line-height: var(--type-leading-body);
  }

  .food-hero__promises {
    display: grid;
    gap: .6rem;
    margin-block-start: 1rem;
  }

  .food-give-shell__head {
    display: grid;
    gap: .25rem;
  }

  .food-give-shell__head span {
    text-align: start;
  }

  .food-give-shell .rd-give {
    padding: 1rem;
  }

  .food-give-shell .rd-give__amounts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .food-give-impact {
    padding-inline: 1rem;
  }

  .food-path,
  .food-campaigns,
  .food-reports {
    padding-block: 4rem;
  }

  .food-path__intro h2,
  .food-reports__head h2,
  .food-finale h2 {
    font-size: clamp(2.15rem, 10vw, 3rem);
  }

  .food-path__steps li {
    grid-template-columns: 2.6rem minmax(0, 1fr);
    gap: .8rem;
    padding-block: 1.35rem;
  }

  .food-supports {
    margin-block-start: 3.25rem;
  }

  .food-supports article {
    grid-template-columns: 3.8rem minmax(0, 1fr);
    padding: 1.15rem .25rem;
  }

  .food-supports img {
    width: 3.6rem;
    height: 3.6rem;
  }

  .food-campaigns .rd-campaigns__head {
    grid-template-columns: minmax(0, 1fr);
    gap: 1rem;
  }

  .food-campaigns .rd-campaigns__head > p {
    justify-self: start;
  }

  .food-ongoing {
    padding: 1.4rem;
    border-radius: 1rem;
  }

  .food-ongoing__actions,
  .food-finale__action .actions {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
  }

  .food-ongoing__actions a,
  .food-finale__action .actions a {
    justify-content: center;
    width: 100%;
  }

  .food-reports__head {
    padding-block-end: 1.75rem;
  }

  .food-reports .rd-reports-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .food-reports .rd-report:first-child {
    grid-column: auto;
    grid-row: auto;
    min-height: 19rem;
  }

  .food-finale {
    padding-block: 4.5rem;
  }
}

@media (max-width: 420px) {
  .food-hero__layout {
    padding-block-start: 2.2rem;
  }

  .food-hero__copy h1 {
    font-size: 2.55rem;
  }

  .food-path__steps h3,
  .food-supports h3 {
    font-size: var(--type-body);
  }
}

@media (prefers-reduced-motion: reduce) {
  .food-aid-page *,
  .food-aid-page *::before,
  .food-aid-page *::after {
    scroll-behavior: auto !important;
  }
}

/* Pages: messages — moved from static/css/pages/messages.css */
/* Messaging pages — IMPLEMENTATION-GUIDE §14.5b */
.rd-messages-page {
  position: relative;
  width: 100%;
  max-width: 1100px;
  margin-inline: auto;
  padding: 2.5rem clamp(1rem, 4vw, 2.5rem) 4rem;
}
#messages-app {
  transition-property: opacity;
  transition-duration: .15s;
}
#messages-app.htmx-swapping { opacity: 0; }
.rd-msg-loading {
  position: fixed;
  inset-block-start: 92px;
  inset-inline-start: 50%;
  z-index: 60;
  display: flex;
  width: 38px;
  height: 38px;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(8, 38, 30, .1);
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 10px 24px -12px rgba(8, 38, 30, .35);
  opacity: 0;
  pointer-events: none;
  transform: translateX(-50%);
  transition-property: opacity;
  transition-duration: .15s;
}
[dir="rtl"] .rd-msg-loading { transform: translateX(50%); }
.rd-msg-loading > span:first-child {
  width: 18px;
  height: 18px;
  border: 2px solid rgba(8, 38, 30, .15);
  border-top-color: var(--rd-red);
  border-radius: 50%;
  animation: rd-msg-spin .7s linear infinite;
}
.htmx-request.rd-msg-loading,
.htmx-request .rd-msg-loading { opacity: 1; }
@keyframes rd-msg-spin { to { transform: rotate(360deg); } }

.rd-msg-pagehead {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  margin-bottom: 1.6rem;
}
.rd-msg-pagehead__copy { min-width: 0; }
.rd-msg-pagehead h1 {
  color: var(--rd-ink);
  font-size: var(--type-h2);
  line-height: var(--type-leading-heading);
  font-weight: var(--type-weight-bold);
  text-wrap: balance;
}
.rd-msg-pagehead p {
  margin-top: .3rem;
  color: var(--rd-muted);
  font-size: var(--type-control);
  line-height: var(--type-leading-small);
  text-wrap: pretty;
}
.rd-msg-pagehead__actions {
  display: flex;
  gap: .6rem;
  margin-inline-start: auto;
  flex: none;
}
.rd-msg-primary,
.rd-msg-ghost {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  gap: .45rem;
  border-radius: 12px;
  padding: .6rem 1.2rem;
  font-family: inherit;
  font-size: var(--type-small);
  line-height: var(--type-leading-heading);
  font-weight: var(--type-weight-bold);
  text-decoration: none;
  cursor: pointer;
  user-select: none;
  transition-property: color, background-color, border-color, transform;
  transition-duration: .15s;
}
.rd-msg-primary {
  border: 1.5px solid var(--rd-red);
  background: var(--rd-red);
  color: #fff;
  box-shadow: 0 6px 16px -6px rgba(200, 16, 46, .5);
}
.rd-msg-primary:hover { background: var(--rd-red-dark); border-color: var(--rd-red-dark); color: #fff; }
.rd-msg-ghost {
  border: 1.5px solid rgba(8, 38, 30, .18);
  background: #fff;
  color: var(--rd-ink);
}
.rd-msg-ghost:hover { border-color: var(--rd-red); color: var(--rd-red); }
.rd-msg-primary:active,
.rd-msg-ghost:active { transform: scale(.96); }

.rd-msg-tools {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid rgba(8, 38, 30, .1);
}
.rd-msg-tabs { display: flex; align-items: center; gap: .2rem; }
.rd-msg-tab {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  gap: .4rem;
  border-bottom: 3px solid transparent;
  padding: .7rem 1rem;
  color: var(--rd-muted);
  font-size: var(--type-control);
  line-height: var(--type-leading-heading);
  font-weight: var(--type-weight-bold);
  white-space: nowrap;
}
.rd-msg-tab:hover { color: var(--rd-red); }
.rd-msg-tab.active { color: var(--rd-red); border-bottom-color: var(--rd-red); }
.rd-msg-count {
  display: inline-grid;
  min-width: 20px;
  height: 20px;
  place-items: center;
  border-radius: 999px;
  padding-inline: .35rem;
  background: var(--rd-cream-2);
  color: var(--rd-ink);
  font-size: var(--type-caption);
  font-weight: var(--type-weight-bold);
  font-variant-numeric: tabular-nums;
}
.rd-msg-tab.active .rd-msg-count { background: var(--rd-red); color: #fff; }
.rd-msg-filters {
  display: flex;
  align-items: center;
  gap: .55rem;
  margin-inline-start: auto;
  flex-wrap: wrap;
}
.rd-msg-chip {
  display: inline-flex;
  min-height: 40px;
  align-items: center;
  border: 1px solid rgba(8, 38, 30, .16);
  border-radius: 999px;
  padding: .45rem 1.05rem;
  background: transparent;
  color: var(--rd-muted);
  font-size: var(--type-label);
  line-height: var(--type-leading-heading);
  font-weight: var(--type-weight-bold);
  white-space: nowrap;
}
.rd-msg-chip:hover { border-color: var(--rd-ink); color: var(--rd-ink); }
.rd-msg-chip.active { border-color: var(--rd-ink); background: var(--rd-ink); color: var(--rd-on-dark); }
.rd-msg-orphan-filter select {
  min-height: 40px;
  max-width: 180px;
  border: 1.5px solid rgba(8, 38, 30, .18);
  border-radius: 999px;
  padding: .45rem 2.2rem .45rem .9rem;
  background-color: #fff;
  color: var(--rd-ink);
  font-family: inherit;
  font-size: var(--type-label);
}
[dir="rtl"] .rd-msg-orphan-filter select { padding: .45rem .9rem .45rem 2.2rem; }
.rd-msg-orphan-filter select:focus { outline: 2px solid var(--rd-gold); outline-offset: 1px; }

.rd-msg-layout {
  display: grid;
  min-height: 500px;
  grid-template-columns: 340px 1fr;
  margin-top: 1.2rem;
  overflow: hidden;
  border: 1px solid rgba(8, 38, 30, .09);
  border-radius: var(--rd-radius);
  background: #fff;
  box-shadow: 0 16px 34px -24px rgba(8, 38, 30, .2);
}
.rd-msg-list {
  max-height: 600px;
  overflow-y: auto;
  border-inline-end: 1px solid rgba(8, 38, 30, .09);
}
.rd-msg-item {
  position: relative;
  display: flex;
  width: 100%;
  gap: .8rem;
  align-items: flex-start;
  padding: 1rem 1.2rem;
  border-bottom: 1px solid rgba(8, 38, 30, .06);
  background: transparent;
  color: var(--rd-ink);
  text-align: start;
  transition-property: background-color;
  transition-duration: .15s;
}
.rd-msg-item:hover,
.rd-msg-item.selected { background: var(--rd-cream-2); }
.rd-msg-item.selected { box-shadow: inset 3px 0 0 var(--rd-red); }
[dir="rtl"] .rd-msg-item.selected { box-shadow: inset -3px 0 0 var(--rd-red); }
.rd-msg-item__avatar,
.rd-msg-person__avatar {
  display: grid;
  flex: none;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  font-weight: var(--type-weight-bold);
  box-shadow: 0 8px 20px -10px rgba(0, 0, 0, .35);
}
.rd-msg-item__avatar { width: 40px; height: 40px; font-size: var(--type-control); }
.rd-msg-item__copy { min-width: 0; flex: 1; }
.rd-msg-item__top { display: flex; align-items: baseline; gap: .5rem; }
.rd-msg-item__name {
  min-width: 0;
  flex: 1;
  overflow: hidden;
  color: var(--rd-ink);
  font-size: var(--type-control);
  line-height: var(--type-leading-small);
  font-weight: var(--type-weight-bold);
  text-overflow: ellipsis;
  white-space: nowrap;
}
.rd-msg-item.unread .rd-msg-item__name { font-weight: var(--type-weight-bold); }
.rd-msg-item__date {
  flex: none;
  color: var(--rd-muted);
  font-size: var(--type-caption);
  line-height: var(--type-leading-small);
  font-weight: var(--type-weight-regular);
  white-space: nowrap;
}
.rd-msg-item__subject,
.rd-msg-item__preview {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.rd-msg-item__subject { margin-top: .1rem; font-size: var(--type-label); font-weight: var(--type-weight-bold); }
.rd-msg-item__preview { margin-top: .15rem; color: var(--rd-muted); font-size: var(--type-label); line-height: var(--type-leading-small); }
.rd-msg-unread-dot {
  position: absolute;
  inset-block-start: .8rem;
  inset-inline-end: .65rem;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--rd-red);
}
.rd-msg-item__status {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: .22rem .55rem;
  font-size: var(--type-caption);
  line-height: var(--type-leading-heading);
  font-weight: var(--type-weight-bold);
  white-space: nowrap;
}
.rd-msg-item__status.delivered { background: rgba(90, 107, 63, .12); color: var(--rd-olive); }
.rd-msg-item__status.pending { background: rgba(201, 162, 39, .14); color: #7a6113; }

.rd-msg-pane {
  display: flex;
  min-width: 0;
  flex-direction: column;
  padding: 1.8rem;
}
.rd-msg-pane--empty { align-items: center; justify-content: center; text-align: center; }
.rd-msg-pane--empty .icon { font-size: var(--type-h2); }
.rd-msg-pane--empty p { margin-top: .6rem; color: var(--rd-muted); font-size: var(--type-control); }
.rd-msg-mobile-back { display: none; }
.rd-msg-person {
  display: flex;
  align-items: center;
  gap: .8rem;
  padding-bottom: 1rem;
  margin-bottom: 1.2rem;
  border-bottom: 1px solid rgba(8, 38, 30, .09);
}
.rd-msg-person__avatar { width: 48px; height: 48px; font-size: var(--type-body); }
.rd-msg-person__copy { min-width: 0; }
.rd-msg-person__name { font-size: var(--type-body-lg); line-height: var(--type-leading-heading); font-weight: var(--type-weight-bold); }
.rd-msg-person__meta { margin-top: .2rem; color: var(--rd-muted); font-size: var(--type-label); line-height: var(--type-leading-small); }
.rd-msg-person__date { margin-inline-start: auto; color: var(--rd-muted); font-size: var(--type-label); white-space: nowrap; }
.rd-msg-person__actions { display: flex; gap: .4rem; }
.rd-msg-person__actions .rd-msg-ghost { min-height: 40px; padding: .5rem .9rem; font-size: var(--type-label); }
.rd-msg-letter {
  flex: 1;
  border-radius: 14px;
  padding: 1.5rem;
  background: var(--rd-cream-2);
}
.rd-msg-letter h1,
.rd-msg-letter h2 {
  margin-bottom: 1rem;
  color: var(--rd-ink);
  font-size: var(--type-h4);
  line-height: var(--type-leading-heading);
  font-weight: var(--type-weight-bold);
  text-wrap: balance;
}
.rd-msg-letter__body {
  max-width: 68ch;
  color: var(--rd-ink);
  font-size: var(--type-body);
  line-height: var(--type-leading-body);
  overflow-wrap: break-word;
}
.rd-msg-letter__body p + p { margin-top: 1rem; }
.rd-msg-attachment {
  margin-top: 1.5rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(8, 38, 30, .1);
}
.rd-msg-attachment h3 { margin-bottom: .7rem; font-size: var(--type-label); font-weight: var(--type-weight-bold); }
.rd-msg-attachment img {
  display: block;
  width: 100%;
  max-width: 520px;
  max-height: 440px;
  border-radius: 10px;
  object-fit: cover;
  outline: 1px solid rgba(0, 0, 0, .1);
  outline-offset: -1px;
}
.rd-msg-file {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  gap: .7rem;
  border: 1px solid rgba(8, 38, 30, .12);
  border-radius: 10px;
  padding: .7rem 1rem;
  background: #fff;
  color: var(--rd-ink);
  font-size: var(--type-small);
  font-weight: var(--type-weight-bold);
}
.rd-msg-file:hover { border-color: var(--rd-red); color: var(--rd-red); }
.rd-msg-pane__footer {
  display: flex;
  align-items: center;
  gap: .8rem;
  justify-content: space-between;
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(8, 38, 30, .09);
}
.rd-msg-textlink { color: var(--rd-red); font-size: var(--type-small); line-height: var(--type-leading-small); font-weight: var(--type-weight-bold); }
.rd-msg-textlink:hover { color: var(--rd-red-dark); }
.rd-msg-nav { display: flex; gap: .5rem; }
.rd-msg-nav .rd-msg-ghost { min-width: 44px; padding: .5rem .8rem; }

.rd-msg-empty {
  margin-top: 1.2rem;
  padding: 4rem 2rem;
  border: 1px solid rgba(8, 38, 30, .09);
  border-radius: var(--rd-radius);
  background: #fff;
  text-align: center;
}
.rd-msg-empty__icon { font-size: 3rem; line-height: 1; }
.rd-msg-empty h2 { margin-top: 1rem; font-size: var(--type-h4); line-height: var(--type-leading-heading); font-weight: var(--type-weight-bold); margin-inline: auto; }
.rd-msg-empty p { max-width: 40ch; margin: .6rem auto 0; color: var(--rd-muted); font-size: var(--type-control); line-height: var(--type-leading-small); text-wrap: pretty; }
.rd-msg-empty .rd-msg-primary { margin-top: 1.3rem; }
.rd-msg-empty .rd-msg-textlink { display: block; margin-top: .9rem; color: var(--rd-muted); }
.rd-msg-pagination { display: flex; align-items: center; justify-content: center; gap: .5rem; margin-top: 1.5rem; }
.rd-msg-pagination span { color: var(--rd-muted); font-size: var(--type-small); }
.rd-msg-pagination a { display: inline-grid; width: 44px; height: 44px; place-items: center; border: 1px solid rgba(8,38,30,.14); border-radius: 10px; background: #fff; color: var(--rd-ink); }
.rd-msg-pagination a:hover { border-color: var(--rd-red); color: var(--rd-red); }

/* Compose */
.rd-compose-page {
  width: 100%;
  max-width: 1100px;
  margin-inline: auto;
  padding: 2.5rem clamp(1rem, 4vw, 2.5rem) 4rem;
}
.rd-compose-back { display: inline-flex; min-height: 44px; align-items: center; color: var(--rd-muted); font-size: var(--type-small); font-weight: var(--type-weight-bold); }
.rd-compose-back:hover { color: var(--rd-red); }
.rd-compose-card {
  position: relative;
  width: 100%;
  max-width: 560px;
  margin: .8rem auto 0;
  border: 1px solid rgba(8, 38, 30, .09);
  border-radius: var(--rd-radius);
  padding: 2rem;
  background: #fff;
  box-shadow: 0 20px 48px -30px rgba(8, 38, 30, .28);
}
.rd-compose-card h1 { margin-bottom: .35rem; font-size: var(--type-h4); line-height: var(--type-leading-heading); font-weight: var(--type-weight-bold); text-wrap: balance; }
.rd-compose-card__sub { margin-bottom: 1.2rem; color: var(--rd-muted); font-size: var(--type-small); line-height: var(--type-leading-small); text-wrap: pretty; }
.rd-compose-field { margin-bottom: 1.1rem; }
.rd-compose-field label { display: block; margin-bottom: .4rem; font-size: var(--type-small); line-height: var(--type-leading-small); font-weight: var(--type-weight-bold); }
.rd-compose-field label small { color: var(--rd-muted); font-weight: var(--type-weight-regular); }
.rd-compose-card select,
.rd-compose-card input[type="text"],
.rd-compose-card textarea {
  width: 100%;
  min-height: 48px;
  border: 1.5px solid rgba(8, 38, 30, .2) !important;
  border-radius: 12px;
  padding: .8rem 1rem !important;
  background: #fff !important;
  color: var(--rd-ink) !important;
  font-family: inherit;
  font-size: var(--type-control) !important;
  line-height: var(--type-leading-small);
  box-shadow: none !important;
}
.rd-compose-card textarea { min-height: 150px; resize: vertical; }
.rd-compose-card select:focus,
.rd-compose-card input[type="text"]:focus,
.rd-compose-card textarea:focus { outline: 2px solid var(--rd-gold) !important; outline-offset: 1px; border-color: var(--rd-gold) !important; }
.rd-compose-error { margin-top: .35rem; color: var(--rd-red); font-size: var(--type-label); line-height: var(--type-leading-small); font-weight: var(--type-weight-bold); }
.rd-compose-recipient {
  display: flex;
  align-items: center;
  gap: .8rem;
  border-radius: 12px;
  padding: .8rem 1rem;
  background: var(--rd-cream-2);
}
.rd-compose-recipient .rd-msg-item__avatar { width: 44px; height: 44px; }
.rd-msg-item__avatar--family { color: var(--rd-on-dark); background: var(--rd-red-dark); }
.rd-compose-recipient b { display: block; font-size: var(--type-control); }
.rd-compose-recipient span { color: var(--rd-muted); font-size: var(--type-label); }
.rd-compose-upload {
  position: relative;
  display: grid;
  min-height: 116px;
  place-items: center;
  overflow: hidden;
  border: 2px dashed rgba(8, 38, 30, .18);
  border-radius: 12px;
  padding: 1.2rem;
  color: var(--rd-muted);
  text-align: center;
  transition-property: border-color, background-color;
  transition-duration: .15s;
}
.rd-compose-upload:hover,
.rd-compose-upload.dragover { border-color: var(--rd-red); background: rgba(200, 16, 46, .03); }
.rd-compose-upload input { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; }
.rd-compose-upload strong { display: block; color: var(--rd-ink); font-size: var(--type-small); }
.rd-compose-upload small { display: block; margin-top: .25rem; font-size: var(--type-caption); }
.rd-compose-preview { display: none; align-items: center; gap: .8rem; width: 100%; text-align: start; }
.rd-compose-preview.visible { display: flex; }
.rd-compose-preview img { width: 64px; height: 64px; border-radius: 10px; object-fit: cover; outline: 1px solid rgba(0,0,0,.1); outline-offset: -1px; }
.rd-compose-preview__copy { min-width: 0; flex: 1; }
.rd-compose-preview__copy b { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: var(--type-label); }
.rd-compose-preview__copy span { font-size: var(--type-caption); color: var(--rd-muted); }
.rd-compose-remove { position: relative; z-index: 2; width: 44px; height: 44px; border: none; border-radius: 10px; background: var(--rd-cream-2); color: var(--rd-red); cursor: pointer; }
.rd-compose-meta { display: flex; justify-content: space-between; gap: .8rem; margin-top: .35rem; color: var(--rd-muted); font-size: var(--type-caption); }
.rd-compose-actions { display: grid; grid-template-columns: auto 1fr; gap: .7rem; margin-top: 1.2rem; }
.rd-compose-note { margin-top: 1rem; border-radius: 12px; padding: 1rem; background: var(--rd-cream-2); color: var(--rd-muted); font-size: var(--type-label); line-height: var(--type-leading-small); }

@media (max-width: 767px) {
  .rd-msg-loading { inset-block-start: 84px; }
  .rd-messages-page,
  .rd-compose-page { padding-block: 2rem 3rem; }
  .rd-msg-pagehead { align-items: flex-start; }
  .rd-msg-pagehead__actions { width: 100%; margin-inline-start: 0; }
  .rd-msg-pagehead { flex-wrap: wrap; }
  .rd-msg-tools { align-items: flex-start; flex-direction: column; }
  .rd-msg-tabs { width: 100%; flex-wrap: wrap; }
  .rd-msg-tab { min-width: 0; flex: 1 1 8rem; justify-content: center; white-space: normal; text-align: center; text-wrap: balance; }
  .rd-msg-filters { width: 100%; margin-inline-start: 0; overflow-x: auto; flex-wrap: nowrap; }
  .rd-msg-layout { grid-template-columns: 1fr; min-height: 420px; }
  .rd-msg-list { max-height: none; border-inline-end: none; }
  .rd-msg-layout:not(.rd-msg-layout--detail) .rd-msg-pane { display: none; }
  .rd-msg-layout--detail .rd-msg-list { display: none; }
  .rd-msg-mobile-back { display: inline-flex; min-height: 44px; align-items: center; margin-bottom: .5rem; color: var(--rd-red); font-size: var(--type-small); font-weight: var(--type-weight-bold); }
  .rd-msg-pane { padding: 1.2rem; }
  .rd-msg-person { align-items: flex-start; flex-wrap: wrap; }
  .rd-msg-person__date { order: 3; width: 100%; margin-inline-start: 56px; }
  .rd-msg-person__actions { margin-inline-start: auto; }
  .rd-msg-letter { padding: 1.2rem; }
  .rd-msg-pane__footer { align-items: stretch; flex-direction: column; }
  .rd-compose-card { padding: 1.5rem; }
}

@media (max-width: 480px) {
  .rd-msg-tab { padding-inline: .75rem; }
  .rd-msg-orphan-filter { display: none; }
  .rd-msg-pagehead__actions .rd-msg-primary { width: 100%; }
  .rd-compose-actions { grid-template-columns: 1fr; }
  .rd-compose-actions .rd-msg-primary { order: -1; }
}

@media (prefers-reduced-motion: reduce) {
  .rd-msg-primary,
  .rd-msg-ghost,
  .rd-msg-item,
  .rd-compose-upload,
  #messages-app,
  .rd-msg-loading { transition: none; }
  .rd-msg-loading > span:first-child { animation: none; }
  .rd-msg-primary:active,
  .rd-msg-ghost:active { transform: none; }
}

/* Pages: orphan profile — moved from static/css/pages/orphan-profile-restructure.css */
/* Orphan profile decision page: dignity-led story, explicit commitment, safe connection. */
.orphan-profile-page {
  --op-line: rgba(8, 38, 30, .12);
  --op-paper: #fffdf8;
  --op-panel: #f7ead4;
  --op-shadow: 0 24px 60px -46px rgba(8, 38, 30, .55);
  overflow: clip;
  background: var(--rd-cream);
  color: var(--rd-ink);
}

.orphan-profile-page *,
.orphan-profile-page *::before,
.orphan-profile-page *::after { box-sizing: border-box; }

.orphan-profile-page a { text-underline-offset: .2em; }
.orphan-profile-page :is(a, button, input):focus-visible {
  outline: 3px solid var(--rd-gold);
  outline-offset: 3px;
}

/* Calm contract strip */
.op-appeal {
  border-bottom: 1px solid var(--op-line);
  background: var(--rd-cream-2);
}
.op-appeal .rd-wrap {
  display: flex;
  min-height: 46px;
  align-items: center;
  justify-content: center;
  gap: .75rem;
  padding-block: .45rem;
  text-align: center;
}
.op-appeal p {
  margin: 0;
  color: var(--rd-ink);
  font-size: var(--type-label);
  font-weight: var(--type-weight-bold);
  line-height: var(--type-leading-small);
}
.op-appeal a {
  display: inline-flex;
  min-height: 36px;
  align-items: center;
  gap: .3rem;
  color: var(--rd-red);
  font-size: var(--type-label);
  font-weight: var(--type-weight-bold);
  white-space: nowrap;
}
.op-appeal .rd-ui-icon { width: 15px; height: 15px; }

/* Breadcrumb */
.op-profile-shell .rd-crumbs {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .15rem;
  padding: 1.1rem 0 .1rem;
  font-size: var(--type-label);
}
.op-profile-shell .rd-crumbs a {
  display: inline-flex;
  min-height: 28px;
  align-items: center;
}
.op-profile-shell .rd-crumbs .sep { display: inline-flex; margin-inline: .35rem; }
.op-profile-shell .rd-crumbs .rd-ui-icon { width: 14px; height: 14px; }

/* Profile hero */
body .orphan-profile-page .rd-phero {
  min-block-size: 0 !important;
  margin-top: .9rem;
  overflow: hidden;
  border-radius: 28px;
  background:
    linear-gradient(135deg, #062e25 0%, #08261e 62%, #0c382c 100%);
  box-shadow: var(--op-shadow), 0 0 0 1px rgba(8, 38, 30, .08);
}
.orphan-profile-page .rd-phero > .rd-wrap {
  display: grid;
  width: 100%;
  max-width: none;
  min-height: 640px;
  grid-template-columns: minmax(0, 1.2fr) minmax(290px, .72fr);
  gap: clamp(2rem, 5vw, 5rem);
  align-items: center;
  padding: clamp(2rem, 4vw, 3.75rem);
}
.orphan-profile-page .rd-pinfo { min-width: 0; max-width: 690px; }
.orphan-profile-page .rd-pinfo .rd-eyebrow { margin: 0 0 .85rem; }
.orphan-profile-page .rd-pinfo h1 {
  max-width: 14ch;
  margin: 0;
  color: #fff;
  font-size: clamp(3rem, 6vw, 5.4rem) !important;
  font-weight: var(--type-weight-bold);
  letter-spacing: -.055em;
  line-height: var(--type-leading-tight);
  text-wrap: balance;
}
[dir="rtl"] .orphan-profile-page .rd-pinfo h1 {
  letter-spacing: 0;
  line-height: var(--type-leading-heading);
}
.orphan-profile-page .rd-pchips {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
  margin: 1.15rem 0;
}
.orphan-profile-page .rd-pchip {
  display: inline-flex;
  min-height: 36px;
  align-items: center;
  gap: .4rem;
  border: 1px solid rgba(255, 248, 236, .34);
  border-radius: 999px;
  padding: .35rem .85rem;
  color: rgba(255, 248, 236, .92);
  font-size: var(--type-label);
  font-weight: var(--type-weight-bold);
}
.orphan-profile-page .rd-pchip .rd-ui-icon { width: 16px; height: 16px; color: var(--rd-gold); }
.orphan-profile-page .rd-pintro {
  max-width: 59ch;
  margin: 0;
  color: rgba(255, 248, 236, .78);
  font-size: var(--type-body);
  line-height: var(--type-leading-body);
}
.op-hero-cta { display: inline-flex; min-height: 48px; align-items: center; gap: .45rem; margin-top: 1.35rem; border-radius: 13px; padding: .75rem 1.1rem; color: var(--rd-ink); background: var(--rd-gold); font-size: var(--type-small); font-weight: var(--type-weight-bold); text-decoration: none; transition-property: background-color, transform; transition-duration: .16s; }
.op-hero-cta:hover { background: #ddb72f; }
.op-hero-cta:active { transform: scale(.96); }
.op-hero-cta .rd-ui-icon { width: 17px; height: 17px; }

/* Clear contract card: sponsorship is not a flexible gift. */
.op-commitment {
  max-width: 650px;
  margin-top: 1.5rem;
  border: 1px solid rgba(255, 248, 236, .12);
  border-radius: 20px;
  padding: clamp(1rem, 2vw, 1.35rem);
  color: var(--rd-ink);
  background: var(--rd-cream);
  box-shadow: 0 20px 50px -34px rgba(0, 0, 0, .8);
}
.op-commitment__heading {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
}
.op-commitment__heading > span {
  color: var(--rd-muted);
  font-size: var(--type-caption);
  font-weight: var(--type-weight-bold);
  letter-spacing: .07em;
  text-transform: uppercase;
}
.op-commitment__heading strong {
  color: var(--rd-red);
  font-size: clamp(1.35rem, 2.5vw, 2rem);
  font-weight: var(--type-weight-bold);
  line-height: var(--type-leading-tight);
}
.op-commitment > p {
  max-width: 58ch;
  margin: .55rem 0 1rem;
  color: var(--rd-muted);
  font-size: var(--type-label);
  line-height: var(--type-leading-body);
}
.op-commitment__actions {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
}
.op-commitment :is(.rd-btn-sponsor-lg, .rd-btn-gift) {
  display: inline-flex;
  min-height: 50px;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  margin: 0;
  text-decoration: none;
}
.op-commitment .rd-btn-sponsor-lg { padding: .75rem 1.2rem; }
.op-commitment .rd-btn-gift {
  border-color: rgba(8, 38, 30, .24);
  padding: .7rem 1rem;
  background: transparent;
}
.op-commitment > small {
  display: block;
  margin-top: .7rem;
  color: var(--rd-muted);
  font-size: var(--type-caption);
  line-height: var(--type-leading-small);
}

.orphan-profile-page .rd-portrait {
  position: relative;
  width: 100%;
  max-width: 400px;
  justify-self: end;
  margin: 0;
}
.orphan-profile-page .rd-portrait .frame {
  aspect-ratio: 4 / 5.1;
  overflow: hidden;
  border: 1px solid rgba(255, 248, 236, .13);
  border-radius: 22px;
  background: #0e3529;
  box-shadow: 0 30px 70px -28px rgba(0, 0, 0, .78);
}
.orphan-profile-page .rd-portrait .frame img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 24%;
}
.op-avatar-fallback { display: grid; width: 100%; height: 100%; place-items: center; }
.op-avatar-fallback .rd-avatar { width: 140px; height: 140px; font-size: 3rem; }
.orphan-profile-page .rd-portrait__badge {
  inset-inline: 1rem auto;
  bottom: 1rem;
  display: inline-flex;
  max-width: calc(100% - 2rem);
  min-height: 34px;
  align-items: center;
  gap: .35rem;
  padding: .4rem .8rem;
  font-size: var(--type-caption);
  box-shadow: 0 10px 24px -16px #000;
}

/* Relationship section */
.op-return {
  display: grid;
  grid-template-columns: minmax(15rem, 1.05fr) repeat(2, minmax(0, 1fr));
  gap: 1rem;
  align-items: stretch;
  margin-block: clamp(3rem, 6vw, 5rem);
}
.op-return__copy { padding: .75rem 1.5rem .75rem 0; }
[dir="rtl"] .op-return__copy { padding: .75rem 0 .75rem 1.5rem; }
.op-return__copy .rd-eyebrow { margin-bottom: .8rem; }
.op-return__copy h2 {
  max-width: 15ch;
  margin: 0;
  color: var(--rd-ink);
  font-size: clamp(2.2rem, 4vw, 3.4rem);
  font-weight: var(--type-weight-bold);
  letter-spacing: -.04em;
  line-height: var(--type-leading-tight);
  text-wrap: balance;
}
[dir="rtl"] .op-return__copy h2 { letter-spacing: 0; line-height: var(--type-leading-heading); }
.op-return__copy > p:last-child {
  max-width: 42ch;
  margin: 1rem 0 0;
  color: var(--rd-muted);
  font-size: var(--type-control);
  line-height: var(--type-leading-body);
}
.op-return__item {
  display: grid;
  min-width: 0;
  grid-template-columns: auto minmax(0, 1fr);
  gap: .9rem;
  align-content: start;
  border: 1px solid var(--op-line);
  border-radius: 20px;
  padding: clamp(1.25rem, 2.5vw, 1.7rem);
  background: var(--op-paper);
  box-shadow: var(--op-shadow);
}
.op-return__icon {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border-radius: 13px;
  color: var(--rd-red);
  background: rgba(200, 16, 46, .08);
}
.op-return__icon .rd-ui-icon { width: 21px; height: 21px; }
.op-return__item h3 {
  margin: .15rem 0 .55rem;
  color: var(--rd-ink);
  font-size: var(--type-body-lg);
  font-weight: var(--type-weight-bold);
  line-height: var(--type-leading-heading);
}
.op-return__item p {
  margin: 0;
  color: var(--rd-muted);
  font-size: var(--type-small);
  line-height: var(--type-leading-body);
}

/* Sticky decision bar appears only after the hero. */
.orphan-profile-page .rd-sponsor-bar {
  position: fixed;
  inset: 76px 0 auto;
  z-index: 45;
  border-bottom: 1px solid var(--op-line);
  padding-block: .65rem;
  background: rgba(255, 248, 236, .96);
  box-shadow: 0 16px 34px -28px rgba(8, 38, 30, .72);
  opacity: 0;
  pointer-events: none;
  transform: translateY(-110%);
  backdrop-filter: blur(16px);
  transition: opacity .2s ease, transform .24s cubic-bezier(.2, 0, 0, 1);
}
.orphan-profile-page .rd-sponsor-bar.is-visible {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}
.orphan-profile-page .rd-sponsor-bar .rd-wrap {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 1rem;
}
.orphan-profile-page .rd-sponsor-bar .who { display: flex; min-width: 0; align-items: center; gap: .7rem; }
.orphan-profile-page .rd-sponsor-bar .mini-avatar {
  display: grid;
  width: 44px;
  height: 44px;
  flex: none;
  place-items: center;
  border: 2px solid #fff;
  border-radius: 50%;
  color: #fff;
  object-fit: cover;
  font-weight: var(--type-weight-bold);
  box-shadow: 0 4px 14px -9px rgba(8, 38, 30, .6);
}
.orphan-profile-page .rd-sponsor-bar .name {
  overflow: hidden;
  margin: 0;
  color: var(--rd-ink);
  font-size: var(--type-control);
  font-weight: var(--type-weight-bold);
  text-overflow: ellipsis;
  white-space: nowrap;
}
.orphan-profile-page .rd-sponsor-bar .progress-info {
  display: flex;
  margin-inline-start: auto;
  align-items: center;
  gap: .65rem;
}
.orphan-profile-page .rd-sponsor-bar :is(.rd-btn-gift, .rd-btn-sponsor-lg) {
  display: inline-flex;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  margin: 0;
  text-decoration: none;
}
.op-sticky-mobile { display: none !important; }

/* Main narrative: fewer containers, stronger sequence. */
.orphan-profile-page .rd-pbody {
  padding-block: clamp(2.8rem, 6vw, 5rem);
  border-top: 1px solid rgba(8, 38, 30, .07);
  background: #fbf2e3;
}
.op-orphan-overview {
  margin-bottom: clamp(3.5rem, 7vw, 6rem);
  border: 1px solid var(--op-line);
  border-radius: 24px;
  padding: clamp(1.5rem, 4vw, 3rem);
  background: var(--op-paper);
}
.op-orphan-overview__header { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding-bottom: clamp(1.5rem, 3vw, 2rem); border-bottom: 1px solid var(--op-line); }
.op-orphan-overview__header .rd-eyebrow { margin: 0 0 .65rem; color: var(--rd-muted); font-size: .7rem; letter-spacing: .1em; }
.op-orphan-overview__header .rd-eyebrow::before { width: 1.5rem; background: var(--rd-olive); }
.op-orphan-overview__header h2 { margin: 0; color: var(--rd-ink); font-size: clamp(1.85rem, 3.4vw, 2.8rem); font-weight: var(--type-weight-bold); letter-spacing: -.04em; line-height: var(--type-leading-tight); text-wrap: balance; overflow-wrap: anywhere; }
[dir="rtl"] .op-orphan-overview__header h2 { letter-spacing: 0; line-height: var(--type-leading-heading); }
.op-orphan-overview__status { flex-shrink: 0; max-width: 100%; }
.op-orphan-overview__status > span { display: block; margin-bottom: .5rem; color: var(--rd-muted); font-size: .75rem; }
.op-orphan-overview__status strong { display: flex; align-items: center; gap: .55rem; padding: .65rem .85rem; border-radius: 8px; color: #72521e; background: #f6eddb; font-size: .85rem; font-weight: 600; line-height: 1.5; }
.op-orphan-overview__status-dot { flex: 0 0 .4rem; height: .4rem; border-radius: 50%; background: currentColor; }
.op-orphan-overview__status--funded strong { color: #325c43; background: #eaf1e9; }
.op-orphan-overview__body { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); align-items: start; gap: clamp(2rem, 5vw, 4.5rem); padding-block: clamp(1.5rem, 3vw, 2.25rem); }
.op-orphan-overview__story { min-width: 0; padding-block: .25rem; }
.op-orphan-overview__story h3 { margin: 0 0 .85rem; color: var(--rd-ink); font-size: 1rem; font-weight: 700; line-height: 1.5; }
.op-orphan-overview__story > p { max-width: 58ch; margin: 0; color: var(--rd-muted); font-size: clamp(1rem, 1.5vw, 1.125rem); line-height: 1.85; overflow-wrap: anywhere; text-wrap: pretty; }
.op-orphan-overview__facts { display: flex; flex-wrap: wrap; gap: 1.3rem 1.5rem; margin: 0; border-radius: 12px; padding: 1.5rem; background: #f5f3eb; }
.op-orphan-overview__facts > div { flex: 1 1 8rem; min-width: 0; }
.op-orphan-overview__facts dt { margin-bottom: .35rem; color: var(--rd-muted); font-size: .75rem; font-weight: 500; line-height: 1.5; }
.op-orphan-overview__facts dd { overflow-wrap: anywhere; margin: 0; color: var(--rd-ink); font-size: .95rem; font-weight: 600; line-height: 1.6; font-variant-numeric: tabular-nums; }
.op-orphan-overview__body--facts-only { grid-template-columns: minmax(0, 1fr); }
.op-orphan-overview__privacy { display: flex; align-items: flex-start; gap: .6rem; margin: 0; padding-top: 1.1rem; border-top: 1px solid var(--op-line); color: var(--rd-muted); font-size: .75rem; line-height: 1.7; }
.op-orphan-overview__privacy .rd-ui-icon { flex: 0 0 1rem; width: 1rem; height: 1rem; margin-top: .1rem; }
.op-profile-grid { display: grid; gap: clamp(2.5rem, 6vw, 5rem); margin-top: clamp(3rem, 7vw, 5rem); }
.op-support-decision { scroll-margin-top: 100px; }
.op-support-decision__header { max-width: 760px; margin-bottom: 1.6rem; }
.op-support-decision__header .rd-eyebrow { margin: 0 0 .75rem; color: var(--rd-red); }
.op-support-decision__header h2 { max-width: 18ch; margin: 0; font-size: clamp(2.1rem, 4vw, 3.6rem); font-weight: var(--type-weight-bold); letter-spacing: -.04em; line-height: var(--type-leading-tight); text-wrap: balance; }
[dir="rtl"] .op-support-decision__header h2 { letter-spacing: 0; line-height: var(--type-leading-heading); }
.op-support-decision__header > p:last-child { max-width: 62ch; margin: 1rem 0 0; color: var(--rd-muted); font-size: var(--type-body); line-height: var(--type-leading-body); }
.op-support-decision__choices { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.op-support-option { display: flex; min-width: 0; flex-direction: column; border-radius: 22px; padding: clamp(1.4rem, 3vw, 2rem); background: var(--op-paper); box-shadow: var(--op-shadow), 0 0 0 1px var(--op-line); }
.op-support-option--primary { color: var(--rd-on-dark); background: var(--rd-ink); }
.op-support-option__topline { display: flex; align-items: center; justify-content: space-between; gap: .75rem; }
.op-support-option__icon { display: grid; width: 46px; height: 46px; place-items: center; border-radius: 14px; color: var(--rd-red); background: rgba(200, 16, 46, .09); }
.op-support-option--primary .op-support-option__icon { color: var(--rd-gold); background: rgba(255, 248, 236, .1); }
.op-support-option__icon .rd-ui-icon { width: 22px; height: 22px; }
.op-support-option__tag { border-radius: 999px; padding: .35rem .7rem; color: var(--rd-muted); background: var(--rd-cream); font-size: var(--type-caption); font-weight: var(--type-weight-bold); }
.op-support-option--primary .op-support-option__tag { color: var(--rd-gold); background: rgba(255, 248, 236, .1); }
.op-support-option h3 { margin: 1.4rem 0 .65rem; color: var(--rd-ink); font-size: clamp(1.45rem, 2.5vw, 2rem); font-weight: var(--type-weight-bold); line-height: var(--type-leading-heading); }
.op-support-option--primary h3 { color: #fff; }
.op-support-option > p { max-width: 54ch; margin: 0 0 1.25rem; color: var(--rd-muted); font-size: var(--type-control); line-height: var(--type-leading-body); }
.op-support-option--primary > p { color: rgba(255, 248, 236, .72); }
.op-support-option > strong { margin-top: auto; color: var(--rd-ink); font-size: var(--type-h4); font-weight: var(--type-weight-bold); }
.op-support-option--primary > strong { color: var(--rd-gold); font-size: var(--type-h2); }
.op-support-option > strong small { font-size: var(--type-label); }
.op-support-option > :is(.rd-btn-sponsor-lg, .rd-btn-gift) { display: inline-flex; min-height: 50px; align-items: center; justify-content: center; margin: 1rem 0 .65rem; text-align: center; text-decoration: none; transition-property: background-color, border-color, transform; transition-duration: .16s; }
.op-support-option > :is(.rd-btn-sponsor-lg, .rd-btn-gift):active { transform: scale(.96); }
.op-support-option > small { color: var(--rd-muted); font-size: var(--type-caption); line-height: var(--type-leading-small); }
.op-support-option--primary > small { color: rgba(255, 248, 236, .58); }
.op-monthly-progress { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .35rem 1rem; margin: .2rem 0 1rem; border-radius: 12px; padding: .75rem .85rem; color: rgba(255, 248, 236, .68); background: rgba(255, 248, 236, .07); font-size: var(--type-caption); line-height: var(--type-leading-small); }
.op-monthly-progress strong { color: var(--rd-gold); }
.op-monthly-form { display: grid; gap: .55rem; margin-top: auto; }
.op-monthly-form label { color: #fff; font-size: var(--type-label); font-weight: var(--type-weight-bold); }
.op-monthly-form__amount { display: grid; min-height: 54px; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: .45rem; border-radius: 14px; padding-inline: 1rem; color: var(--rd-gold); background: #fff; box-shadow: 0 0 0 1px oklch(1 0 0 / .1); }
.op-monthly-form__amount:focus-within { box-shadow: 0 0 0 3px rgba(201, 162, 39, .4); }
.op-monthly-form__amount input { width: 100%; min-width: 0; border: 0; outline: 0; padding: .75rem 0; color: var(--rd-ink); background: transparent; font: inherit; font-size: var(--type-body-lg); font-weight: var(--type-weight-bold); }
.op-monthly-form__amount > span:last-child { color: var(--rd-muted); font-size: var(--type-caption); font-weight: var(--type-weight-bold); }
.op-monthly-form > p { margin: 0; color: rgba(255, 248, 236, .62); font-size: var(--type-caption); line-height: var(--type-leading-small); }
.op-monthly-form .rd-btn-sponsor-lg { display: inline-flex; width: 100%; min-height: 52px; align-items: center; justify-content: center; gap: .4rem; margin: .15rem 0 .6rem; border: 0; padding: .75rem 1rem; font: inherit; font-size: var(--type-label); cursor: pointer; transition-property: background-color, transform; transition-duration: .16s; }
.op-monthly-form .rd-btn-sponsor-lg:active { transform: scale(.96); }
.op-monthly-form .rd-ui-icon { width: 16px; height: 16px; }
.op-support-option--gift .op-gift-choice__controls { margin-top: auto; }
.op-main { display: grid; gap: 0; }
.op-card {
  min-width: 0;
  border: 0;
  border-top: 1px solid var(--op-line);
  border-radius: 0;
  padding: clamp(2rem, 4vw, 3.5rem) 0;
  background: transparent;
  box-shadow: none;
}
.op-card > h2 {
  max-width: 28ch;
  margin: 0 0 1rem;
  color: var(--rd-ink);
  font-size: clamp(1.65rem, 3vw, 2.5rem);
  font-weight: var(--type-weight-bold);
  letter-spacing: -.025em;
  line-height: var(--type-leading-heading);
  text-wrap: balance;
}
[dir="rtl"] .op-card > h2 { letter-spacing: 0; line-height: var(--type-leading-heading); }
.op-card > h2::before { display: none; }
.op-card > p,
.op-needs,
.op-story > p {
  max-width: 72ch;
  margin: 0;
  color: var(--rd-muted);
  font-size: var(--type-body);
  line-height: var(--type-leading-body);
}
.op-story > p { color: var(--rd-ink); font-size: var(--type-body); }
body .orphan-profile-page .op-main > .op-card:not(.op-process) {
  border-radius: 0;
  box-shadow: none;
}
body .orphan-profile-page .op-process > h2 { font-size: clamp(1.65rem, 3vw, 2.5rem); }

.op-process {
  scroll-margin-top: 104px;
  border: 1px solid var(--op-line);
  border-radius: 24px;
  padding: clamp(1.5rem, 4vw, 2.5rem);
  background: var(--op-paper);
  box-shadow: var(--op-shadow);
}
.op-process > h2 { max-width: 24ch; }
.op-process__steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  margin: 2rem 0 0;
  padding: 0;
  background: var(--op-line);
  list-style: none;
}
.op-process__steps li {
  display: grid;
  min-width: 0;
  grid-template-columns: auto minmax(0, 1fr);
  gap: .8rem;
  align-content: start;
  padding: 1.25rem;
  background: var(--op-paper);
}
.op-process__steps li > span {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: var(--rd-red);
  font-size: var(--type-label);
  font-weight: var(--type-weight-bold);
}
.op-process__steps h3 { margin: .2rem 0 .4rem; color: var(--rd-ink); font-size: var(--type-body); font-weight: var(--type-weight-bold); line-height: var(--type-leading-small); }
.op-process__steps p { margin: 0; color: var(--rd-muted); font-size: var(--type-label); line-height: var(--type-leading-body); }

/* Family context */
.op-siblings {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.1rem;
  margin-top: 1.75rem;
}
.orphan-profile-page .rd-sim-link { display: block; min-width: 0; border-radius: 20px; color: inherit; text-decoration: none; }
.orphan-profile-page .rd-sim {
  display: flex;
  overflow: hidden;
  height: 100%;
  min-height: 360px;
  flex-direction: column;
  border-radius: 20px;
  background: var(--op-paper);
  box-shadow: 0 0 0 1px oklch(0 0 0 / .07), 0 18px 38px -34px rgba(8, 38, 30, .55);
  transform: translateY(0);
  transition-property: box-shadow, transform;
  transition-duration: .18s;
  transition-timing-function: cubic-bezier(.2, 0, 0, 1);
}
.orphan-profile-page .rd-sim-link:hover .rd-sim { box-shadow: 0 0 0 1px oklch(0 0 0 / .08), 0 24px 46px -30px rgba(8, 38, 30, .5); transform: translateY(-3px); }
.orphan-profile-page .rd-sim-link:active .rd-sim { transform: scale(.96); }
.orphan-profile-page .rd-sim__portrait { position: relative; width: 100%; aspect-ratio: 4 / 3; overflow: hidden; background: var(--rd-ink); }
.orphan-profile-page .rd-sim__portrait .av { position: absolute; inset: 50% auto auto 50%; display: grid; width: 72px; height: 72px; place-items: center; border-radius: 50%; color: #fff; font-size: var(--type-h3); font-weight: var(--type-weight-bold); transform: translate(-50%, -50%); }
.orphan-profile-page .rd-sim__portrait img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 24%;
  outline: 1px solid oklch(0 0 0 / .1);
  outline-offset: -1px;
}
.orphan-profile-page .rd-sim__body { display: flex; min-width: 0; flex: 1; flex-direction: column; padding: 1.1rem 1.15rem 1.2rem; }
.orphan-profile-page .rd-sim__identity { display: flex; min-width: 0; align-items: flex-start; justify-content: space-between; gap: .6rem; }
.orphan-profile-page .rd-sim__body h3 { overflow-wrap: anywhere; margin: 0; color: var(--rd-ink); font-size: var(--type-body); font-weight: var(--type-weight-bold); line-height: var(--type-leading-heading); }
.orphan-profile-page .rd-sim__relation { flex: none; border-radius: 999px; padding: .28rem .55rem; color: var(--rd-red); background: rgba(200, 16, 46, .08); font-size: var(--type-caption); font-weight: var(--type-weight-bold); }
.orphan-profile-page .rd-sim__body .meta { margin: .35rem 0 1rem; color: var(--rd-muted); font-size: var(--type-label); line-height: var(--type-leading-small); }
.orphan-profile-page .rd-sim__action { display: inline-flex; min-height: 44px; align-items: center; gap: .35rem; margin-top: auto; color: var(--rd-ink); font-size: var(--type-label); font-weight: var(--type-weight-bold); }
.orphan-profile-page .rd-sim__action .rd-ui-icon { width: 16px; height: 16px; color: var(--rd-red); transition-property: transform; transition-duration: .18s; }
.orphan-profile-page .rd-sim-link:hover .rd-sim__action .rd-ui-icon { transform: translateX(3px); }
[dir="rtl"] .orphan-profile-page .rd-sim-link:hover .rd-sim__action .rd-ui-icon { transform: translateX(-3px); }

/* Support coverage, contribution, and documentation form a second decision row. */
.op-side {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(19rem, .92fr);
  gap: 1.25rem;
  align-items: stretch;
}
.op-side > .op-card { border: 1px solid var(--op-line); border-radius: 22px; padding: clamp(1.4rem, 3vw, 2rem); }
#monthly-provides { grid-column: 1 / -1; min-height: 330px; padding: clamp(2rem, 5vw, 3.5rem); }
#monthly-provides > h2 { max-width: 24ch; font-size: clamp(1.8rem, 3.4vw, 3rem); line-height: var(--type-leading-tight); }
.op-card--dark {
  color: var(--rd-on-dark);
  background: var(--rd-ink);
  box-shadow: 0 24px 54px -38px rgba(8, 38, 30, .8);
}
.op-card--dark > h2 { color: var(--rd-on-dark); font-size: clamp(1.35rem, 2.4vw, 2rem); }
.op-coverage { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1rem; margin: 2rem 0 0; padding: 0; list-style: none; }
.op-coverage li {
  display: flex;
  min-width: 0;
  align-items: flex-start;
  gap: .65rem;
  border-top: 1px solid rgba(255, 248, 236, .13);
  padding-top: .8rem;
  color: rgba(255, 248, 236, .82);
  font-size: var(--type-control);
  line-height: var(--type-leading-body);
}
.op-coverage .rd-ui-icon { width: 19px; height: 19px; flex: none; margin-top: .1rem; color: var(--rd-gold); }

.op-card.op-gift-choice {
  scroll-margin-top: 104px;
  background: var(--op-paper);
  box-shadow: var(--op-shadow);
}
.op-gift-choice__eyebrow {
  margin: 0 0 .65rem !important;
  color: var(--rd-red) !important;
  font-size: var(--type-caption) !important;
  font-weight: var(--type-weight-bold);
  letter-spacing: .08em;
  line-height: var(--type-leading-heading) !important;
  text-transform: uppercase;
}
.op-card.op-gift-choice > h2 { font-size: clamp(1.35rem, 2.4vw, 2rem); }
.op-card.op-gift-choice > p:not(.op-gift-choice__eyebrow) { margin-bottom: 1.2rem; font-size: var(--type-small); line-height: var(--type-leading-body); }
.op-gift-choice__controls { display: grid; gap: .65rem; }
.op-gift-choice__amounts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .55rem; }
.op-gift-choice__amounts button {
  display: flex;
  min-width: 0;
  min-height: 50px;
  align-items: center;
  justify-content: center;
  gap: .35rem;
  border: 1px solid rgba(8, 38, 30, .22);
  border-radius: 12px;
  padding: .55rem .5rem;
  color: var(--rd-ink);
  background: var(--rd-cream);
  font: inherit;
  font-size: var(--type-control);
  font-weight: var(--type-weight-bold);
  cursor: pointer;
  transition: border-color .16s ease, background-color .16s ease, color .16s ease, transform .16s ease;
}
.op-gift-choice__amounts button:hover { border-color: var(--rd-ink); background: var(--rd-cream-2); }
.op-gift-choice__amounts button.is-selected { border-color: var(--rd-red); color: #fff; background: var(--rd-red); }
.op-gift-choice__amounts [data-gift-other] { grid-column: 1 / -1; }
.op-gift-choice__amounts button:active { transform: scale(.97); }
.op-gift-selected-mark { display: none; }
.op-gift-choice__amounts button.is-selected .op-gift-selected-mark { display: inline-flex; }
.op-gift-selected-mark .rd-ui-icon { width: 16px; height: 16px; }
.op-gift-choice__selection { min-height: 1.3em; margin: 0; color: var(--rd-olive); font-size: var(--type-label); font-weight: var(--type-weight-bold); }
.op-gift-choice__other { display: grid; gap: .4rem; }
.op-gift-choice__other[hidden],
.op-gift-choice__continue[hidden] { display: none; }
.op-gift-choice__other label { color: var(--rd-ink); font-size: var(--type-label); font-weight: var(--type-weight-bold); }
.op-gift-choice__input-wrap {
  display: grid;
  min-height: 50px;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: .4rem;
  border: 1px solid rgba(8, 38, 30, .24);
  border-radius: 12px;
  padding-inline: .85rem;
  color: var(--rd-red);
  background: #fff;
}
.op-gift-choice__input-wrap:focus-within { border-color: var(--rd-gold); }
.op-gift-choice__input-wrap input {
  width: 100%;
  min-width: 0;
  border: 0;
  outline: 0;
  padding: .7rem 0;
  color: var(--rd-ink);
  background: transparent;
  font: inherit;
  font-size: var(--type-body);
}
.op-gift-choice__input-wrap input[aria-invalid="true"] { color: var(--rd-red); }
.op-gift-choice__minimum { margin: 0; color: var(--rd-muted); font-size: var(--type-caption); line-height: var(--type-leading-small); }
.op-gift-choice__error { min-height: 1.2em; margin: 0; color: var(--rd-red); font-size: var(--type-caption); font-weight: var(--type-weight-bold); }
.op-gift-choice__continue {
  display: inline-flex;
  width: 100%;
  min-height: 50px;
  align-items: center;
  justify-content: center;
  margin: .1rem 0 0;
  padding: .75rem 1rem;
  text-align: center;
  text-decoration: none;
}

.op-card--note { grid-column: 1 / -1; background: transparent; }
.op-card--note > h2 { font-size: clamp(1.35rem, 2.4vw, 2rem); }
.op-card--note > p { max-width: 68ch; margin-bottom: .9rem; font-size: var(--type-control); }
.op-card--note .rd-text-link { display: inline-flex; align-items: center; gap: .35rem; }
.op-card--note .rd-ui-icon { width: 17px; height: 17px; }

.op-safety-note {
  display: flex;
  max-width: 820px;
  align-items: flex-start;
  justify-content: center;
  gap: .5rem;
  margin: clamp(2rem, 5vw, 3.5rem) auto 0;
  color: var(--rd-muted);
  font-size: var(--type-label);
  line-height: var(--type-leading-body);
  text-align: center;
}
.op-safety-note .rd-ui-icon { width: 18px; height: 18px; flex: none; margin-top: .15rem; color: var(--rd-olive); }

/* Alternate profiles remain available, but after the complete decision story. */
.op-similar {
  padding-block: clamp(3.5rem, 7vw, 6rem);
  border-top: 1px solid var(--op-line);
  background: var(--rd-cream);
}
.op-similar .rd-sec-head { max-width: 720px; }
.op-similar .rd-h-section { max-width: 20ch; text-wrap: balance; }

@media (max-width: 1020px) {
  .orphan-profile-page .rd-phero > .rd-wrap {
    min-height: 0;
    grid-template-columns: minmax(0, 1fr) minmax(250px, 320px);
    gap: 2rem;
    padding: 2rem;
  }
  .orphan-profile-page .rd-pinfo h1 { font-size: clamp(2.8rem, 8vw, 4.5rem) !important; }
  .op-return { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .op-return__copy { grid-column: 1 / -1; max-width: 720px; padding: 0 0 1rem; }
  [dir="rtl"] .op-return__copy { padding: 0 0 1rem; }
  .op-process__steps { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .op-process__steps li + li { border-top: 1px solid var(--op-line); }
  .op-side { grid-template-columns: minmax(0, 1fr); }
  .op-coverage { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .op-card--note { grid-column: auto; }
  .op-siblings { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 740px) {
  .orphan-profile-page { padding-bottom: 78px; }
  .op-appeal .rd-wrap { justify-content: space-between; text-align: start; }
  .op-appeal p { max-width: 34ch; font-size: var(--type-caption); }
  .op-appeal a { font-size: var(--type-caption); }
  body .orphan-profile-page .rd-phero { border-radius: 18px; }
  .orphan-profile-page .rd-phero > .rd-wrap {
    grid-template-columns: minmax(0, 1fr);
    gap: 1.5rem;
    padding: 1rem;
  }
  .orphan-profile-page .rd-pinfo { padding: .6rem .25rem 0; }
  .orphan-profile-page .rd-pinfo h1 { font-size: clamp(2.45rem, 14vw, 3.7rem) !important; }
  .orphan-profile-page .rd-pintro { font-size: var(--type-control); }
  .op-commitment__heading { align-items: flex-start; flex-direction: column; gap: .35rem; }
  .op-commitment__actions { display: grid; }
  .op-commitment__actions a { width: 100%; }
  .orphan-profile-page .rd-portrait { max-width: none; justify-self: stretch; }
  .orphan-profile-page .rd-portrait .frame { aspect-ratio: 4 / 3.75; }
  .op-orphan-overview { border-radius: 18px; padding: 1.25rem; }
  .op-orphan-overview__header { align-items: flex-start; flex-direction: column; gap: 1.25rem; }
  .op-orphan-overview__body { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
  .op-orphan-overview__facts { padding: 1.15rem; gap: 1.2rem 1rem; }
  .op-orphan-overview__facts > div { flex-basis: 7rem; }
  .op-support-decision__choices { grid-template-columns: minmax(0, 1fr); }
  .op-return { grid-template-columns: minmax(0, 1fr); margin-block: 2.7rem; }
  .op-return__copy { grid-column: auto; }
  .op-return__copy h2 { font-size: clamp(2.1rem, 11vw, 3rem); }
  .op-return__item { grid-template-columns: auto minmax(0, 1fr); }
  .orphan-profile-page .rd-sponsor-bar {
    inset: auto 0 0;
    padding: .65rem;
    border-top: 1px solid var(--op-line);
    border-bottom: 0;
    transform: translateY(110%);
  }
  .orphan-profile-page .rd-sponsor-bar .who,
  .orphan-profile-page .rd-sponsor-bar .op-sticky-contribution,
  .op-sticky-desktop { display: none !important; }
  .orphan-profile-page .rd-sponsor-bar .progress-info { width: 100%; margin: 0; }
  .op-sticky-mobile { display: inline-flex !important; width: 100%; }
  .op-card { padding-block: 2.2rem; }
  .op-card > h2 { font-size: var(--type-h3); }
  .op-process { padding: 1.25rem; }
  .op-process__steps li { padding: 1.1rem 0; }
  .op-siblings { grid-template-columns: minmax(0, 1fr); }
  .op-coverage { grid-template-columns: minmax(0, 1fr); }
  .op-side > .op-card { padding: 1.3rem; }
  #monthly-provides { min-height: 0; padding: 1.5rem; }
  .op-gift-choice__amounts { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .op-safety-note { text-align: start; }
}

@media (max-width: 420px) {
  .op-appeal p { display: none; }
  .op-appeal .rd-wrap { justify-content: center; }
  .op-return__item { grid-template-columns: minmax(0, 1fr); }
  .op-return__icon { width: 40px; height: 40px; }
  .op-gift-choice__amounts { grid-template-columns: minmax(0, 1fr); }
  .op-gift-choice__amounts [data-gift-other] { grid-column: auto; }
}

@media (prefers-reduced-motion: reduce) {
  .orphan-profile-page .rd-sponsor-bar,
  .op-gift-choice__amounts button,
  .op-hero-cta,
  .op-support-option > :is(.rd-btn-sponsor-lg, .rd-btn-gift),
  .orphan-profile-page .rd-sim,
  .orphan-profile-page .rd-sim__action .rd-ui-icon { transition-duration: 0s; }
}

/* Shared polish layer — moved from static/css/polish.css */
/* Hand Of Giving — final shared UI system.
   Loaded after page styles so controls, type, surfaces, and focus states remain
   consistent without taking ownership of page-specific layout. */

:root {
  --font-en: "Manrope", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-ar: "Cairo", "Noto Sans Arabic", Tahoma, Arial, sans-serif;
  --font-body: var(--font-en);

  --ui-space-1: 0.25rem;
  --ui-space-2: 0.5rem;
  --ui-space-3: 0.75rem;
  --ui-space-4: 1rem;
  --ui-space-5: 1.5rem;
  --ui-space-6: 2rem;
  --ui-space-7: 3rem;
  --ui-space-8: 4.5rem;

  /* Semantic type roles. Keep additions rare: hierarchy comes from these roles. */
  --type-caption: 0.75rem;
  --type-label: 0.8125rem;
  --type-small: 0.875rem;
  --type-control: 0.9375rem;
  --type-body: 1rem;
  --type-body-lg: 1.125rem;
  --type-h4: 1.25rem;
  --type-h3: 1.5rem;
  --type-h2: clamp(1.875rem, 1.45rem + 1.7vw, 2.75rem);
  --type-h1: clamp(2.25rem, 1.55rem + 3vw, 4.5rem);
  --type-display: clamp(2.75rem, 1.5rem + 6vw, 5.5rem);

  --type-weight-regular: 400;
  --type-weight-medium: 500;
  --type-weight-semibold: 600;
  --type-weight-bold: 700;

  --type-leading-tight: 1.1;
  --type-leading-heading: 1.2;
  --type-leading-body: 1.6;
  --type-leading-small: 1.5;
  --type-measure: 65ch;
  --type-paragraph-gap: 0.875em;
  --type-heading-gap: 0.65em;
  --type-tracking-heading: -0.022em;
  --type-tracking-label: 0.06em;

  /* Existing component aliases resolve to semantic roles. */
  --ui-text-caption: var(--type-caption);
  --ui-text-meta: var(--type-label);
  --ui-text-control: var(--type-control);
  --ui-text-body: var(--type-body);
  --ui-text-lead: var(--type-body-lg);
  --ui-text-card: var(--type-h4);
  --ui-text-section: var(--type-h2);
  --ui-text-display: var(--type-display);

  --ui-weight-regular: var(--type-weight-regular);
  --ui-weight-medium: var(--type-weight-medium);
  --ui-weight-semibold: var(--type-weight-semibold);
  --ui-weight-bold: var(--type-weight-bold);
  --ui-weight-extra: var(--type-weight-bold);

  --ui-radius-control: 0.75rem;
  --ui-radius-card: 1.125rem;
  --ui-radius-panel: 1.5rem;
  --ui-control-height: 2.75rem;
  --ui-content-max: 75rem;

  --ui-border: rgb(8 38 30 / 0.12);
  --ui-border-strong: rgb(8 38 30 / 0.2);
  --ui-shadow-card:
    0 0 0 1px rgb(8 38 30 / 0.05),
    0 2px 5px -3px rgb(8 38 30 / 0.12),
    0 18px 42px -32px rgb(8 38 30 / 0.34);
  --ui-shadow-raised:
    0 0 0 1px rgb(8 38 30 / 0.07),
    0 4px 10px -6px rgb(8 38 30 / 0.16),
    0 24px 48px -30px rgb(8 38 30 / 0.38);
  --ui-focus: 0 0 0 3px rgb(201 162 39 / 0.42);
  --ui-ease: cubic-bezier(0.2, 0, 0, 1);

  /* Compatibility aliases for existing components. These resolve to the
     single semantic scale above rather than creating a second type system. */
  --type-meta: var(--type-label);
  --type-ui-sm: var(--type-small);
  --type-ui: var(--type-control);
  --type-title-sm: var(--type-h4);
  --type-title: var(--type-h3);
  --type-section: var(--type-h2);
  --leading-tight: var(--type-leading-tight);
  --leading-heading: var(--type-leading-heading);
  --leading-ui: var(--type-leading-small);
  --leading-body: var(--type-leading-body);
  --heading-tracking: var(--type-tracking-heading);
  --heading-tracking-sm: -0.01em;
  --eyebrow-tracking: var(--type-tracking-label);
}

html[lang="ar"] {
  --font-body: var(--font-ar);
  --heading-tracking: 0;
  --heading-tracking-sm: 0;
  --eyebrow-tracking: 0;
}

html {
  font-size: 100%;
  font-kerning: normal;
  font-optical-sizing: auto;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  font-family: var(--font-body);
  font-size: var(--ui-text-body);
  font-weight: var(--ui-weight-regular);
  line-height: var(--type-leading-body);
  font-synthesis: none;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

button,
input,
select,
textarea {
  font: inherit;
  letter-spacing: inherit;
}

:where(button, [role="button"]) { user-select: none; }

:where(strong, b) { font-weight: var(--ui-weight-bold); }

small {
  font-size: var(--ui-text-meta) !important;
  line-height: var(--type-leading-small) !important;
}

:where(h1, h2, h3, h4, h5, h6) {
  margin-block-start: 0;
  color: var(--rd-ink, var(--hog-ink));
  font-weight: var(--ui-weight-extra);
  letter-spacing: -0.022em !important;
  text-wrap: balance;
}

body :is(h1, h2, h3, h4, h5, h6) {
  font-weight: var(--ui-weight-extra) !important;
  letter-spacing: var(--heading-tracking) !important;
}

body h1 { line-height: var(--leading-tight) !important; }
body h2 { line-height: var(--leading-heading) !important; }
body :is(h3, h4, h5, h6) { line-height: var(--type-leading-heading) !important; }

html[lang="ar"] body :is(h1, h2, h3, h4, h5, h6) {
  letter-spacing: 0 !important;
}

html[lang="ar"] body h1 { line-height: var(--type-leading-heading) !important; }
html[lang="ar"] body h2 { line-height: var(--type-leading-heading) !important; }

html[lang="ar"] :where(h1, h2, h3, h4, h5, h6) {
  letter-spacing: 0 !important;
}

:is(.rd-h-display, .site-editorial-hero__title) {
  max-inline-size: 12ch;
  font-size: var(--ui-text-display);
  line-height: var(--type-leading-tight);
}

:is(.rd-h-section, .rd-sec-head h2, .gallery-intro h2) {
  max-inline-size: 24ch;
  font-size: var(--ui-text-section);
  line-height: var(--type-leading-heading);
}

html[lang="ar"] :is(.rd-h-display, .site-editorial-hero__title) { line-height: var(--type-leading-heading); }
html[lang="ar"] :is(.rd-h-section, .rd-sec-head h2, .gallery-intro h2) { line-height: var(--type-leading-heading); }

:where(p, blockquote, dd, figcaption, li, td, th) {
  overflow-wrap: break-word;
}

:where(p, blockquote, dd, figcaption) { text-wrap: pretty; }

html[lang="en"] :is(.rd-story__text p, .rd-msg-letter__body p, blockquote) {
  hyphens: auto;
}

html[lang="ar"] :where(p, blockquote, dd, figcaption) { hyphens: none; }

:is(.rd-co h2, .op-card h2, .profile-panel h2, .rd-msg-pagehead h1) {
  font-size: var(--ui-text-card);
  line-height: var(--type-leading-heading);
}

:is(.rd-lede, .editorial-copy, .gallery-intro > p, .rd-campaigns__head > p) {
  max-inline-size: 65ch;
  font-size: var(--ui-text-lead);
  line-height: var(--type-leading-body);
}

:is(.rd-story-lede, .rd-story__text, .rd-msg-letter__body) { max-inline-size: 65ch; }

:is(.rd-story__text p, .rd-msg-letter__body p, article blockquote) { text-wrap: wrap; }

.rd-sec-head {
  max-inline-size: 42rem;
  margin-block-end: clamp(1.75rem, 4vw, 3rem);
}

.rd-sec-head > :last-child { margin-block-end: 0; }

:is(.rd-wrap, .gallery-site-head__inner) {
  width: 100%;
  max-width: var(--ui-content-max);
  margin-inline: auto;
  padding-inline: clamp(1rem, 4vw, 2.5rem);
}

/* One control language: 44px target, 12px radius, 15px type, explicit motion. */
:is(
  .rd-donate,
  .rd-btn-red,
  .rd-btn-ghost,
  .rd-btn-primary,
  .rd-btn-light,
  .rd-btn-outline-light,
  .rd-soft-btn,
  .rd-sponsor-btn,
  .rd-btn-gift,
  .rd-btn-gift-full,
  .rd-btn-sponsor-lg,
  .rd-card-cta,
  .rd-msg-primary,
  .rd-msg-ghost,
  .rd-give__submit,
  .gallery-view-tab,
  .gallery-head-back,
  .gallery-head-language,
  .gallery-head-donate,
  .gallery-filter-submit,
  .gallery-clear-filters,
  .impact-story__cta,
  .profile-button,
  .op-checkout-back,
  .op-gift-choice__continue,
  .stripe-checkout-form__submit
) {
  display: inline-flex;
  min-height: var(--ui-control-height);
  align-items: center;
  justify-content: center;
  gap: var(--ui-space-2);
  border-radius: var(--ui-radius-control);
  padding: 0.72rem 1.1rem;
  font-size: var(--ui-text-control);
  font-weight: var(--ui-weight-extra);
  line-height: var(--type-leading-heading);
  text-align: center;
  text-decoration: none;
  transition-property: color, background-color, border-color, box-shadow, transform, opacity;
  transition-duration: 160ms;
  transition-timing-function: var(--ui-ease);
}

:is(
  .rd-nav > a,
  .rd-nav__link,
  .rd-dropdown__btn,
  .rd-lang,
  .rd-user__btn,
  .rd-tab,
  .rd-impact-tab,
  .rd-filter-reset,
  .hog-select__button,
  .rd-age-dropdown__trigger
) {
  display: inline-flex;
  min-height: var(--ui-control-height);
  align-items: center;
  justify-content: center;
  font-size: var(--ui-text-control);
  line-height: var(--type-leading-heading);
  transition-property: color, background-color, border-color, box-shadow, transform;
  transition-duration: 160ms;
  transition-timing-function: var(--ui-ease);
}

:is(
  .rd-donate,
  .rd-btn-red,
  .rd-btn-primary,
  .rd-btn-light,
  .rd-btn-outline-light,
  .rd-soft-btn,
  .rd-sponsor-btn,
  .rd-btn-gift,
  .rd-btn-gift-full,
  .rd-btn-sponsor-lg,
  .rd-card-cta,
  .rd-msg-primary,
  .rd-msg-ghost,
  .rd-give__submit,
  .gallery-view-tab,
  .gallery-head-back,
  .gallery-head-language,
  .gallery-head-donate,
  .gallery-filter-submit,
  .gallery-clear-filters,
  .impact-story__cta,
  .profile-button,
  .op-checkout-back,
  .op-gift-choice__continue,
  .stripe-checkout-form__submit
):active {
  transform: scale(0.96);
}

:is(
  .rd-nav > a,
  .rd-nav__link,
  .rd-dropdown__btn,
  .rd-lang,
  .rd-user__btn,
  .rd-tab,
  .rd-impact-tab,
  .rd-filter-reset,
  .hog-select__button,
  .rd-age-dropdown__trigger
):active {
  transform: scale(0.96);
}

/* Inputs align with button height and retain an obvious keyboard focus state. */
:is(
  .rd-field input,
  .rd-field select,
  .rd-field textarea,
  .rd-compose-field input,
  .rd-compose-field select,
  .rd-compose-field textarea,
  .gallery-archive-filters input,
  .gallery-archive-filters select,
  .profile-settings input,
  .profile-settings select,
  .profile-settings textarea
) {
  width: 100%;
  min-height: var(--ui-control-height);
  border: 1px solid var(--ui-border-strong) !important;
  border-radius: var(--ui-radius-control) !important;
  padding: 0.72rem 0.9rem;
  color: var(--rd-ink, var(--hog-ink)) !important;
  background: #fff !important;
  box-shadow: inset 0 1px 2px rgb(8 38 30 / 0.035) !important;
}

:is(.rd-field label, .rd-compose-field label, .profile-settings label) {
  display: block;
  margin-block-end: var(--ui-space-2);
  font-size: var(--ui-text-meta);
  font-weight: var(--ui-weight-bold);
  line-height: var(--type-leading-small);
}

.rd-field .peek {
  min-width: var(--ui-control-height);
  min-height: var(--ui-control-height);
  padding: 0;
}

:where(a, button, input, select, textarea, [tabindex]):focus-visible {
  outline: 2px solid var(--rd-gold, var(--hog-gold)) !important;
  outline-offset: 3px !important;
  box-shadow: var(--ui-focus) !important;
}

/* Shared surface hierarchy. Page layouts keep their own grids and dimensions. */
:is(
  .hog-entity-card,
  .rd-child,
  .rd-program,
  .rd-campaign-card,
  .rd-summary,
  .rd-co,
  .rd-sim,
  .rd-giftcard,
  .rd-paymethod,
  .op-card,
  .op-checkout-child,
  .op-payment-choice,
  .op-checkout-summary,
  .co-simple-shell,
  .gallery-report-card,
  .profile-panel,
  .profile-report,
  .profile-quick-give,
  .rd-msg-list,
  .rd-msg-letter,
  .rd-compose-card
) {
  border-radius: var(--ui-radius-card);
  box-shadow: var(--ui-shadow-card);
}

:is(.hog-entity-card, .rd-child, .rd-campaign-card, .rd-sim, .gallery-report-card) {
  transition-property: transform, box-shadow, border-color;
  transition-duration: 180ms;
  transition-timing-function: var(--ui-ease);
}

:is(.hog-entity-card, .rd-child, .rd-campaign-card, .rd-sim, .gallery-report-card):hover {
  box-shadow: var(--ui-shadow-raised);
  transform: translateY(-3px);
}

:is(.rd-chip, .rd-badge, .rd-campaign-card__kicker, .profile-kicker, .rd-eyebrow) {
  font-size: var(--ui-text-caption);
  font-weight: var(--ui-weight-bold);
  line-height: var(--type-leading-small);
}

:is(
  .rd-summary__row .val,
  .rd-campaign-card__figures,
  .rd-dash-stat__number,
  .profile-impact__total,
  .co-simple-total strong,
  .stripe-checkout-form__amount
) {
  font-variant-numeric: tabular-nums;
}

:is(.price, .num, .raised, .goal, .total, .rd-record .rc-num,
    .rd-dash-stat, .rd-progress__lbl, time, span[dir="ltr"], b[dir="ltr"]) {
  font-variant-numeric: tabular-nums;
}

:is(.rd-eyebrow, .rd-filter-eyebrow, .rd-detail .lbl, .rd-filter-label,
    .rd-filter-field > label, .rd-foot__grid h4) {
  font-size: var(--ui-text-meta);
  font-weight: var(--ui-weight-bold);
  line-height: var(--type-leading-heading);
  letter-spacing: var(--eyebrow-tracking);
}

:is(.rd-wait, .rd-need .pri, .hint, .rd-progress__lbl,
    .rd-user__head span, .age-picker__summary) {
  font-size: max(var(--ui-text-caption), 12px) !important;
  line-height: var(--type-leading-small) !important;
}

/* Utility classes still used in legacy templates resolve to the same scale. */
.text-xs { font-size: max(var(--ui-text-meta), 12px) !important; line-height: var(--type-leading-small) !important; }
.text-sm { font-size: var(--type-small) !important; line-height: var(--type-leading-small) !important; }
.text-base { font-size: var(--ui-text-body) !important; line-height: var(--type-leading-body) !important; }
.text-lg { font-size: var(--ui-text-lead) !important; line-height: var(--type-leading-small) !important; }
.text-xl { font-size: var(--ui-text-card) !important; line-height: var(--type-leading-heading) !important; }
.text-2xl { font-size: var(--type-h3) !important; line-height: var(--type-leading-heading) !important; }
.text-3xl { font-size: var(--type-h2) !important; line-height: var(--type-leading-heading) !important; }
.text-4xl { font-size: var(--type-h2) !important; line-height: var(--type-leading-tight) !important; }
.text-5xl { font-size: 3rem !important; line-height: var(--type-leading-tight) !important; }
.text-\[10px\], .text-\[11px\] { font-size: var(--ui-text-caption) !important; line-height: var(--type-leading-small) !important; }

a {
  text-decoration-thickness: from-font;
  text-decoration-skip-ink: auto;
  text-underline-position: from-font;
}

:is(.rd-dash-head__user, .rd-msg-person__copy, .rd-compose-preview__copy, .rd-foot__grid) a,
:is(.rd-dash-head__user, .rd-msg-person__copy, .rd-compose-preview__copy) p {
  overflow-wrap: anywhere;
}

/* Footer uses the same content grid, type scale, and logical spacing as pages. */
.rd-foot {
  padding-block: clamp(3.5rem, 7vw, 5rem) 2rem;
  color: var(--rd-on-dark);
  background: var(--rd-ink);
}

.rd-foot__grid {
  display: grid;
  grid-template-columns: minmax(17rem, 1.6fr) repeat(3, minmax(9rem, 1fr));
  gap: clamp(2rem, 4vw, 3.5rem);
  align-items: start;
}

.rd-foot__grid h4 {
  margin: 0 0 1rem;
  color: var(--rd-gold);
  text-transform: uppercase;
}

.rd-foot__grid ul {
  display: grid;
  gap: 0.6rem;
  margin: 0;
  padding: 0;
  color: rgb(255 248 236 / 0.8);
  font-size: var(--ui-text-control);
  line-height: var(--type-leading-small);
  list-style: none;
}

.rd-foot__grid a { color: inherit; }
.rd-foot__grid a[href^="mailto:"] { overflow-wrap: anywhere; }
.rd-foot__grid a:hover { color: var(--rd-gold); }

.rd-foot__brand p {
  max-inline-size: 34ch;
  margin-block: 0.9rem 0;
  color: rgb(255 248 236 / 0.7);
  font-size: var(--ui-text-control);
  line-height: var(--type-leading-body);
}

.rd-hijri {
  width: fit-content;
  margin-block-start: 1.2rem;
  border: 1px solid rgb(255 248 236 / 0.15);
  border-radius: var(--ui-radius-control);
  padding: 0.6rem 0.9rem;
  color: rgb(255 248 236 / 0.62);
  font-size: var(--ui-text-meta);
  line-height: var(--type-leading-small);
}

.rd-newsletter {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--ui-space-2);
  max-inline-size: 26rem;
  margin-block-start: 1.25rem;
}

footer[role="contentinfo"] :is(.rd-newsletter input, #newsletter-email) {
  min-height: var(--ui-control-height);
  border: 1px solid rgb(255 248 236 / 0.28) !important;
  border-radius: var(--ui-radius-control) !important;
  padding: 0.72rem 0.9rem;
  color: var(--rd-on-dark) !important;
  background: transparent !important;
  box-shadow: none !important;
}

footer[role="contentinfo"] :is(.rd-newsletter input, #newsletter-email)::placeholder {
  color: rgb(255 248 236 / 0.52) !important;
}

.rd-newsletter button {
  min-height: var(--ui-control-height);
  border: 0;
  border-radius: var(--ui-radius-control);
  padding: 0.72rem 1rem;
  color: #fff;
  background: var(--rd-red);
  font: inherit;
  font-size: var(--ui-text-control);
  font-weight: var(--ui-weight-extra);
  cursor: pointer;
}

.rd-newsletter button:hover { background: var(--rd-red-dark); }

.rd-foot__legal {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: var(--ui-space-4);
  margin-block-start: clamp(2.5rem, 5vw, 4rem);
  border-block-start: 1px solid rgb(255 248 236 / 0.14);
  padding-block-start: 1.25rem;
  color: rgb(255 248 236 / 0.6);
  font-size: var(--ui-text-meta);
  line-height: var(--type-leading-small);
}

.rd-foot__legal-nav {
  display: flex;
  flex-wrap: nowrap;
  gap: 0.75rem 1.25rem;
}

.rd-foot__legal--expanded {
  display: grid;
  justify-content: start;
  gap: 1rem;
}

.rd-foot__legal-mark {
  width: 3.5rem;
  height: 3.5rem;
  border-radius: 999px;
  object-fit: contain;
}

.rd-foot__legal--expanded p {
  margin: 0;
}

.rd-foot__legal--expanded .rd-foot__legal-nav {
  gap: 0.75rem 1.2rem;
  color: rgb(255 248 236 / 0.86);
  font-size: var(--ui-text-control);
}

.rd-foot__legal--expanded a {
  color: inherit;
}

.rd-foot__legal--expanded a:hover {
  color: var(--rd-gold);
}

.rd-foot__org {
  max-inline-size: 80rem;
  color: rgb(255 248 236 / 0.82);
  font-size: var(--ui-text-control);
}

/* Shared hero viewport contract. A hero fills remaining viewport, while long
   translated content can increase its height instead of clipping or overlapping. */
:root { --ui-header-block: 4.75rem; }

:is(
  .site-editorial-hero,
  .program-collage-hero,
  .aun-hero,
  .rd-hero,
  .rd-phero,
  .gallery-hero,
  .profile-hero
) {
  box-sizing: border-box;
  min-block-size: calc(100vh - var(--ui-header-block)) !important;
  min-block-size: calc(100svh - var(--ui-header-block)) !important;
  overflow: clip;
  isolation: isolate;
}

/* This page previously opted out of the shared hero height. Keep its profile
   layout, but restore the viewport contract. */
.orphan-profile-page .rd-phero {
  min-block-size: calc(100vh - var(--ui-header-block)) !important;
  min-block-size: calc(100svh - var(--ui-header-block)) !important;
}

::selection {
  color: #fff;
  background: var(--rd-red, var(--hog-red));
}

@media (max-width: 640px) {
  :root { --ui-header-block: 4.25rem; }

  body :is(input, select, textarea) {
    font-size: var(--type-body) !important;
  }

  :is(.rd-wrap, .gallery-site-head__inner) {
    padding-inline: 1rem;
  }

  :is(.rd-sec, .gallery-content, .rd-campaigns) {
    padding-block: var(--ui-space-7);
  }

  .rd-foot { padding-block: var(--ui-space-7) 1.5rem; }

  .rd-foot__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2rem 1.25rem;
  }

  .rd-foot__grid > :first-child,
  .rd-foot__grid > :last-child { grid-column: 1 / -1; }

  .rd-foot__brand p,
  .rd-newsletter { max-inline-size: none; }

  .rd-foot__legal { margin-block-start: 2rem; }

  :is(
    .site-editorial-hero__inner,
    .program-collage-hero__content,
    .aun-hero__stage,
    .rd-hero > .rd-wrap,
    .rd-phero > .rd-wrap,
    .gallery-hero__inner,
    .profile-hero__inner
  ) {
    align-content: center;
    padding-block: clamp(1.5rem, 6svh, 3rem);
  }

}

@media (min-width: 641px) and (max-width: 1020px) {
  .rd-foot__grid { grid-template-columns: minmax(0, 1.4fr) repeat(2, minmax(0, 1fr)); }
  .rd-foot__grid > :first-child { grid-row: span 2; }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* ========================================
   EXTRACTED TEMPLATE STYLES
   ======================================== */
/* Static inline template styles moved out of HTML. */
.js-avatar-color { background: var(--avatar-color, var(--rd-olive)); }
.js-avatar-gradient { background: linear-gradient(160deg, var(--avatar-color, var(--rd-olive)) 0%, var(--rd-ink) 130%); }
.js-avatar-texture { background: repeating-radial-gradient(circle at var(--texture-position, 50% 50%), transparent 0 8px, rgba(255,248,236,.09) 8px 9px); }
[data-progress] { width: 0%; }
.js-banner-track { transform: translateX(0%); }
.hog-u-dac4fe { text-align:center; }
.hog-u-842252 { justify-content:center; }
.hog-u-42354c { margin:.6rem 0; }
.hog-u-49c8e7 { margin:0 auto 1.8rem; }
.hog-u-cb9e12 { display:inline-block;width:auto;padding:.95rem 2rem; }
.hog-u-b2bcd0 { color:var(--rd-on-dark); }
.hog-u-10551f { color:rgba(255,248,236,.6); }
.hog-u-421b8d { max-width:42rem;padding-block:5rem;text-align:center; }
.hog-u-2a0180 { margin-top:1.5rem; }
.hog-u-6e58ee { margin-top:2rem; }
.hog-u-fadcf5 { min-height: 45px; }
.hog-u-034359 { width: 0%; }
.hog-u-9a8384 { max-width:560px;margin-inline:auto; }
.hog-u-bcf624 { font-size:var(--type-h4);font-weight:var(--type-weight-bold); }
.hog-u-3e297d { display:block;text-align:center;text-decoration:none; }
.hog-u-7f8462 { display:grid;gap:1rem; }
.hog-u-2241c3 { display:flex;gap:1.2rem;align-items:center;background:var(--rd-cream-2);border-radius:14px;padding:1.2rem;flex-wrap:wrap; }
.hog-u-45b985 { width:72px;height:72px;border-radius:50%;object-fit:cover; }
.hog-u-c06ac9 { flex:1;min-width:180px; }
.hog-u-548ee8 { font-size:var(--type-body);font-weight:var(--type-weight-bold); }
.hog-u-d7a8a3 { font-size:var(--type-label);color:var(--rd-muted); }
.hog-u-0052fc { display:flex;gap:.5rem;margin-top:.8rem;flex-wrap:wrap; }
.hog-u-cbe4ea { padding:.5rem .9rem;font-size:var(--type-label); }
.hog-u-acd305 { padding:.5rem .9rem;font-size:var(--type-label);background:transparent;border:1.5px solid rgba(8,38,30,.2);color:var(--rd-ink); }
.hog-u-bb6943 { font-size:var(--type-caption);font-weight:var(--type-weight-bold);color:var(--rd-olive);background:rgba(90,107,63,.1);border-radius:999px;padding:.3rem .8rem; }
.hog-u-0d3827 { text-align:center;padding:1.5rem 0; }
.hog-u-e14c89 { font-size:var(--type-h2); }
.hog-u-ff2052 { font-weight:var(--type-weight-bold);font-size:var(--type-body);margin:.4rem 0; }
.hog-u-8d8574 { font-size:var(--type-small);color:var(--rd-muted);margin-bottom:1rem; }
.hog-u-50f7e0 { display:inline-block;width:auto;padding:.7rem 1.5rem; }
.hog-u-564c6e { font-size:var(--type-control);color:var(--rd-muted); }
.hog-u-5a3606 { display:grid; }
.hog-u-093307 { display:flex;gap:1rem;align-items:flex-start;padding:.9rem 0;border-bottom:1px solid rgba(8,38,30,.06); }
.hog-u-a07604 { flex:1;min-width:0; }
.hog-u-8fcdf7 { font-size:var(--type-control);font-weight:var(--type-weight-bold); }
.hog-u-720ee8 { font-size:var(--type-label);color:var(--rd-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.hog-u-30b309 { font-size:var(--type-caption);color:var(--rd-muted); }
.hog-u-c8d3a1 { display:inline-block;margin-top:.8rem;font-size:var(--type-small);font-weight:var(--type-weight-bold);color:var(--rd-red); }
.hog-u-e7ad38 { display:inline-block;margin-top:.6rem;font-size:var(--type-small);font-weight:var(--type-weight-bold);color:var(--rd-red); }
.hog-u-2ca25a { font-size:var(--type-control);padding:.75rem; }
.hog-u-2866b0 { display:grid;gap:.6rem;margin-top:.6rem; }
.hog-u-3e5dfa { display:flex;justify-content:space-between;gap:.8rem;align-items:baseline;font-size:var(--type-small); }
.hog-u-908e09 { display:block;font-size:var(--type-label);color:var(--rd-muted); }
.hog-u-5c18c9 { font-size:var(--type-label);color:rgba(255,248,236,.6);margin-top:.6rem; }
.hog-u-327eea { font-weight:var(--type-weight-bold); }
.hog-u-f13abb { font-size:var(--type-label);color:rgba(255,248,236,.68);margin-top:.45rem; }
.hog-u-c1e19f { max-width:760px; }
.hog-u-f9e9fb { display:grid;gap:1.2rem; }
.hog-u-c5e503 { background:var(--rd-cream-2);border-radius:14px;padding:1.4rem; }
.hog-u-948721 { display:flex;gap:1.2rem;align-items:center;flex-wrap:wrap; }
.hog-u-c60786 { font-size:var(--type-body-lg);font-weight:var(--type-weight-bold); }
.hog-u-738eeb { font-size:var(--type-small);color:var(--rd-muted); }
.hog-u-0cf8f9 { margin-top:1rem; }
.hog-u-ad491f { display:inline-block;width:auto;padding:.7rem 1.5rem;margin-top:.6rem; }
.hog-u-50bd6c { max-width:860px; }
.hog-u-152538 { margin-top:1rem;font-size:var(--type-control);color:var(--rd-muted); }
.hog-u-046f56 { display:inline-block;width:auto;padding:.7rem 1.5rem;margin-top:.8rem; }
.hog-u-65d245 { display:flex;justify-content:space-between;align-items:center;padding:.8rem 0;border-bottom:1px solid rgba(8,38,30,.06);gap:1rem;flex-wrap:wrap; }
.hog-u-8aeca1 { font-size:var(--type-label);color:var(--rd-muted); }
.hog-u-d5dbd5 { font-size:var(--type-label);color:var(--rd-muted);margin-top:1rem; }
.hog-u-de0aa9 { max-width:640px; }
.hog-u-9e99b3 { text-align:end; }
.hog-u-0eba75 { font-size:var(--type-control);color:var(--rd-muted);margin-bottom:1rem; }
.hog-u-f1301c { width:auto;padding:.7rem 1.5rem;color:var(--rd-red);border-color:var(--rd-red); }
.hog-u-6ca21d { width:64px;height:64px;border-radius:50%;background:var(--rd-olive);color:#fff;display:grid;place-items:center;font-size:var(--type-h2);margin:0 auto 1.2rem; }
.hog-u-d52116 { font-size:var(--type-control);color:var(--rd-muted); }
.hog-u-abac41 { background:var(--rd-cream-2);border-radius:12px;padding:1rem;margin:1.5rem 0;display:grid;gap:.4rem;font-size:var(--type-small);color:var(--rd-muted);text-align:start; }
.hog-u-09ede6 { display:block;font-size:var(--type-small);color:var(--rd-red);font-weight:var(--type-weight-bold);margin-bottom:1rem; }
.hog-u-21d91b { display:block; }

/* template-block-templates-account-password_reset_from_key_done-html */
.auth-card {
    animation: auth-card-appear 0.6s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}
@keyframes auth-card-appear {
    from { opacity: 0; transform: translateY(20px) scale(0.98); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

/* Checkmark Animation */
.checkmark-container {
    width: 80px;
    height: 80px;
    margin: 0 auto;
}
.checkmark {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    display: block;
    stroke-width: 2;
    stroke: #CB1C8D;
    stroke-miterlimit: 10;
    box-shadow: inset 0px 0px 0px #CB1C8D;
    animation: fill .4s ease-in-out .4s forwards, scale .3s ease-in-out .9s both;
}
.checkmark-circle {
    stroke-dasharray: 166;
    stroke-dashoffset: 166;
    stroke-width: 2;
    stroke-miterlimit: 10;
    stroke: #CB1C8D;
    fill: none;
    animation: stroke 0.6s cubic-bezier(0.65, 0, 0.45, 1) forwards;
}
.checkmark-check {
    transform-origin: 50% 50%;
    stroke-dasharray: 48;
    stroke-dashoffset: 48;
    animation: stroke 0.3s cubic-bezier(0.65, 0, 0.45, 1) 0.8s forwards;
}
@keyframes stroke {
    100% { stroke-dashoffset: 0; }
}
@keyframes scale {
    0%, 100% { transform: none; }
    50% { transform: scale3d(1.1, 1.1, 1); }
}
@keyframes fill {
    100% { box-shadow: inset 0px 0px 0px 40px rgba(203,28,141, 0.1); }
}

/* Confetti Animation */
.confetti {
    position: absolute;
    width: 10px;
    height: 10px;
    background-color: #CB1C8D;
    opacity: 0;
    animation: confetti-fall 3s ease-out forwards;
}
.confetti-1 { left: 10%; animation-delay: 0.2s; background-color: #CB1C8D; border-radius: 50%; }
.confetti-2 { left: 30%; animation-delay: 0.4s; background-color: #10b981; transform: rotate(45deg); }
.confetti-3 { left: 50%; animation-delay: 0.1s; background-color: #34d399; border-radius: 50%; }
.confetti-4 { left: 70%; animation-delay: 0.3s; background-color: #6ee7b7; transform: rotate(45deg); }
.confetti-5 { left: 85%; animation-delay: 0.5s; background-color: #CB1C8D; border-radius: 50%; }
.confetti-6 { left: 95%; animation-delay: 0.2s; background-color: #10b981; }

@keyframes confetti-fall {
    0% {
        opacity: 1;
        top: -10%;
        transform: translateX(0) rotate(0deg);
    }
    100% {
        opacity: 0;
        top: 100%;
        transform: translateX(20px) rotate(720deg);
    }
}

/* template-block-templates-account-email_confirm-html */
.auth-card {
    animation: auth-card-appear 0.6s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}
@keyframes auth-card-appear {
    from { opacity: 0; transform: translateY(20px) scale(0.98); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}
.auth-icon {
    animation: auth-icon-bounce 0.8s cubic-bezier(0.34, 1.56, 0.64, 1) 0.2s both;
}
@keyframes auth-icon-bounce {
    from { opacity: 0; transform: scale(0) rotate(-10deg); }
    to { opacity: 1; transform: scale(1) rotate(0); }
}
.hog-u-20944a { font-size:3rem;margin-bottom:1rem; }
.hog-u-f7ea66 { padding-inline-end:5rem; }
.hog-u-d33aaf { display:grid;gap:.3rem;margin-top:.6rem; }
.hog-u-758a88 { font-weight:var(--type-weight-bold); }

/* template-block-templates-account-signup-html */
.auth-card {
    animation: auth-card-appear 0.6s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}
@keyframes auth-card-appear {
    from { opacity: 0; transform: translateY(20px) scale(0.98); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}
.auth-icon {
    animation: auth-icon-bounce 0.8s cubic-bezier(0.34, 1.56, 0.64, 1) 0.2s both;
}
@keyframes auth-icon-bounce {
    from { opacity: 0; transform: scale(0) rotate(-10deg); }
    to { opacity: 1; transform: scale(1) rotate(0); }
}
.auth-field {
    animation: auth-field-slide 0.5s ease-out forwards;
    opacity: 0;
}
.auth-field:nth-child(1) { animation-delay: 0.2s; }
.auth-field:nth-child(2) { animation-delay: 0.25s; }
.auth-field:nth-child(3) { animation-delay: 0.3s; }
.auth-field:nth-child(4) { animation-delay: 0.35s; }
.auth-btn {
    animation: auth-field-slide 0.5s ease-out 0.45s forwards;
    opacity: 0;
}
@keyframes auth-field-slide {
    from { opacity: 0; transform: translateX(-10px); }
    to { opacity: 1; transform: translateX(0); }
}

/* Validation states for inputs */
.input-valid {
    border-color: #CB1C8D !important;
    background-color: #fdf1f8 !important;
}
.input-valid:focus {
    box-shadow: 0 0 0 2px rgba(203,28,141, 0.2) !important;
    border-color: #CB1C8D !important;
}
.input-invalid {
    border-color: #ef4444 !important;
    background-color: #fef2f2 !important;
}
.input-invalid:focus {
    box-shadow: 0 0 0 2px rgba(239, 68, 68, 0.2) !important;
    border-color: #ef4444 !important;
}
.input-checking {
    border-color: #eab308 !important;
    background-color: #fefce8 !important;
}
.input-checking:focus {
    box-shadow: 0 0 0 2px rgba(234, 179, 8, 0.2) !important;
    border-color: #eab308 !important;
}

/* template-block-templates-account-signup-html */
@keyframes shake {
    0%, 100% { transform: translateX(0); }
    10%, 30%, 50%, 70%, 90% { transform: translateX(-5px); }
    20%, 40%, 60%, 80% { transform: translateX(5px); }
}
.animate-shake {
    animation: shake 0.5s ease-in-out;
}
.hog-u-a7c0c2 { font-size:var(--type-control);color:var(--rd-muted);margin-bottom:1.4rem; }
.hog-u-2dd94c { color:var(--rd-red);font-size:var(--type-body-lg); }
.hog-u-fa7075 { margin-bottom:.6rem; }
.hog-u-dd36de { grid-column:1/-1;margin-top:0; }
.hog-u-638093 { display:inline-block;text-decoration:none; }
.hog-u-6b99de { display:none; }
.hog-u-e21293 { padding-top:1.6rem; }
.hog-u-0f555d { background:var(--rd-cream); }
.hog-u-018912 { aspect-ratio:4/3.1;background:var(--rd-cream-2); }
.hog-u-e2b657 { height:1.3rem;width:70%;background:var(--rd-cream-2);border-radius:8px; }
.hog-u-257bdb { height:.9rem;width:100%;background:var(--rd-cream-2);border-radius:8px; }
.hog-u-836a2a { height:.9rem;width:55%;background:var(--rd-cream-2);border-radius:8px; }
.hog-u-c02dec { padding-bottom:3rem; }
.hog-u-283e8f { max-width: 840px; }
.hog-u-f29309 { margin: 2rem 0;padding: 1.5rem; }
.hog-u-d2fba0 { width:0%; }

/* template-block-templates-food-partials-active_campaigns-html */
.campaign-dot {
            transition: background-color 0.4s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.4s cubic-bezier(0.4, 0, 0.2, 1), transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
        }

        .campaign-dot.active {
            box-shadow: 0 0 0 4px rgba(203,28,141, 0.2);
        }

        .campaign-dot:not(.active):hover {
            transform: scale(1.3);
        }

/* Program pages: solid full-viewport editorial heroes. */
.food-hero,
.family-hero,
.rd-hero--orphan-list {
  position: relative;
  height: auto !important;
  block-size: auto !important;
  min-height: calc(100vh - var(--ui-header-block, 4.75rem)) !important;
  min-block-size: calc(100svh - var(--ui-header-block, 4.75rem)) !important;
  max-block-size: none !important;
  display: grid;
  align-items: center;
  box-sizing: border-box;
  padding-block: 0;
  overflow: visible;
  color: var(--rd-ink);
  background-color: var(--rd-cream);
}

.food-hero::after,
.family-hero::after,
.rd-hero--orphan-list::after {
  right: clamp(2rem, 9vw, 10rem);
  bottom: 34%;
  background: var(--rd-red);
}

.food-hero__layout,
.family-hero__layout,
.rd-hero--orphan-list .rd-wrap {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-areas: none;
  gap: 0;
  align-items: stretch;
  box-sizing: border-box;
  height: 100%;
  block-size: 100%;
  min-height: 0 !important;
  min-block-size: 0;
  padding-block: clamp(1.25rem, 3svh, 2.25rem);
}

.food-hero__copy,
.family-hero__copy,
.rd-hero--orphan-list .rd-wrap > div {
  position: relative;
  grid-area: auto;
  display: grid;
  grid-template-rows: auto auto auto minmax(.75rem, 1fr) auto;
  block-size: 100%;
  min-block-size: 0;
  inline-size: 100%;
  max-inline-size: none;
  margin-inline: auto;
  text-align: center;
}

.food-hero .rd-eyebrow,
.family-hero .rd-eyebrow,
.rd-hero--orphan-list .rd-eyebrow {
  color: rgb(8 38 30 / .72);
}

.food-hero__copy h1,
.family-hero__copy h1,
.rd-hero--orphan-list h1 {
  max-inline-size: 7ch;
  margin: 0 auto;
  color: var(--rd-ink);
  font-size: clamp(4rem, 10vw, 8.5rem);
  font-weight: var(--type-weight-bold);
  line-height: var(--type-leading-tight);
  letter-spacing: -.065em;
  text-wrap: balance;
}

[dir="rtl"] .food-hero__copy h1,
[dir="rtl"] .family-hero__copy h1,
[dir="rtl"] .rd-hero--orphan-list h1 {
  line-height: var(--type-leading-tight);
  letter-spacing: 0;
}

.program-hero__title {
  inline-size: min(54rem, 100%);
  margin: clamp(.85rem, 2.4svh, 1.6rem) auto 0;
  padding-block-start: clamp(.8rem, 1.7svh, 1.2rem);
  border-block-start: .32rem solid var(--rd-red);
  color: rgb(72 105 91);
  font-size: clamp(1.65rem, 3.5vw, 3.1rem);
  font-weight: var(--type-weight-bold);
  line-height: var(--type-leading-tight);
  letter-spacing: -.035em;
  text-wrap: balance;
}

[dir="rtl"] .program-hero__title { letter-spacing: 0; }

.program-hero__footer {
  grid-row: 5;
  display: grid;
  grid-template-columns: auto minmax(0, 36rem);
  gap: clamp(1rem, 4vw, 3rem);
  align-items: end;
  justify-content: space-between;
  direction: ltr;
}

.food-hero__lede,
.family-hero__lede,
.rd-hero--orphan-list .rd-lede {
  max-inline-size: 36rem;
  margin: 0;
  color: rgb(8 38 30 / .62);
  font-size: clamp(.9rem, 1vw, 1.02rem);
  line-height: var(--type-leading-body);
  text-align: start;
  justify-self: end;
}

.program-hero__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  width: fit-content;
  min-inline-size: clamp(9rem, 12vw, 13rem);
  margin: 0;
  border-radius: .9rem;
  background: var(--rd-red);
  color: #fff;
  box-shadow: 0 1.2rem 2.4rem -1.8rem rgb(159 36 48 / .7);
  justify-self: start;
  align-self: end;
  transition-property: background-color, color, transform;
  transition-duration: .16s;
}
.program-hero__cta:hover { background: var(--rd-red-dark); color: #fff; }
.program-hero__cta:active { transform: scale(.96); }
.program-hero__cta .rd-ui-icon { width: 1rem; height: 1rem; }

.food-actions {
  padding-block: clamp(3rem, 6vw, 5rem);
  background: var(--rd-cream);
}
.food-actions .food-give-shell {
  grid-area: auto;
  max-inline-size: 38rem;
  margin-inline: auto;
}

@media (max-height: 760px) and (min-width: 761px) {
  .food-hero__copy h1,
  .family-hero__copy h1,
  .rd-hero--orphan-list h1 {
    font-size: clamp(3.5rem, 8vw, 6.8rem);
  }

  .program-hero__title {
    margin-block-start: .8rem;
    padding-block-start: .75rem;
    font-size: clamp(1.45rem, 3vw, 2.55rem);
  }

  .food-hero__lede,
  .family-hero__lede,
  .rd-hero--orphan-list .rd-lede {
    font-size: var(--type-control);
    line-height: var(--type-leading-small);
  }

  .program-hero__footer { gap: 1.5rem; }
}

@media (max-width: 760px) {

  .food-hero__layout,
  .family-hero__layout,
  .rd-hero--orphan-list .rd-wrap {
    padding-block: clamp(2rem, 6svh, 3rem);
  }

  .food-hero__copy,
  .family-hero__copy,
  .rd-hero--orphan-list .rd-wrap > div {
    display: flex;
    min-block-size: auto;
  }

  .food-hero__copy h1,
  .family-hero__copy h1,
  .rd-hero--orphan-list h1 {
    max-inline-size: 9ch;
    font-size: clamp(4rem, 22vw, 6.8rem);
  }

  .program-hero__title {
    font-size: clamp(1.8rem, 10vw, 3.4rem);
  }

  .program-hero__footer {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    justify-items: center;
    gap: 1.25rem;
    margin-block-start: 1.5rem;
  }

  .food-hero__lede,
  .family-hero__lede,
  .rd-hero--orphan-list .rd-lede,
  .program-hero__cta {
    justify-self: center;
    margin-block-start: 0;
  }

  .food-hero__lede,
  .family-hero__lede,
  .rd-hero--orphan-list .rd-lede {
    text-align: center;
  }
}

/* Typography hardening: one readable system for all template text. */
.text-balance { text-wrap: balance; }
.text-pretty { text-wrap: pretty; }
.tabular-nums { font-variant-numeric: tabular-nums; }

:where(html) {
  font-kerning: normal;
  font-optical-sizing: auto;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

:where(body) {
  font-family: var(--font-body);
  font-size: var(--type-body);
  font-weight: var(--type-weight-regular);
  line-height: var(--type-leading-body);
  font-synthesis: none;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

:where(p, li, dd, blockquote, figcaption, td, th) {
  overflow-wrap: break-word;
}

:where(p, dd, figcaption) { text-wrap: pretty; }

:where(h1, h2, h3, h4, h5, h6) {
  font-weight: var(--type-weight-bold);
  letter-spacing: var(--type-tracking-heading);
  overflow-wrap: break-word;
  text-wrap: balance;
}

:where(h1, .type-h1) { font-size: var(--type-h1); line-height: var(--type-leading-tight); }
:where(h2, .type-h2) { font-size: var(--type-h2); line-height: var(--type-leading-heading); }
:where(h3, .type-h3) { font-size: var(--type-h3); line-height: var(--type-leading-heading); }
:where(h4, .type-h4) { font-size: var(--type-h4); line-height: var(--type-leading-heading); }
:where(.type-body) { font-size: var(--type-body); line-height: var(--type-leading-body); }
:where(.type-small, small) { font-size: var(--type-small); line-height: var(--type-leading-small); }
:where(.type-label) { font-size: var(--type-label); line-height: var(--type-leading-small); }
:where(.type-caption) { font-size: var(--type-caption); line-height: var(--type-leading-small); }

:where(main, article, section) :where(p:not([class]), li:not([class]), blockquote:not([class])) {
  max-inline-size: var(--type-measure);
}

.type-flow { max-inline-size: var(--type-measure); }
.type-flow > :where(h1, h2, h3, h4) { margin-block: var(--type-heading-gap) 0; }
.type-flow > :where(p, ul, ol, blockquote) { margin-block: var(--type-paragraph-gap) 0; }
.type-flow > :first-child { margin-block-start: 0; }

:where(a) {
  text-decoration-thickness: from-font;
  text-decoration-skip-ink: auto;
  text-underline-position: from-font;
}

:where(input, select, textarea) {
  font-size: max(1rem, var(--type-control));
  line-height: var(--type-leading-small);
}

:where(.rd-eyebrow, .tag, .lbl, .rd-mnav__label, .profile-kicker) {
  font-size: var(--type-label) !important;
  line-height: var(--type-leading-small) !important;
  letter-spacing: var(--type-tracking-label) !important;
  text-transform: uppercase;
}

:where(.rd-lede, .editorial-copy, .gallery-intro > p, .rd-campaigns__head > p) {
  max-inline-size: var(--type-measure);
  line-height: var(--type-leading-body) !important;
  text-wrap: pretty;
}

:where(.truncate) { overflow-wrap: normal; }
:where(.line-clamp, .line-clamp-2, .line-clamp-3) { overflow-wrap: anywhere; }

/* Text-resize safety: content grows; cards and headers reflow instead of clipping. */
#main-header {
  height: auto;
  min-height: 4rem;
}

.rd-head .rd-wrap {
  height: auto;
  min-height: 4.75rem;
  padding-block: 0.5rem;
  flex-wrap: nowrap;
}

.rd-head .rd-brand {
  min-inline-size: 0;
  flex: 1 1 0;
}

.rd-brand > span {
  min-inline-size: 0;
  overflow-wrap: break-word;
}

.family-card__need {
  display: block;
  min-height: 0;
  overflow: visible;
  -webkit-line-clamp: unset;
}

.gallery-site-head__inner,
.gallery-site-head__actions {
  min-inline-size: 0;
  flex-wrap: wrap;
}

.gallery-site-head__actions {
  justify-content: flex-end;
  max-inline-size: 100%;
}

:where(.gallery-head-back, .gallery-head-language, .gallery-head-donate) {
  min-inline-size: 0;
  white-space: normal;
}

.family-filters,
.family-filters > * {
  min-inline-size: 0;
}

.family-filters button {
  overflow-wrap: anywhere;
  white-space: normal;
}

:where(.num, .amount, .price, .total, .raised, .goal, .rd-badge, .rd-progress__lbl, time, span[dir="ltr"], b[dir="ltr"]) {
  font-variant-numeric: tabular-nums;
}

.food-hero__copy h1,
.family-hero__copy h1,
.rd-hero--orphan-list h1 {
  max-inline-size: min(9ch, 100%);
  font-size: var(--type-display);
  line-height: var(--type-leading-tight) !important;
  letter-spacing: var(--type-tracking-heading) !important;
  text-wrap: balance;
}

.program-hero__footer { direction: inherit; }

[dir="rtl"] .food-hero__copy h1,
[dir="rtl"] .family-hero__copy h1,
[dir="rtl"] .rd-hero--orphan-list h1,
[dir="rtl"] .program-hero__title {
  line-height: var(--type-leading-heading) !important;
  letter-spacing: 0 !important;
}

@media (max-width: 760px) {
  .food-hero__copy,
  .family-hero__copy,
  .rd-hero--orphan-list .rd-wrap > div {
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 1rem;
  }

  .food-hero__copy h1,
  .family-hero__copy h1,
  .rd-hero--orphan-list h1 {
    line-height: var(--type-leading-tight) !important;
  }
}

@media (max-width: 640px) {
  :where(input, select, textarea) { font-size: var(--type-body) !important; }
}

::selection {
  color: var(--rd-ink);
  background: rgb(201 162 39 / .32);
}

/* Authoritative semantic roles. ID scope beats legacy page selectors. */
#main h1 {
  font-size: var(--type-h1) !important;
  font-weight: var(--type-weight-bold) !important;
  line-height: var(--type-leading-tight) !important;
  letter-spacing: var(--type-tracking-heading) !important;
}

#main h2 {
  font-size: var(--type-h2) !important;
  font-weight: var(--type-weight-bold) !important;
  line-height: var(--type-leading-heading) !important;
  letter-spacing: var(--type-tracking-heading) !important;
}

#main h3 {
  font-size: var(--type-h3) !important;
  font-weight: var(--type-weight-bold) !important;
  line-height: var(--type-leading-heading) !important;
  letter-spacing: var(--type-tracking-heading) !important;
}

#main h4 {
  font-size: var(--type-h4) !important;
  font-weight: var(--type-weight-semibold) !important;
  line-height: var(--type-leading-heading) !important;
  letter-spacing: var(--heading-tracking-sm) !important;
}

#main p,
#main li,
#main dd,
#main blockquote,
#main figcaption {
  font-size: var(--type-body) !important;
  line-height: var(--type-leading-body) !important;
}

#main :is(.rd-h-display, .site-editorial-hero__title, .gallery-hero h1),
#main :is(.food-hero__copy, .family-hero__copy, .rd-hero--orphan-list) h1 {
  max-inline-size: min(12ch, 100%);
  font-size: var(--type-display) !important;
  line-height: var(--type-leading-tight) !important;
}

#main .program-hero__title {
  font-size: var(--type-h2) !important;
  font-weight: var(--type-weight-bold) !important;
  line-height: var(--type-leading-heading) !important;
  letter-spacing: var(--type-tracking-heading) !important;
}

#main :is(.rd-lede, .editorial-copy, .gallery-intro > p, .rd-campaigns__head > p,
  .report-detail__intro > p:last-of-type, .rd-auth__intro > p) {
  font-size: var(--type-body-lg) !important;
  line-height: var(--type-leading-body) !important;
}

#main :is(.rd-eyebrow, .tag, .lbl, .kind, .kicker, .profile-kicker,
  .rd-filter-eyebrow, .rd-filter-label, .gallery-toolbar__label,
  .gallery-card__category, .rd-impact-story__label, .co-order-card__eyebrow) {
  font-size: var(--type-label) !important;
  font-weight: var(--type-weight-bold) !important;
  line-height: var(--type-leading-small) !important;
  letter-spacing: var(--type-tracking-label) !important;
}

#main :is(small, .type-small, .rd-hero__caption, .rd-give__gateway-list,
  .family-card__need, .rd-auth__promise, .rd-secure-note,
  .stripe-checkout-form__security, .co-order-card__secure) {
  font-size: var(--type-small) !important;
  line-height: var(--type-leading-small) !important;
}

#main :is(.type-caption, .rd-detail .lbl, .rd-progress__lbl) {
  font-size: var(--type-caption) !important;
  line-height: var(--type-leading-small) !important;
}

#main :is(.type-flow, .co-simple-section, .rd-card, .profile-panel, .rd-msg-letter) h2 {
  font-size: var(--type-h3) !important;
  line-height: var(--type-leading-heading) !important;
}

#main :is(.rd-reach-stat__value, .num, .price, .amount, .total) {
  font-variant-numeric: tabular-nums;
}

html[lang="ar"] #main :is(h1, h2, h3, h4, .program-hero__title) {
  letter-spacing: 0 !important;
  line-height: var(--type-leading-heading) !important;
}

/* Checkout content reflows when users enlarge text. */
#main :is(.co-checkout-layout, .co-simple-shell, .co-simple-section,
  .checkout-gateways, .checkout-gateways__tabs, .checkout-gateways__panels,
  .checkout-gateway-panel, .co-order-card, .co-simple-overview) {
  min-inline-size: 0;
  max-inline-size: 100%;
}

#main .stripe-checkout-form__submit {
  min-inline-size: 0;
  max-inline-size: 100%;
  white-space: normal;
}

#main .stripe-checkout-form__submit > span {
  min-inline-size: 0;
  overflow-wrap: anywhere;
  white-space: normal;
}

#main .checkout-gateway-tab {
  min-inline-size: 0;
  overflow-wrap: anywhere;
}

#main .co-simple-recipient__copy strong {
  overflow: visible;
  text-overflow: clip;
  white-space: normal;
}

#main .co-simple-total {
  grid-template-columns: minmax(0, 1fr);
  align-items: start;
}

#main .co-simple-total strong {
  grid-column: 1;
  grid-row: auto;
  overflow-wrap: anywhere;
}

/* Homepage typography and content-state audit. Scoped to avoid redesigning other pages. */
#main .home-page {
  --type-display: 5.5rem;
  --type-h2: 2.75rem;
  --type-h3: 1.5rem;
  --type-body-lg: 1.125rem;
  --type-body: 1rem;
  --type-label: 0.8125rem;
  --type-control: 0.9375rem;
}

#main .home-page .rd-h-display {
  font-size: 5.5rem !important;
  line-height: 1.1 !important;
}

#main .home-page h2 {
  max-inline-size: 24ch;
  font-size: 2.75rem !important;
  line-height: 1.2 !important;
}

#main .home-page h3 {
  font-size: 1.5rem !important;
  line-height: 1.2 !important;
}

#main .home-page :is(.rd-lede, .rd-impact-ledger__head > p:not(.rd-eyebrow)) {
  max-inline-size: 35rem;
  font-size: 1.125rem !important;
  line-height: 1.6 !important;
}

#main .home-page :is(.rd-card-cta, .rd-gap-card__action, .rd-impact-actions__primary,
  .rd-impact-actions__secondary, .rd-text-link, .rd-btn-light, .rd-btn-outline-light) {
  font-size: 0.9375rem !important;
  line-height: 1.2 !important;
}

#main .home-page .home-support-status {
  max-inline-size: 35rem;
  margin: 0 auto;
  margin-block-end: 1rem;
  color: var(--rd-muted);
  font-size: 1rem !important;
  line-height: 1.6 !important;
  text-wrap: pretty;
}

#main .home-page .home-support-status--on-dark { color: rgb(255 248 236 / 0.76); }

#main .home-page .home-program-choice .rd-program {
  block-size: auto;
  min-block-size: 0;
}

#main .home-page .home-program-choice .rd-program .art { min-block-size: 24rem; }

#main .home-page .home-program-choice .rd-program .body { justify-content: center; }

#main .home-page .home-program-choice .rd-program .body > p,
#main .home-page .home-program-choice .rd-program p {
  min-block-size: 0;
}

#main .home-page .home-program-choice .rd-program .tag {
  block-size: auto;
  min-block-size: 0;
  margin: 0 0 1rem;
  font-size: 0.8125rem !important;
  line-height: 1.5 !important;
  letter-spacing: 0.06em !important;
}

#main .home-page .home-program-choice .rd-program h3 {
  font-size: 1.5rem !important;
  line-height: 1.2 !important;
}

#main .home-page .rd-impact-ledger__head,
#main .home-page .rd-field-preview__head,
#main .home-page .rd-reach__head > p { max-inline-size: 35rem; }

#main .home-page .rd-impact-metrics { grid-auto-rows: auto; }
#main .home-page .rd-impact-metric__copy a { display: none; }

#main .home-page .rd-reach__needs--simple {
  margin-block-start: 0;
  padding-block: clamp(1.4rem, 4vw, 3.5rem);
}

#main .home-page .rd-reach__needs--simple .rd-gap-card__detail,
#main .home-page .rd-reach__needs--simple .home-support-status {
  margin-block: 2rem 1.5rem;
}

@media (max-width: 700px) {
  #main .home-page {
    --type-display: 3rem;
    --type-h2: 1.875rem;
  }

  #main .home-page .rd-h-display {
    max-inline-size: 12ch;
    font-size: 3rem !important;
    line-height: 1.1 !important;
  }

  #main .home-page h2 {
    max-inline-size: 18ch;
    font-size: 1.875rem !important;
    line-height: 1.2 !important;
  }

  #main .home-page .home-program-choice .rd-programs {
    inline-size: auto;
    margin-inline: 0;
    padding-inline: 0;
  }

  #main .home-page .home-program-choice .rd-program {
    block-size: auto;
    min-block-size: 0;
  }

  #main .home-page .home-program-choice .rd-program .art {
    block-size: 14rem;
    min-block-size: 14rem;
  }

  #main .home-page .home-program-choice .rd-program .body { padding: 1.5rem; }
  #main .home-page .rd-impact-story { min-height: 26rem; }
}

@media (prefers-reduced-motion: reduce) {
  #main .home-page *,
  #main .home-page *::before,
  #main .home-page *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}
