/* 2026-06-01 | Build 0.290 | Added prominent mobile-friendly application submission success panel. */
/* 2026-05-26 | Build 0.256 | Added masked donor match preview field styling. */
/* 2026-05-20 | Build 0.244 | Mobile-only homepage banner height/text refinement to prevent clipping in banner display modes. */
/* 2026-05-20 | Build 0.243 | Refined homepage banner preserve/split display modes and added text-left image-right mode. */
/* 2026-05-20 | Build 0.242 | Added homepage banner display mode styles while preserving default cover behavior. */
/* 2026-05-20 | Build 0.239 | Added shared CMS media display utility classes for contain/cover/natural image rendering. */
/* 2026-05-20 | Build 0.236 | Community Update article images preserve natural aspect ratio without changing thumbnails/upload logic. */
/* 2026-05-15 | Build 0.209 | Added client independent-column layout support to remove large grid-row panel gaps. */
/* 2026-05-15 | Build 0.208 | Added client checkbox-row/pin-row alignment support so checkbox labels stay beside controls. */
/* 2026-05-15 | Build 0.207 | Fixed global checkbox/radio sizing, alignment, and visibility after editable-field contrast update. */
/*
Revision History
2026-05-15 | Build 0.207 | Fixed global checkbox/radio sizing, alignment, and visibility after editable-field contrast update.
2026-05-14 | Build 0.180 | Hardened mobile public/admin hamburger touch targets, layering, and dropdown positioning.
2026-05-11 | Build 0.144 | Added operational admin dashboard attention cards, quick actions, current outreach metrics, and compact mobile layout.
2026-04-16 | Build 0.121 | Aligned community-update thumbnails and full-view images to a consistent 16:9 ratio; improved admin saved-update card layout.
*/
:root {
  --bg: #f7f4ef;
  --paper: #fffdf9;
  --ink: #1e2930;
  --muted: #5d6b73;
  --line: rgba(30, 41, 48, 0.1);
  --brand: #9c2f2f;
  --brand-dark: #702121;
  --gold: #d9b97c;
  --forest: #1f5145;
  --shadow: 0 20px 50px rgba(25, 36, 41, 0.10);
  --radius: 24px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: 'Inter', sans-serif;
  color: var(--ink);
  background:
    radial-gradient(circle at top right, rgba(217,185,124,0.18), transparent 20%),
    linear-gradient(180deg, #fcfaf7 0%, var(--bg) 100%);
}
a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }
.container { width: min(1180px, calc(100% - 2rem)); margin: 0 auto; }
.site-header {
  position: sticky; top: 0; z-index: 20;
  backdrop-filter: blur(18px);
  background: rgba(252, 250, 247, 0.88);
  border-bottom: 1px solid var(--line);
}
.nav-wrap { display: flex; align-items: center; justify-content: space-between; min-height: 82px; gap: 1rem; position: relative; }
.brand { display: inline-flex; align-items: center; gap: 0.9rem; font-weight: 800; }
.brand small { display: block; color: var(--muted); font-weight: 600; }
.brand-mark { width: 52px; height: 52px; }
.site-nav { display: flex; align-items: center; gap: 1rem; }
.site-nav a { color: var(--muted); font-weight: 600; }
.site-nav a:hover { color: var(--ink); }
.nav-toggle { display: none; border: 1px solid var(--line); background: white; padding: 0.7rem 0.9rem; border-radius: 14px; cursor: pointer; touch-action: manipulation; position: relative; z-index: 90; }
.mobile-nav-buttons { position: relative; z-index: 95; }
body.nav-open { overflow: hidden; }
.hero { padding: 5rem 0 4rem; }
.hero-grid, .split-grid { display: grid; grid-template-columns: 1.15fr 0.85fr; gap: 2rem; align-items: center; }
.eyebrow { display: inline-block; text-transform: uppercase; letter-spacing: .12em; font-size: 0.78rem; font-weight: 800; color: var(--brand); margin-bottom: 1rem; }
.hero h1, .page-hero h1, h2, h3 { font-family: 'Fraunces', serif; line-height: 1.04; margin: 0 0 1rem; }
.hero h1 { font-size: clamp(2.8rem, 5vw, 5rem); }
.lead { font-size: 1.1rem; color: var(--muted); max-width: 58ch; }
.hero-actions, .donation-tiers { display: flex; flex-wrap: wrap; gap: 0.9rem; margin: 1.5rem 0; }
.button {
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  background: linear-gradient(180deg, var(--brand), var(--brand-dark)); color: white; border: none;
  padding: 0.95rem 1.2rem; border-radius: 999px; font-weight: 700; box-shadow: var(--shadow); cursor: pointer;
}
.button-secondary { background: #f3f4f6; color: var(--ink); border: 1px solid #cbd5e1; box-shadow: inset 0 1px 0 rgba(255,255,255,.8); }
.button-light { background: #f3f4f6; color: var(--ink); border: 1px solid #cbd5e1; box-shadow: inset 0 1px 0 rgba(255,255,255,.8); }
.button-secondary:hover, .button-secondary:focus, .button-light:hover, .button-light:focus { background: #e5e7eb; border-color: #94a3b8; color: var(--ink); }
.button-sm { padding: 0.6rem 0.9rem; font-size: 0.92rem; }
.impact-strip { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-top: 2rem; }
.impact-strip article, .mini-panel, .feature-card, .form-card, .glass-card, .logo-pill {
  background: rgba(255,255,255,0.82); border: 1px solid rgba(255,255,255,0.7); border-radius: var(--radius); box-shadow: var(--shadow);
}
.impact-strip article { padding: 1rem; }
.impact-strip strong { display: block; font-size: 1.15rem; margin-bottom: 0.35rem; }
.hero-card-stack { display: grid; gap: 1rem; }
.glass-card { padding: 1.4rem; }
.glass-card.accent { background: linear-gradient(135deg, rgba(31,81,69,.96), rgba(48,112,96,.90)); color: white; }
.section { padding: 4rem 0; }
.warm-section { background: linear-gradient(180deg, rgba(217,185,124,0.15), rgba(255,255,255,0)); }
.cards-3, .panel-grid, .logo-wall { display: grid; gap: 1.25rem; }
.cards-3 { grid-template-columns: repeat(3, 1fr); }
.panel-grid { grid-template-columns: repeat(2, 1fr); }
.feature-card, .form-card, .mini-panel, .logo-pill { padding: 1.4rem; }
.feature-card p, .mini-panel span, .page-hero p, .site-footer p, .check-list { color: var(--muted); }
.feature-card a { color: var(--brand); font-weight: 700; }
.page-hero { padding: 3.5rem 0 1rem; }
.page-hero.compact { padding-bottom: 0; }
.registration-layout { align-items: start; }
.form-card { background: var(--paper); }
.form-card.subtle { background: rgba(255,255,255,0.75); }
.language-card { position: sticky; top: 110px; }
.form-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }
.form-grid .full, .full { grid-column: 1 / -1; }
label { display: block; font-weight: 600; }
label span { display: block; margin-bottom: 0.45rem; }
input, select, textarea {
  width: 100%; border: 1px solid #b8c0cc; border-radius: 16px; padding: 0.9rem 1rem;
  background: #f3f4f6; font: inherit; color: var(--ink);
  box-shadow: inset 0 1px 2px rgba(15, 23, 42, 0.08);
}
textarea { resize: vertical; }
.upload-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin: 1.2rem 0; }
.upload-card { border: 1px dashed rgba(30,41,48,.18); border-radius: 20px; padding: 1rem; background: white; }
.checkbox { display: flex; gap: .75rem; align-items: center; margin: 1rem 0; }
.checkbox input { width: auto; }
.form-status { margin-top: 1rem; min-height: 1.4rem; font-weight: 600; }
.upload-card input[type="file"] { margin-top: .65rem; }
.upload-status { display: block; margin-top: .65rem; color: var(--muted); font-weight: 600; }
.upload-preview { margin-top: .75rem; }
.upload-preview-image { display: block; width: 100%; max-height: 220px; object-fit: contain; border-radius: 16px; border: 1px solid var(--line); background: #f8f6f1; }
.upload-preview-file { padding: .75rem .9rem; border-radius: 14px; background: #f8f6f1; border: 1px solid var(--line); font-weight: 600; }

.logo-wall { grid-template-columns: repeat(4, 1fr); }
.logo-pill { text-align: center; font-weight: 700; }
.tier { border: 1px solid var(--line); background: white; padding: 1rem 1.2rem; border-radius: 18px; font-weight: 800; cursor: pointer; }
.hidden { display: none !important; }
.site-footer { margin-top: 4rem; background: #172026; color: rgba(255,255,255,0.9); padding-top: 3rem; }
.footer-grid { display: grid; grid-template-columns: 1.2fr .9fr .9fr; gap: 2rem; }
.site-footer h3, .site-footer h4 { color: white; }
.site-footer ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 0.6rem; }
.footer-bottom { display: flex; justify-content: space-between; gap: 1rem; padding: 1rem 0 2rem; margin-top: 1.5rem; border-top: 1px solid rgba(255,255,255,0.12); font-size: 0.95rem; color: rgba(255,255,255,0.72); }
@media (max-width: 980px) {
  .hero-grid, .split-grid, .cards-3, .panel-grid, .logo-wall, .upload-grid, .form-grid, .footer-grid, .impact-strip { grid-template-columns: 1fr; }
  .language-card { position: static; }
  .site-nav { display: none; position: absolute; top: calc(100% + .35rem); left: 0; right: 0; background: white; padding: 1rem; border-radius: 20px; border: 1px solid var(--line); box-shadow: var(--shadow); flex-direction: column; align-items: stretch; max-height: calc(100dvh - 98px); overflow-y: auto; -webkit-overflow-scrolling: touch; z-index: 80; }
  .site-nav.open { display: flex; }
  .nav-toggle { display: inline-flex; align-items: center; justify-content: center; min-width: 46px; min-height: 46px; }
}

.muted-copy { color: var(--muted); }
.alert { padding: 1rem 1.1rem; border-radius: 16px; margin-bottom: 1rem; font-weight: 600; }
.alert.error { background: rgba(156,47,47,.10); color: var(--brand-dark); border: 1px solid rgba(156,47,47,.18); }
.alert.success { background: rgba(31,81,69,.10); color: var(--forest); border: 1px solid rgba(31,81,69,.18); }
.button-row { display: flex; gap: .75rem; flex-wrap: wrap; margin-top: 1rem; }
.small-note { color: var(--muted); font-size: .92rem; margin-top: 1rem; }
.stack-form { display: grid; gap: 1rem; }
.admin-body { background: linear-gradient(180deg, #f6f4ef, #efe9de); }
.admin-header { padding: 2rem 0 0; }
.admin-header-row { display: flex; justify-content: space-between; gap: 1rem; align-items: end; }
.admin-actions { display: flex; gap: .75rem; align-items: center; flex-wrap: wrap; }
.admin-user { color: var(--muted); font-weight: 600; }
.admin-shell { padding-top: 1.5rem; }
.admin-nav { display: flex; gap: .75rem; flex-wrap: wrap; margin-bottom: 1rem; }
.admin-grid { align-items: start; margin-top: 1.25rem; }
.table-wrap { overflow-x: auto; }
.data-table { width: 100%; border-collapse: collapse; }
.data-table th, .data-table td { padding: .85rem .75rem; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.data-table th { font-size: .9rem; color: var(--muted); text-transform: uppercase; letter-spacing: .05em; }
.status-pill { display: inline-flex; padding: .35rem .65rem; border-radius: 999px; font-size: .85rem; font-weight: 700; background: rgba(30,41,48,.08); }
.status-submitted { background: rgba(156,47,47,.12); color: var(--brand-dark); }
.status-under_review, .status-needs_followup { background: rgba(217,185,124,.26); color: #684c1f; }
.status-approved, .status-verified, .status-succeeded { background: rgba(31,81,69,.14); color: var(--forest); }
.status-rejected, .status-failed { background: rgba(30,41,48,.10); color: #37444b; }
.timeline { display: grid; gap: .85rem; }
.timeline-item { padding: 1rem; border-radius: 18px; background: white; border: 1px solid var(--line); }
.timeline-item strong, .timeline-item span { display: block; }
.timeline-item span { color: var(--muted); margin-top: .2rem; margin-bottom: .4rem; }
.filter-bar { display: grid; grid-template-columns: 1.5fr .8fr auto; gap: .75rem; margin-bottom: 1rem; }
.detail-list { display: grid; gap: .85rem; margin-bottom: 1rem; }
.detail-list div { display: grid; gap: .3rem; padding-bottom: .7rem; border-bottom: 1px solid var(--line); }
@media (max-width: 980px) {
  .admin-header-row, .filter-bar { grid-template-columns: 1fr; display: grid; }
}

.password-field {
    position: relative;
}

.password-field input {
    padding-right: 3.25rem;
}

.password-toggle {
    position: absolute;
    right: .6rem;
    top: 50%;
    transform: translateY(-50%);
    border: 0;
    background: transparent;
    cursor: pointer;
    font-size: 1rem;
    line-height: 1;
    padding: .25rem;
    color: #4b5b67;
}

.password-toggle:hover,
.password-toggle:focus {
    color: #102a43;
}

.cards-4 { display:grid; grid-template-columns: repeat(4,1fr); gap:1.25rem; }
.compact-stats { margin-top: 1rem; }
.status-in_process { background: rgba(30,41,48,.08); color:#37444b; }
.status-pending { background: rgba(217,185,124,.26); color: #684c1f; }
.status-denied { background: rgba(156,47,47,.12); color: var(--brand-dark); }
.status-suspended { background: rgba(110,62,156,.14); color: #5a2d7c; }
.dashboard-grid { display:grid; gap:1.25rem; }
.dashboard-grid.two-up { grid-template-columns: repeat(2,1fr); }
.account-shell { display:grid; gap:1rem; }
.status-pills { display:flex; gap:.5rem; flex-wrap:wrap; margin:.75rem 0 1rem; }
.family-row { padding:1rem; border:1px solid var(--line); border-radius:20px; background:white; }
.filter-grid-4 { grid-template-columns: 1.4fr .8fr .8fr auto; }
.check-list { padding-left: 1.1rem; }
.check-list li { margin: .35rem 0; }
.hero-actions { display:flex; gap:.75rem; flex-wrap:wrap; margin-top:1rem; }
.table-lite { display:grid; gap:.75rem; }
.table-lite > div { display:grid; grid-template-columns: repeat(3,1fr); gap:1rem; padding-bottom:.5rem; border-bottom:1px solid var(--line); }
@media (max-width: 980px) {
  .cards-4, .dashboard-grid.two-up, .filter-grid-4 { grid-template-columns: 1fr; }
}


.section-header-inline { display:flex; justify-content:space-between; gap:1rem; align-items:end; flex-wrap:wrap; }
.family-grid { grid-template-columns: repeat(4,1fr); }
.family-row-actions { justify-content:flex-end; margin-top:.75rem; }
@media (max-width: 980px) { .family-grid { grid-template-columns: 1fr; } }

/* Phase A/B/C workflow additions */
.status-more_info_requested { background: rgba(186, 104, 32, .16); color: #8a4b12; }
.status-resubmitted { background: rgba(0, 105, 148, .14); color: #0b5d79; }
.compact-timeline .timeline-item p { margin: .45rem 0 0; }
.workflow-panel textarea { min-height: 120px; }
.workflow-buttons { flex-wrap: wrap; }
.compact-details strong { display:block; }
.admin-stat-grid .mini-panel { min-height: 110px; }


.template-editor-card {
  margin-top: 1rem;
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: rgba(255,255,255,.8);
}

.dynamic-placeholder-grid {
  display: grid;
  gap: 1rem;
  margin-bottom: 1rem;
}

.dynamic-placeholder-grid .template-field {
  display: grid;
  gap: .35rem;
}

.upload-preview-file {
  padding: .75rem;
  border-radius: 14px;
  background: rgba(125, 155, 111, .12);
  color: var(--ink);
  font-weight: 600;
}

.lookup-chip-wrap {
  display: flex;
  gap: .5rem;
  flex-wrap: wrap;
}

.lookup-chip {
  appearance: none;
  border: 1px solid var(--line);
  background: white;
  border-radius: 999px;
  padding: .45rem .8rem;
  font: inherit;
  cursor: pointer;
  color: var(--ink);
}

.lookup-chip.static {
  cursor: default;
  background: rgba(125, 155, 111, .12);
}

.lookup-chip.is-selected {
  background: rgba(154, 31, 45, .12);
  border-color: rgba(154, 31, 45, .45);
  box-shadow: inset 0 0 0 1px rgba(154, 31, 45, .18);
  font-weight: 700;
}

.lookup-chip:hover,
.lookup-chip:focus-visible {
  border-color: rgba(125, 155, 111, .45);
  box-shadow: 0 0 0 3px rgba(125, 155, 111, .12);
  outline: none;
}

.lookup-table-shell {
  border: 1px solid var(--line);
  border-radius: 22px;
  background: white;
}

.lookup-results-table {
  width: 100%;
  min-width: 1120px;
  border-collapse: collapse;
}

.lookup-results-table th,
.lookup-results-table td {
  padding: .85rem .75rem;
  border-bottom: 1px solid var(--line);
  vertical-align: top;
  text-align: left;
}

.lookup-results-table thead th {
  position: sticky;
  top: 0;
  background: #f8faf7;
  z-index: 1;
  font-size: .84rem;
}

.lookup-results-table tbody tr:hover {
  background: rgba(125, 155, 111, .05);
}

.lookup-subtext {
  color: var(--muted);
  font-size: .86rem;
  margin-top: .25rem;
}

.hp-field{position:absolute !important;left:-9999px !important;opacity:0 !important;pointer-events:none !important;}
.donor-match-card{margin:1rem 0;padding:1rem;border:1px solid rgba(24,88,58,.18);border-radius:16px;background:#f7faf7;}
.donor-match-preview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;margin:.75rem 0;}
.donor-mask-field{display:flex;flex-direction:column;gap:.25rem;font-size:.9rem;color:var(--muted);}
.donor-mask-field input{cursor:pointer;background:#fff;border:1px solid rgba(15,23,42,.18);border-radius:12px;padding:.65rem .75rem;color:#1f2937;}
.donor-mask-field input:focus{outline:2px solid rgba(125,155,111,.35);border-color:rgba(125,155,111,.7);}
@media (max-width: 640px){.donor-match-preview{grid-template-columns:1fr;}}
.lookup-results{margin-top:.5rem;border:1px solid rgba(15,23,42,.12);border-radius:14px;background:#fff;max-height:220px;overflow:auto;display:flex;flex-direction:column;gap:.35rem;padding:.5rem;}
.lookup-result-item{background:#fff;border:1px solid rgba(15,23,42,.08);border-radius:10px;text-align:left;padding:.6rem .75rem;cursor:pointer;}
.lookup-result-item:hover{background:#f4f6f8;}
.inline-range{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;}
.admin-donation-panel{margin-top:1.5rem;}
.small-copy{font-size:.92rem;}
.alert.notice{background:#f7fafc;border:1px solid rgba(15,23,42,.08);color:#334155;}


.admin-actions{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center;justify-content:flex-end;}
.inline-form{display:inline;}
.stack-form .inline-range-3{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;}
.metric-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;}
.metric-card{padding:1rem;border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.65);}
.metric-card strong{display:block;font-size:1.4rem;}
.badge-row{display:flex;flex-wrap:wrap;gap:.5rem;}
.badge-soft{display:inline-flex;padding:.35rem .65rem;border-radius:999px;background:rgba(30,41,48,.08);font-size:.85rem;font-weight:700;}
.checkbox-stack{display:grid;gap:.65rem;}
.checkbox-card{display:grid;grid-template-columns:auto 1fr;gap:.75rem;padding:.85rem 1rem;border:1px solid var(--line);border-radius:18px;background:#fff;align-items:start;}
.checkbox-card input{margin-top:.25rem;}
.form-actions{display:flex;gap:.75rem;flex-wrap:wrap;align-items:center;}
.notice-banner{padding:1rem 1.1rem;border-radius:18px;margin-bottom:1rem;border:1px solid var(--line);background:#fff8e8;}
.notice-banner.success{background:#ecfdf3;}
.notice-banner.error{background:#fff1f2;}
.table-actions{display:flex;gap:.5rem;flex-wrap:wrap;}
.admin-split{display:grid;grid-template-columns:1.1fr .9fr;gap:1.25rem;align-items:start;}
.definition-list{display:grid;gap:.85rem;}
.definition-list > div{display:grid;gap:.2rem;padding-bottom:.75rem;border-bottom:1px solid var(--line);}
.small-muted{font-size:.9rem;color:var(--muted);}
@media (max-width: 980px){.admin-split,.metric-grid,.stack-form .inline-range-3{grid-template-columns:1fr;}}


.key-value-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.85rem 1rem}.key-value-grid>div{background:#fff;border:1px solid rgba(47,79,47,.12);border-radius:12px;padding:.8rem}.checkbox-card{display:flex;gap:.75rem;align-items:flex-start}.checkbox-card input{margin-top:.25rem}


/* CMS + updates */
.cms-form{display:grid;gap:1rem}
.cms-field{display:grid;gap:.45rem}
.cms-field input,.cms-field textarea{width:100%}
.cms-image-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin-top:1rem}
.cms-image-card{display:grid;gap:.5rem;padding:.75rem;border:1px solid rgba(15,23,42,.12);border-radius:16px;background:#fff}
.cms-image-card img{width:100%;aspect-ratio:16 / 9;height:auto;object-fit:cover;border-radius:12px}
.cms-post-row-top{display:grid;grid-template-columns:160px 1fr;gap:.95rem;align-items:start}
.cms-post-row-top img{width:160px;height:90px;object-fit:cover;border-radius:14px}
.updates-card{display:grid;gap:.75rem}
.updates-card-head{display:flex;justify-content:space-between;gap:1rem;align-items:end}
.updates-card-head h3{margin:.15rem 0 0}
.updates-scroll-panel{max-height:520px;overflow:auto;display:grid;gap:.85rem;padding-right:.2rem}
.update-preview-card{display:grid;grid-template-columns:90px 1fr;gap:.85rem;padding:.75rem;border-radius:16px;background:rgba(255,255,255,.7)}
.update-preview-card img{width:90px;height:90px;object-fit:cover;border-radius:14px}
.update-preview-card strong,.update-list-card h2{display:block;margin-bottom:.2rem}
.update-preview-card span{display:block;font-size:.85rem;color:#64748b;margin-bottom:.35rem}
.update-preview-card p{margin:0 0 .4rem}
.updates-listing{display:grid;gap:1rem}
.update-list-card{display:grid;grid-template-columns:minmax(180px,240px) 1fr;gap:1rem;align-items:start}
.update-list-thumb{width:100%;aspect-ratio:16 / 9;height:auto;object-fit:cover;border-radius:16px}
.update-gallery{display:grid;grid-template-columns:1fr;gap:1rem;margin-top:1rem}
.update-gallery-item img{width:100%;aspect-ratio:16 / 9;height:auto;object-fit:cover;border-radius:18px}
.update-article .rich-copy{font-size:1.04rem;line-height:1.7}
@media (max-width: 820px){
  .update-preview-card,.update-list-card,.cms-post-row-top{grid-template-columns:1fr}
  .update-preview-card img,.update-list-thumb,.cms-post-row-top img{width:100%;height:auto;max-height:280px}
}

.rich-text p:first-child { margin-top: 0; }
.rich-text p:last-child { margin-bottom: 0; }
.rich-text ul, .rich-text ol { padding-left: 1.2rem; }
.rich-text a { color: var(--brand); font-weight: 700; }

.cms-visual-shell { overflow: hidden; }
.cms-visual-topbar { display: grid; gap: 1rem; }
.cms-tab-row { flex-wrap: wrap; }
.cms-visual-actions { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin: 1.25rem 0; padding: 1rem 1.1rem; border: 1px solid var(--line); border-radius: 20px; background: rgba(255,255,255,.76); }
.cms-visual-actions span { display:block; }
.sticky-actions { position: sticky; top: 90px; z-index: 5; }
.cms-editor-grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(360px, .95fr); gap: 1.25rem; align-items: start; }
.cms-preview-panel, .cms-format-toolbar, .cms-field-group, .cms-preview-modal-card { background: rgba(255,255,255,.88); border: 1px solid var(--line); border-radius: 24px; box-shadow: var(--shadow); }
.cms-preview-panel-head, .cms-format-toolbar, .cms-field-group-head, .cms-preview-modal-head { padding: 1rem 1.1rem; }
.cms-preview-panel-head { display:flex; justify-content: space-between; gap: 1rem; align-items: center; border-bottom: 1px solid var(--line); }
.cms-preview-canvas { padding: 1.1rem; background: linear-gradient(180deg, #faf7f2, #f2ebe1); min-height: 720px; }
.cms-preview-page { display:grid; gap: 1rem; }
.cms-preview-page .compact { padding:0; }
.cms-preview-hero, .cms-preview-page .page-hero, .cms-preview-page .feature-card, .cms-preview-page .glass-card, .cms-preview-page .form-card { border-radius: 22px; }
.cms-preview-hero { padding: 1.35rem; background: rgba(255,255,255,.84); border: 1px solid rgba(255,255,255,.72); box-shadow: var(--shadow); }
.cms-preview-updates-grid, .preview-split { display:grid; grid-template-columns: 1.1fr .9fr; gap: 1rem; align-items:start; }
.cms-preview-page .compact-cards { gap: 1rem; }
.cms-preview-page h1 { font-size: clamp(2rem, 3vw, 3rem); margin-bottom: .8rem; }
.cms-preview-page h2 { font-size: 2rem; }
.cms-preview-page h3 { font-size: 1.25rem; margin-bottom: .75rem; }
.cms-preview-page .impact-strip.compact { margin-top: 1rem; }
.cms-preview-page .updates-scroll-panel.compact { max-height: 260px; overflow: auto; }
.cms-preview-click { cursor: pointer; transition: transform .12s ease, box-shadow .12s ease, outline-color .12s ease; outline: 2px dashed transparent; outline-offset: 4px; }
.cms-preview-click:hover { transform: translateY(-1px); outline-color: rgba(156,47,47,.35); }
.cms-fields-column { display:grid; gap: 1rem; }
.cms-field-group-head { display:flex; justify-content: space-between; gap: 1rem; align-items: center; border-bottom: 1px solid var(--line); }

.cms-format-toolbar-head { display:flex; justify-content:space-between; gap:1rem; align-items:center; margin-bottom:.85rem; flex-wrap:wrap; }
.cms-section-visibility-actions { margin-left:auto; }
.cms-fields-empty-state {
  padding: 1rem 1.1rem;
  border: 1px dashed rgba(30,41,48,.18);
  border-radius: 20px;
  background: rgba(255,255,255,.62);
  display: grid;
  gap: .3rem;
}
.cms-field-group.active-group {
  border-color: rgba(156,47,47,.26);
  box-shadow: 0 0 0 4px rgba(156,47,47,.06), var(--shadow);
}
.cms-field-group[hidden] { display:none !important; }

.cms-field-stack { display:grid; gap: .9rem; padding: 1rem 1.1rem 1.1rem; }
.cms-editor-field { border: 1px solid var(--line); border-radius: 20px; background: #fff; padding: 1rem; transition: box-shadow .12s ease, border-color .12s ease, transform .12s ease; }
.cms-editor-field.active, .cms-editor-field.flash { border-color: rgba(156,47,47,.38); box-shadow: 0 0 0 4px rgba(156,47,47,.08); }
.cms-editor-field-head { display:flex; justify-content: space-between; gap: 1rem; margin-bottom: .8rem; }
.cms-editor-field-head span { display:block; margin-top: .25rem; }
.cms-editor-field code { background: #f6efe7; border: 1px solid var(--line); border-radius: 999px; padding: .3rem .6rem; font-size: .8rem; white-space: nowrap; align-self: start; }
.cms-editor-field textarea { min-height: 140px; }
.cms-format-toolbar { position: sticky; top: 180px; z-index: 4; }
.cms-preview-modal { position: fixed; inset: 0; z-index: 120; }
.cms-preview-modal-backdrop { position:absolute; inset:0; background: rgba(17,24,39,.58); }
.cms-preview-modal-card { position: relative; width: min(1200px, calc(100% - 2rem)); margin: 2rem auto; max-height: calc(100vh - 4rem); overflow: hidden; }
.cms-preview-modal-head { display:flex; align-items:center; justify-content:space-between; gap:1rem; border-bottom:1px solid var(--line); }
.cms-preview-modal-body { overflow:auto; max-height: calc(100vh - 9rem); padding: 1.2rem; background: linear-gradient(180deg, #faf7f2, #f2ebe1); }
body.cms-modal-open { overflow: hidden; }

@media (max-width: 1100px) {
  .cms-editor-grid, .cms-preview-updates-grid, .preview-split { grid-template-columns: 1fr; }
  .cms-visual-actions, .cms-preview-modal-head { grid-template-columns: 1fr; display:grid; }
  .cms-format-toolbar, .sticky-actions { position: static; }
}

/* Homepage redesign */
.hero-homepage {
  padding: 4.5rem 0 2.4rem;
  background:
    radial-gradient(circle at top right, rgba(156,47,47,.13), transparent 24%),
    radial-gradient(circle at bottom left, rgba(31,81,69,.16), transparent 26%);
}
.hero-home-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(320px, .9fr);
  gap: 1.5rem;
  align-items: stretch;
}
.hero-home-copy {
  padding: 1.2rem 0;
}
.hero-actions-3 { align-items: center; }
.hero-kicker-row {
  display: flex;
  flex-wrap: wrap;
  gap: .7rem;
  margin-top: 1rem;
}
.hero-kicker-row span {
  display: inline-flex;
  align-items: center;
  padding: .55rem .85rem;
  border-radius: 999px;
  background: rgba(255,255,255,.82);
  border: 1px solid var(--line);
  color: var(--muted);
  font-weight: 700;
  font-size: .92rem;
}
.hero-home-side {
  display: grid;
  gap: 1rem;
}
.home-side-card {
  padding: 1.35rem;
  border-radius: 24px;
  box-shadow: var(--shadow);
}
.home-side-card-primary {
  background: rgba(255,255,255,.9);
  border: 1px solid rgba(255,255,255,.75);
}
.home-side-card-accent {
  background: linear-gradient(145deg, rgba(31,81,69,.95), rgba(46,115,95,.92));
  color: white;
  border: 1px solid rgba(255,255,255,.18);
}
.home-side-card-accent .eyebrow,
.home-side-card-accent .rich-text,
.home-side-card-accent p { color: rgba(255,255,255,.92); }
.section-tight-top { padding-top: .25rem; }
.action-grid-4,
.home-help-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.15rem;
}
.action-card,
.home-help-card {
  display: grid;
  gap: .75rem;
  min-height: 100%;
}
.action-card h2 { font-size: 1.45rem; }
.action-card a,
.home-help-card a { margin-top: auto; }
.home-mission-grid { align-items: start; }
.mission-copy { max-width: 62ch; }
.home-quote {
  margin-top: 1.5rem;
  padding: 1.1rem 1.2rem;
  border-left: 4px solid var(--gold);
  background: rgba(255,255,255,.72);
  border-radius: 0 18px 18px 0;
}
.home-quote p { margin: 0 0 .55rem; font-family: 'Fraunces', serif; font-size: 1.15rem; }
.home-quote span { color: var(--muted); font-weight: 700; }
.impact-grid-2 {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
}
.impact-panel {
  padding: 1.2rem;
  background: rgba(255,255,255,.84);
  border: 1px solid rgba(255,255,255,.7);
  border-radius: 24px;
  box-shadow: var(--shadow);
}
.impact-panel strong {
  display: block;
  font-size: 1.25rem;
  margin-bottom: .35rem;
}
.section-heading-row {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(280px, .75fr);
  gap: 1rem;
  align-items: end;
  margin-bottom: 1.25rem;
}
.home-help-card { background: linear-gradient(180deg, rgba(255,255,255,.94), rgba(255,255,255,.78)); }
.updates-home-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(280px, .85fr);
  gap: 1.25rem;
  align-items: start;
}
.updates-home-card {
  padding: 1.35rem;
}
.updates-home-head h2 { margin: .2rem 0 0; }
.updates-home-copy { margin-bottom: 1rem; }
.home-updates-scroll { max-height: 570px; }
.home-update-card {
  grid-template-columns: 110px 1fr;
  padding: .9rem;
  border: 1px solid rgba(15,23,42,.06);
}
.home-update-card img {
  width: 110px;
  height: 110px;
  object-fit: cover;
}
.home-side-stack {
  display: grid;
  gap: 1rem;
}
.home-side-info h3 { font-size: 1.35rem; }
.cta-section-home { padding-top: 1rem; }
.cta-home-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1rem;
  align-items: center;
  padding: 1.5rem;
  border-radius: 28px;
  background: linear-gradient(135deg, rgba(156,47,47,.96), rgba(112,33,33,.96));
  color: white;
  box-shadow: var(--shadow);
}
.cta-home-card .eyebrow,
.cta-home-card .muted-copy,
.cta-home-card .rich-text { color: rgba(255,255,255,.9); }
.cta-home-card .button-secondary {
  border-color: rgba(255,255,255,.35);
}
.impact-strip-4 { grid-template-columns: repeat(4, 1fr); }

@media (max-width: 1100px) {
  .hero-home-grid,
  .updates-home-grid,
  .section-heading-row,
  .cta-home-card,
  .action-grid-4,
  .home-help-grid,
  .impact-grid-2,
  .impact-strip-4 { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 820px) {
  .hero-home-grid,
  .updates-home-grid,
  .section-heading-row,
  .cta-home-card,
  .action-grid-4,
  .home-help-grid,
  .impact-grid-2,
  .impact-strip-4,
  .home-update-card { grid-template-columns: 1fr; }
  .home-update-card img { width: 100%; height: auto; max-height: 260px; }
}

.home-banner-slider { padding: 1.2rem 0 0; }
.home-banner-shell { position: relative; overflow: hidden; min-height: 380px; border-radius: 32px; box-shadow: var(--shadow); }
.home-banner-slide {
  position: absolute; inset: 0; padding: 2.25rem 2rem 4rem; display: grid; align-items: center;
  opacity: 0; pointer-events: none; transition: opacity .7s ease;
  background:
    linear-gradient(110deg, rgba(23,32,38,.78), rgba(23,32,38,.28)),
    radial-gradient(circle at top right, rgba(217,185,124,.35), transparent 28%),
    linear-gradient(135deg, rgba(156,47,47,.96), rgba(112,33,33,.88));
}
.home-banner-slide::before {
  content: ''; position: absolute; inset: 0;
  background-image: var(--slide-image, none); background-size: cover; background-position: center;
  opacity: .38; mix-blend-mode: screen;
}
.home-banner-mode-contain::before {
  background-size: contain; background-repeat: no-repeat; background-position: left center;
  opacity: .82; mix-blend-mode: normal;
}
.home-banner-mode-contain .home-banner-copy {
  margin-left: min(46%, 480px);
  padding: 1.25rem 1.5rem;
  border-radius: 24px;
  background: linear-gradient(90deg, rgba(112,33,33,.86), rgba(112,33,33,.58));
}
.home-banner-mode-split,
.home-banner-mode-split-right {
  grid-template-columns: minmax(240px, 44%) minmax(260px, 1fr); gap: clamp(1rem, 3vw, 2rem); padding: 1.5rem 2rem 2.5rem;
}
.home-banner-mode-split::before,
.home-banner-mode-split-right::before { display: none; }
.home-banner-mode-split-right .home-banner-split-image { order: 2; }
.home-banner-mode-split-right .home-banner-copy { order: 1; }
.home-banner-split-image {
  position: relative; z-index: 1; height: 100%; min-height: 260px; max-height: 330px; border-radius: 24px; overflow: hidden; background: rgba(255,255,255,.12); align-self: center;
}
.home-banner-split-image img { width: 100%; height: 100%; object-fit: contain; display: block; }
.home-banner-slide.is-active { opacity: 1; pointer-events: auto; }
.home-banner-copy { position: relative; z-index: 1; max-width: 700px; color: white; }
.home-banner-copy h2 { font-size: clamp(2rem, 4vw, 3.4rem); color: white; margin-bottom: .65rem; line-height: .96; }
.home-banner-copy .rich-text { font-size: 1.05rem; color: rgba(255,255,255,.92); max-width: 56ch; }
.home-banner-dots { position: absolute; right: 1.25rem; bottom: 1.25rem; z-index: 2; display: flex; gap: .55rem; }
.home-banner-dots button { width: 11px; height: 11px; border-radius: 999px; border: 0; background: rgba(255,255,255,.38); cursor: pointer; }
.home-banner-dots button.is-active { background: white; transform: scale(1.1); }
.hero-story-home { padding-top: 2rem; }
.hero-story-grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: 2rem; align-items: stretch; }
.hero-story-media {
  min-height: 560px; border-radius: 32px; overflow: hidden; position: relative;
  background: linear-gradient(160deg, rgba(31,81,69,.92), rgba(17,34,39,.92));
  box-shadow: var(--shadow); background-size: cover; background-position: center;
}
.hero-story-media::after {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(17,34,39,.08), rgba(17,34,39,.36));
}
.hero-story-placeholder {
  position: absolute; inset: 1.25rem; z-index: 1; display: grid; place-items: center; align-content: center;
  text-align: center; gap: .9rem; color: white; border-radius: 24px; border: 1px solid rgba(255,255,255,.18);
  background: rgba(255,255,255,.06);
}
.hero-story-placeholder.compact { inset: auto 1rem 1rem 1rem; min-height: 160px; padding: 1rem; }
.hero-story-placeholder img { width: 76px; height: 76px; filter: brightness(0) invert(1); opacity: .96; }
.hero-story-copy { display: grid; align-content: center; gap: 1rem; }
.hero-story-sidecards { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }
.home-side-card { padding: 1.3rem; border-radius: 24px; box-shadow: var(--shadow); border: 1px solid rgba(255,255,255,.7); background: rgba(255,255,255,.85); }
.home-side-card-accent { background: linear-gradient(135deg, rgba(31,81,69,.94), rgba(48,112,96,.9)); color: white; }
.home-side-card-accent .eyebrow, .home-side-card-accent .rich-text { color: rgba(255,255,255,.92); }
.hero-kicker-row { display: flex; flex-wrap: wrap; gap: .6rem; }
.hero-kicker-row span { padding: .55rem .85rem; background: rgba(255,255,255,.85); border: 1px solid var(--line); border-radius: 999px; font-size: .92rem; font-weight: 600; }
.cms-image-upload-row { display: flex; align-items: center; gap: .75rem; flex-wrap: wrap; margin-top: .75rem; }
.cms-upload-button { position: relative; overflow: hidden; }
.cms-upload-button input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.cms-preview-banner-shell { display: grid; gap: .9rem; }
.cms-preview-banner-slide { display: grid; grid-template-columns: 150px 1fr; gap: .9rem; align-items: center; }
.cms-preview-banner-art { min-height: 110px; border-radius: 18px; background: linear-gradient(135deg, rgba(156,47,47,.95), rgba(112,33,33,.85)); background-size: cover; background-position: center; }
.cms-preview-banner-art.is-placeholder::after { content:'Photo'; display:grid; place-items:center; height:100%; color:white; font-weight:700; }
.cms-preview-hero-v2 { display: grid; grid-template-columns: .95fr 1.05fr; gap: 1rem; align-items: stretch; margin-top: 1rem; }
.cms-preview-hero-photo { min-height: 260px; border-radius: 24px; background: linear-gradient(160deg, rgba(31,81,69,.94), rgba(17,34,39,.94)); background-size: cover; background-position: center; position: relative; overflow: hidden; }
.cms-preview-actions-grid, .cms-preview-mission-grid { display: grid; gap: 1rem; margin-top: 1rem; }
.cms-preview-actions-grid { grid-template-columns: repeat(2, 1fr); }
.cms-preview-mission-grid { grid-template-columns: 1.05fr .95fr; }
@media (max-width: 980px) {
  .home-banner-shell { min-height: 340px; }
  .hero-story-grid, .hero-story-sidecards, .cms-preview-hero-v2, .cms-preview-actions-grid, .cms-preview-mission-grid { grid-template-columns: 1fr; }
  .hero-story-media { min-height: 360px; }
}

.section-story-stack { padding-top: 1rem; }
.story-stack { display: grid; gap: 1.5rem; }
.story-band {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 1.5rem;
  align-items: stretch;
  background: linear-gradient(180deg, rgba(255,255,255,.92), rgba(255,255,255,.98));
  border: 1px solid rgba(16,48,51,.08);
  border-radius: 32px;
  padding: 1.1rem;
  box-shadow: 0 24px 48px rgba(13,42,45,.08);
}
.story-band.image-right .story-band-media { order: 2; }
.story-band.image-right .story-band-copy { order: 1; }
.story-band-media,
.gallery-tile {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
.story-band-media {
  min-height: 320px;
  border-radius: 24px;
  overflow: hidden;
  background-image: linear-gradient(135deg, #1d4f4d, #3a8b77);
}
.story-band-copy {
  padding: 1.25rem 1rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.story-band-copy h2 { margin: .35rem 0 .85rem; }
.story-band-copy .button-row { margin-top: 1rem; }
.story-band-placeholder {
  min-height: 100%;
  display: flex;
  flex-direction: column;
  gap: .75rem;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: #f5fbfa;
  padding: 1.5rem;
}
.story-band-placeholder.compact {
  min-height: 150px;
  padding: 1rem;
}
.story-band-placeholder img { width: 56px; height: 56px; opacity: .95; }

.section-gallery-showcase { padding-top: 1rem; }
.home-gallery-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 1rem;
}
.gallery-tile {
  min-height: 180px;
  border-radius: 24px;
  background-image: linear-gradient(135deg, rgba(28,78,76,.88), rgba(86,154,126,.88));
  box-shadow: 0 18px 36px rgba(13,42,45,.08);
  overflow: hidden;
}
.gallery-tile.is-placeholder { display:flex; align-items:center; justify-content:center; }
.gallery-tile.tile-1,
.gallery-tile.tile-4 { grid-column: span 4; }
.gallery-tile.tile-2,
.gallery-tile.tile-5 { grid-column: span 5; }
.gallery-tile.tile-3,
.gallery-tile.tile-6 { grid-column: span 3; }
.gallery-tile.tile-1,
.gallery-tile.tile-2 { min-height: 260px; }
.gallery-tile.tile-4,
.gallery-tile.tile-5,
.gallery-tile.tile-6 { min-height: 210px; }

.cms-preview-story-stack { display: grid; gap: .85rem; margin-top: 1rem; }
.cms-preview-story-row {
  display: grid;
  grid-template-columns: 132px 1fr;
  gap: .85rem;
  border: 1px solid rgba(16,48,51,.1);
  border-radius: 20px;
  padding: .8rem;
  background: #fff;
  cursor: pointer;
}
.cms-preview-story-photo,
.cms-preview-gallery-tile {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  background-image: linear-gradient(135deg, #204745, #3a8b77);
}
.cms-preview-story-photo {
  min-height: 132px;
  border-radius: 16px;
}
.cms-preview-story-copy { display:flex; flex-direction:column; gap:.35rem; }
.cms-preview-story-copy h3 { margin: 0; font-size: 1.05rem; }
.preview-open-link { display:inline-flex; margin-top:.35rem; font-weight:700; }
.cms-preview-gallery-block {
  margin-top: 1rem;
  border: 1px solid rgba(16,48,51,.1);
  border-radius: 22px;
  padding: .95rem;
  background: #fff;
}
.cms-preview-gallery-grid {
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .65rem;
  margin-top: .75rem;
}
.cms-preview-gallery-tile {
  min-height: 92px;
  border-radius: 14px;
}

@media (max-width: 980px) {
  .story-band { grid-template-columns: 1fr; }
  .story-band.image-right .story-band-media,
  .story-band.image-right .story-band-copy { order: initial; }
  .home-gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gallery-tile,
  .gallery-tile.tile-1,
  .gallery-tile.tile-2,
  .gallery-tile.tile-3,
  .gallery-tile.tile-4,
  .gallery-tile.tile-5,
  .gallery-tile.tile-6 { grid-column: span 1; min-height: 180px; }
}

@media (max-width: 640px) {
  .story-band { padding: .9rem; border-radius: 24px; }
  .story-band-media { min-height: 240px; }
  .cms-preview-story-row { grid-template-columns: 1fr; }
  .cms-preview-story-photo { min-height: 160px; }
  .cms-preview-gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.cms-revision-note{min-width:220px;padding:.65rem .8rem;border:1px solid rgba(122,96,46,.25);border-radius:999px;background:#fff7ea}
.cms-restore-row{margin-top:.65rem}
.cms-repeatable-shell,.cms-revisions-shell{margin-top:1.5rem;border:1px solid rgba(122,96,46,.14);border-radius:24px;background:#fff;padding:1.25rem;box-shadow:0 18px 40px rgba(83,63,28,.08)}
.cms-repeatable-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;margin-bottom:1rem}
.cms-repeatable-head h2{margin:0 0 .25rem}
.cms-repeatable-list{display:grid;gap:1rem}
.cms-repeatable-card{border:1px solid rgba(122,96,46,.12);border-radius:20px;padding:1rem;background:#fffaf3;scroll-margin-top:8rem}
.cms-repeatable-card.flash{animation:cmsFlash 1.2s ease}
.cms-repeatable-card-head{display:flex;justify-content:space-between;gap:1rem;align-items:center;margin-bottom:.8rem}
.cms-repeatable-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.8rem;margin-bottom:.8rem}
.cms-repeatable-card label{display:grid;gap:.35rem;font-weight:600;color:#5c4524}
.cms-repeatable-card input[type="text"],.cms-repeatable-card input[type="number"],.cms-repeatable-card textarea{width:100%;padding:.7rem .8rem;border:1px solid rgba(122,96,46,.18);border-radius:14px;background:#fff}
.cms-checkline{display:flex;align-items:center;gap:.55rem;padding-top:1.7rem}
.cms-checkline input{width:auto}
.cms-revision-list{display:grid;gap:.75rem}
.cms-revision-row{display:grid;grid-template-columns:1fr auto;gap:1rem;align-items:center;padding:.85rem 1rem;border:1px solid rgba(122,96,46,.12);border-radius:16px;background:#fffaf3}
.gallery-chip,.gallery-tile-title{display:inline-block;padding:.25rem .55rem;border-radius:999px;background:rgba(255,250,243,.92);color:#5c4524;font-size:.8rem;font-weight:700}
.gallery-tile{position:relative;overflow:hidden}
.gallery-tile-copy{position:absolute;left:.75rem;right:.75rem;bottom:.75rem;display:grid;gap:.4rem;z-index:1}
.gallery-tile::after{content:"";position:absolute;inset:auto 0 0 0;height:55%;background:linear-gradient(180deg,rgba(12,23,24,0) 0%,rgba(12,23,24,.72) 100%)}
.gallery-tile-title{position:static;width:max-content;max-width:100%}
.gallery-tile-caption{color:#fff;font-size:.92rem;line-height:1.35;max-width:32ch;text-shadow:0 1px 2px rgba(0,0,0,.35)}
.cms-save-button{background:#b42318;color:#fff;border:1px solid #b42318;box-shadow:0 10px 22px rgba(180,35,24,.22)}
.cms-save-button:hover,.cms-save-button:focus{background:#981b12;border-color:#981b12;color:#fff}
.cms-upload-filename{font-size:.85rem;color:#7a5f32;word-break:break-word}
@media (max-width:900px){.cms-repeatable-head{flex-direction:column}.cms-revision-row{grid-template-columns:1fr}}


.resource-search-row{display:flex;gap:1rem;flex-wrap:wrap;align-items:center}
.resource-search-form{display:flex;gap:.75rem;flex-wrap:wrap;align-items:center;flex:1 1 420px}
.resource-search-form input{flex:1 1 260px;padding:.8rem 1rem;border:1px solid var(--line);border-radius:14px;background:#fff}
.resource-directory-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.resource-card{background:#fff;border:1px solid rgba(15,23,42,.08);border-radius:24px;box-shadow:var(--shadow);padding:1.25rem;display:grid;gap:.85rem}
.resource-card h3{margin:0}
.resource-card-empty{grid-column:1/-1}
.resource-pill-row{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}
.resource-pill{display:inline-flex;align-items:center;padding:.35rem .7rem;border-radius:999px;background:#f3f6f8;border:1px solid var(--line);font-size:.85rem;font-weight:700;color:#4b5563}
.resource-meta-list{display:grid;gap:.45rem;font-size:.96rem}
.resource-meta{display:flex;flex-wrap:wrap;gap:.5rem .75rem}
.resource-meta span{display:inline-flex;align-items:center;padding:.3rem .6rem;border-radius:999px;background:#f8fafc;border:1px solid var(--line);font-size:.86rem;color:#475569}
@media (max-width: 860px){.resource-directory-grid{grid-template-columns:1fr}}


.volunteer-print-shell { width:min(920px, calc(100% - 2rem)); margin:2rem auto; }
.volunteer-print-card { background:#fff; }
.signature-line-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1.25rem; margin-top:1.5rem; }
.signature-line { border-bottom:2px solid rgba(30,41,48,.35); min-height:2.4rem; margin-top:2rem; }
.print-body .site-header, .print-body .site-footer { display:none; }
.status-needs_parent_signature { background: rgba(217,185,124,.26); color:#684c1f; }

/* Admin operations dashboard */
.admin-operations-home .muted-copy { margin-top: .35rem; }
.operations-hero { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:1rem; }
.operations-hero h2 { margin-bottom:.35rem; }
.operations-hero-count { min-width:150px; text-align:center; padding:1rem; border:1px solid var(--line); border-radius:20px; background:rgba(255,255,255,.72); }
.operations-hero-count span { display:block; color:var(--muted); font-weight:700; font-size:.9rem; }
.operations-hero-count strong { display:block; font-size:2.2rem; line-height:1; margin-top:.25rem; color:var(--brand); }
.attention-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin:1rem 0 1.25rem; }
.attention-card { display:flex; flex-direction:column; gap:.35rem; min-height:128px; padding:1.1rem; border:1px solid var(--line); border-radius:22px; background:var(--paper); box-shadow:var(--shadow); transition:transform .16s ease, border-color .16s ease; }
.attention-card:hover { transform:translateY(-2px); border-color:rgba(156,47,47,.35); }
.attention-card span { color:var(--muted); font-weight:800; text-transform:uppercase; letter-spacing:.08em; font-size:.76rem; }
.attention-card strong { font-size:clamp(1.55rem,3vw,2.35rem); line-height:1.05; }
.attention-card small { color:var(--muted); font-weight:600; line-height:1.35; }
.attention-warning { border-left:6px solid #d9b97c; }
.attention-danger { border-left:6px solid var(--brand); }
.attention-ok { border-left:6px solid var(--forest); }
.operations-grid { align-items:start; }
.current-outreach-metrics { display:grid; grid-template-columns:repeat(3,1fr); gap:.75rem; margin:1rem 0; }
.current-outreach-metrics div { border:1px solid var(--line); border-radius:18px; padding:.9rem; background:rgba(255,255,255,.68); }
.current-outreach-metrics span { display:block; color:var(--muted); font-size:.86rem; font-weight:700; }
.current-outreach-metrics strong { display:block; margin-top:.25rem; font-size:1.05rem; }
.tracking-chip-list { display:flex; flex-wrap:wrap; gap:.5rem; margin-top:.75rem; }
.tracking-chip { display:inline-flex; align-items:center; border:1px solid var(--line); border-radius:999px; padding:.38rem .7rem; background:#fff; font-size:.88rem; font-weight:700; color:var(--muted); }
.tracking-warning { border-color:#d9b97c; color:#7a5a1b; }
.tracking-danger { border-color:rgba(156,47,47,.45); color:var(--brand); }
.quick-action-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:.75rem; margin-top:1rem; }
.quick-action-card { display:block; min-height:104px; padding:1rem; border:1px solid var(--line); border-radius:20px; background:#fff; transition:transform .16s ease, border-color .16s ease; }
.quick-action-card:hover { transform:translateY(-2px); border-color:rgba(31,81,69,.32); }
.quick-action-card strong { display:block; font-size:1.05rem; margin-bottom:.3rem; }
.quick-action-card span { display:block; color:var(--muted); line-height:1.35; }
.quick-action-card.primary { background:linear-gradient(135deg, rgba(31,81,69,.96), rgba(48,112,96,.9)); color:#fff; }
.quick-action-card.primary span { color:rgba(255,255,255,.82); }
.compact-footer-stats { display:flex; flex-wrap:wrap; gap:.6rem; margin-top:1.25rem; color:var(--muted); font-weight:700; }
.compact-footer-stats span { border:1px solid var(--line); border-radius:999px; background:rgba(255,255,255,.7); padding:.45rem .75rem; }
@media (max-width: 980px) {
  .operations-hero, .compact-footer-stats { align-items:stretch; }
  .operations-hero { flex-direction:column; }
  .operations-hero-count { width:100%; }
  .attention-grid, .current-outreach-metrics, .quick-action-grid { grid-template-columns:1fr; }
  .attention-card { min-height:auto; }
}

@media print {
  .site-header, .site-footer, .no-print { display:none !important; }
  body { background:#fff; }
  .volunteer-print-shell { width:100%; margin:0; }
  .volunteer-print-card, .feature-card, .form-card { box-shadow:none; border:1px solid #ddd; }
}
@media (max-width:980px){ .signature-line-grid { grid-template-columns:1fr; } }


.agreement-scroll-wrap { margin-top:1rem; }
.volunteer-agreement-box { max-height:24rem; overflow-y:auto; padding:1rem 1rem .25rem; border:1px solid rgba(15,23,42,.12); border-radius:18px; background:#fffaf5; }
.volunteer-agreement-document { padding:1rem 0 0; }
.volunteer-agreement-section + .volunteer-agreement-section { margin-top:1rem; }
.volunteer-agreement-section h3 { margin:0 0 .5rem; font-size:1rem; letter-spacing:.02em; }
.volunteer-agreement-section p { margin:.35rem 0; line-height:1.5; }
.volunteer-print-page { background:#f5f1ea; margin:0; }
.volunteer-print-document { width:min(920px, calc(100% - 2rem)); margin:2rem auto; background:#fff; border:1px solid rgba(15,23,42,.12); border-radius:24px; padding:1.5rem; box-shadow:var(--shadow); }
.volunteer-print-header h1 { margin:.2rem 0; }
.volunteer-print-header p { margin:0; font-weight:700; color:#5c4524; }
@media print {
  .volunteer-print-page { background:#fff; }
  .volunteer-print-document { width:100%; margin:0; border:none; border-radius:0; box-shadow:none; padding:0; }
}


.partners-hero { padding-bottom: 1.5rem; }
.partners-hero-grid { display:grid; grid-template-columns: 2fr 1fr; gap:1.5rem; align-items:start; }
.partners-sidecard { padding:1.35rem; }
.partners-checklist { margin:0 0 1rem 1.1rem; }
.partners-cta-row { display:flex; gap:.75rem; flex-wrap:wrap; margin-top:1rem; }
.partners-levels-section { padding-top: 1rem; }
.partners-tier-grid { display:grid; grid-template-columns: repeat(2, 1fr); gap:1.25rem; }
.partner-tier-card { position:relative; overflow:hidden; }
.partner-tier-card::before { content:''; position:absolute; inset:0 auto auto 0; width:100%; height:5px; background:linear-gradient(90deg, rgba(180,116,52,.95), rgba(232,196,142,.75)); }
.partner-tier-head { display:flex; gap:1rem; justify-content:space-between; align-items:flex-start; margin-bottom:.9rem; }
.partner-tier-head p { margin:.2rem 0 0; color:var(--muted); }
.partner-name-list { list-style:none; padding:0; margin:0; display:grid; gap:.75rem; }
.partner-name-list li { border-top:1px solid var(--line); padding-top:.75rem; }
.partner-name-list li:first-child { border-top:0; padding-top:0; }
.partner-name-row { display:flex; justify-content:space-between; gap:1rem; align-items:flex-start; }
.partner-name { font-weight:700; }
.partner-amount { font-weight:800; color:var(--brand); white-space:nowrap; }
.partner-admin-meta { display:flex; flex-wrap:wrap; gap:.5rem 1rem; color:var(--muted); font-size:.9rem; margin-top:.2rem; }
.partner-admin-details { margin-top:.45rem; }
.partner-admin-details summary { cursor:pointer; font-weight:700; color:var(--brand); }
.partner-admin-history { margin-top:.45rem; padding:.75rem; border-radius:14px; background:#f8f5f1; border:1px solid var(--line); display:grid; gap:.25rem; font-size:.92rem; }
.partners-admin-note { margin-bottom:1rem; }
.partners-empty-state { text-align:center; padding:2rem; }
@media (max-width: 900px) {
  .partners-hero-grid, .partners-tier-grid { grid-template-columns: 1fr; }
}


.cms-post-row .action-row{margin-top:.4rem;display:flex;gap:.75rem;flex-wrap:wrap}
.update-list-card{display:grid;grid-template-columns:minmax(180px,240px) minmax(0,1fr);gap:1.1rem;align-items:start}
.update-article .update-gallery-item{margin:0}
.update-article .update-gallery-item img{display:block}
@media (max-width:640px){
  .update-list-card{grid-template-columns:1fr}
  .cms-post-row-top{grid-template-columns:1fr}
  .cms-post-row-top img{width:100%;height:auto;aspect-ratio:16 / 9}
}


/*
Revision History
2026-05-12 | Build 0.164 | Added Corporate Partners and Programs & Community Impact public page layouts, document cards, program cards, and responsive sponsor sections.
*/
.corporate-hero, .programs-hero { padding-bottom: 2rem; }
.corporate-hero-grid, .programs-hero-grid { display:grid; grid-template-columns: minmax(0, 1.65fr) minmax(300px, .85fr); gap:1.5rem; align-items:stretch; }
.corporate-hero-card, .programs-hero-card { background:linear-gradient(135deg, rgba(31,81,69,.96), rgba(48,112,96,.9)); color:#fff; display:flex; flex-direction:column; justify-content:center; }
.corporate-hero-card p, .programs-hero-card p { color:rgba(255,255,255,.84); }
.corporate-card-kicker { display:inline-flex; align-self:flex-start; margin-bottom:.75rem; padding:.35rem .7rem; border-radius:999px; background:rgba(255,255,255,.16); font-size:.82rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.corporate-section-head { margin-bottom:1.25rem; }
.corporate-check-list { margin:0 0 0 1.1rem; }
.corporate-impact-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1.25rem; margin-top:1.25rem; }
.corporate-impact-grid .mini-panel span, .campaign-timeline-grid .mini-panel span { display:block; color:var(--brand); font-weight:800; letter-spacing:.04em; text-transform:uppercase; font-size:.78rem; margin-bottom:.45rem; }
.corporate-impact-grid .mini-panel strong, .campaign-timeline-grid .mini-panel strong { display:block; font-size:1.1rem; margin-bottom:.35rem; }
.corporate-opportunity-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1.25rem; margin-top:1.25rem; }
.corporate-opportunity-card h3, .corporate-doc-card h3, .program-card h3 { font-family:'Fraunces', serif; margin-top:0; }
.corporate-logo-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; margin-top:1.25rem; }
.corporate-doc-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1.25rem; margin-top:1.25rem; }
.corporate-doc-card { display:flex; flex-direction:column; gap:.55rem; }
.corporate-doc-card .button { align-self:flex-start; margin-top:auto; }
.corporate-doc-card-missing { border-style:dashed; }
.corporate-doc-card code { white-space:normal; word-break:break-word; font-size:.88rem; }
.corporate-inquiry-card .button-row { margin-top:1.2rem; }
.program-preview-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; margin-top:1.25rem; }
.program-preview-card { border:1px solid var(--line); border-radius:22px; background:#fff; padding:1.15rem; }
.program-preview-card span { display:block; font-weight:800; color:var(--brand); margin-bottom:.35rem; }
.program-preview-card p { color:var(--muted); margin:0; }
.program-card-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.25rem; margin-top:1.25rem; }
.program-card { overflow:hidden; padding:0; display:flex; flex-direction:column; }
.program-card img, .impact-report-card img { width:100%; display:block; object-fit:cover; }
.program-card img { aspect-ratio: 4 / 3; }
.program-card-body { padding:1.25rem; display:flex; flex-direction:column; gap:.6rem; }
.program-card-body p { margin:0; }
.program-sponsor-note { margin-top:.35rem; border-radius:18px; background:#f8f5f1; border:1px solid var(--line); padding:.85rem; color:var(--muted); display:grid; gap:.25rem; }
.program-sponsor-note strong { color:var(--brand); }
.program-image-placeholder { aspect-ratio:4/3; display:flex; align-items:center; justify-content:center; background:linear-gradient(135deg, rgba(31,81,69,.10), rgba(180,116,52,.14)); color:var(--brand); font-weight:900; letter-spacing:.08em; text-transform:uppercase; text-align:center; padding:1rem; }
.impact-report-card { overflow:hidden; }
.impact-report-card img { border-radius:18px; border:1px solid var(--line); }
.campaign-timeline-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1.25rem; margin-top:1.25rem; }
@media (max-width:1100px) {
  .corporate-doc-grid, .program-card-grid { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:980px) {
  .corporate-hero-grid, .programs-hero-grid, .corporate-impact-grid, .corporate-opportunity-grid, .corporate-logo-grid, .corporate-doc-grid, .program-preview-grid, .program-card-grid, .campaign-timeline-grid { grid-template-columns:1fr; }
  .corporate-hero-card, .programs-hero-card { min-height:auto; }
}

/*
Revision History
2026-05-12 | Build 0.165 | Added program photo story layouts, campaign galleries, current-needs cards, and corporate banner photo grid.
*/
.programs-photo-hero { overflow:hidden; }
.photo-story-stack { display:grid; gap:.8rem; }
.photo-story-stack img { width:100%; display:block; object-fit:cover; border-radius:24px; border:1px solid rgba(255,255,255,.42); box-shadow:var(--shadow); }
.story-photo-large { aspect-ratio: 16 / 10; }
.story-photo-row { display:grid; grid-template-columns:1fr 1fr; gap:.8rem; }
.story-photo-row img { aspect-ratio: 1 / 1; }
.program-card-grid-featured { grid-template-columns:repeat(3,minmax(0,1fr)); }
.campaign-feature-grid { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:1.5rem; align-items:center; }
.campaign-feature-grid-reverse { grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); }
.campaign-feature-grid-reverse .campaign-copy { order:2; }
.campaign-feature-grid-reverse .campaign-gallery-grid { order:1; }
.campaign-copy h2 { margin-top:.25rem; }
.campaign-impact-list { display:grid; gap:.75rem; margin-top:1.25rem; }
.campaign-impact-list div { border:1px solid var(--line); background:rgba(255,255,255,.74); border-radius:18px; padding:.85rem 1rem; }
.campaign-impact-list strong { display:block; color:var(--brand); margin-bottom:.2rem; }
.campaign-impact-list span { display:block; color:var(--muted); line-height:1.35; }
.campaign-gallery-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.65rem; }
.campaign-gallery-grid img { width:100%; aspect-ratio:1 / 1; object-fit:cover; border-radius:18px; border:1px solid var(--line); box-shadow:0 10px 24px rgba(15,23,42,.08); background:#fff; }
.campaign-gallery-grid img:first-child { grid-column:span 2; grid-row:span 2; }
.current-needs-grid .current-campaign-card { align-self:stretch; display:flex; flex-direction:column; justify-content:center; }
.current-needs-note { margin-top:1rem; }
.partner-banner-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; margin-top:1.25rem; }
.partner-banner-grid figure { margin:0; border-radius:22px; overflow:hidden; background:#fff; border:1px solid var(--line); box-shadow:var(--shadow); }
.partner-banner-grid img { display:block; width:100%; aspect-ratio: 4 / 3; object-fit:cover; }
@media (max-width:1100px) {
  .program-card-grid-featured { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .campaign-feature-grid, .campaign-feature-grid-reverse { grid-template-columns:1fr; }
  .campaign-feature-grid-reverse .campaign-copy, .campaign-feature-grid-reverse .campaign-gallery-grid { order:initial; }
}
@media (max-width:760px) {
  .story-photo-row, .program-card-grid-featured, .partner-banner-grid { grid-template-columns:1fr; }
  .campaign-gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .campaign-gallery-grid img:first-child { grid-column:span 2; grid-row:span 1; aspect-ratio:16 / 10; }
}


/* Build 0.206 global editable-control visibility override.
   Purpose: make real controls stand out from white cards on admin/mobile screens without page-by-page edits. */
input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="hidden"]):not([type="submit"]):not([type="button"]):not([type="reset"]),
select,
textarea,
.form-control,
.cms-field input,
.cms-field textarea,
.cms-repeatable-card input[type="text"],
.cms-repeatable-card input[type="number"],
.cms-repeatable-card textarea,
.resource-search-form input {
  background-color: #f3f4f6 !important;
  border-color: #aeb8c6 !important;
  color: var(--ink) !important;
  box-shadow: inset 0 1px 2px rgba(15,23,42,.10) !important;
}

input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="hidden"]):not([type="submit"]):not([type="button"]):not([type="reset"]):focus,
select:focus,
textarea:focus,
.form-control:focus {
  background-color: #ffffff !important;
  border-color: #64748b !important;
  outline: 3px solid rgba(100, 116, 139, .22) !important;
  box-shadow: inset 0 1px 2px rgba(15,23,42,.10), 0 0 0 3px rgba(100,116,139,.16) !important;
}

input[type="checkbox"],
input[type="radio"] {
  width: 1.15rem !important;
  height: 1.15rem !important;
  min-width: 1.15rem !important;
  max-width: 1.15rem !important;
  padding: 0 !important;
  margin: 0 .55rem 0 0 !important;
  display: inline-block !important;
  vertical-align: middle !important;
  accent-color: var(--brand);
  border: 1px solid #64748b !important;
  background-color: #f3f4f6 !important;
  box-shadow: 0 1px 2px rgba(15,23,42,.18) !important;
}

input[type="checkbox"] + label,
input[type="radio"] + label,
label > input[type="checkbox"],
label > input[type="radio"] {
  vertical-align: middle !important;
}

.checkbox,
.checkbox-card,
.cms-checkline {
  align-items: center !important;
}

.checkbox input[type="checkbox"],
.checkbox input[type="radio"],
.checkbox-card input[type="checkbox"],
.checkbox-card input[type="radio"],
.cms-checkline input[type="checkbox"],
.cms-checkline input[type="radio"] {
  margin-top: 0 !important;
}

/* Build 0.208 client checkbox-row alignment refinement.
   Keeps checkboxes immediately to the left of their labels on the client editor. */
.checkbox-row,
.pin-row label.checkbox-row {
  display: inline-flex !important;
  align-items: center !important;
  gap: .45rem !important;
  width: auto !important;
  margin: .2rem .9rem .2rem 0 !important;
  line-height: 1.25 !important;
}

.checkbox-row input[type="checkbox"],
.checkbox-row input[type="radio"],
.pin-row label.checkbox-row input[type="checkbox"],
.pin-row label.checkbox-row input[type="radio"] {
  margin: 0 !important;
  flex: 0 0 auto !important;
}

.checkbox-row span,
.pin-row label.checkbox-row span {
  display: inline !important;
  margin: 0 !important;
}

.pin-row {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: .35rem .9rem !important;
  align-items: center !important;
}



/* Build 0.209 client independent-column layout refinement.
   Prevents short right-side panels from leaving large blank grid-row gaps beside tall left-side panels. */
.client-masonry-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr);
  gap: 1.25rem;
  align-items: start;
}

.client-layout-column {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  min-width: 0;
}

.client-layout-column > .form-card {
  width: 100%;
}

@media (max-width: 980px) {
  .client-masonry-layout {
    grid-template-columns: 1fr;
  }
}

/* 2026-05-20 | Build 0.236 | Community Update article images preserve natural aspect ratio; thumbnail/list images still use cover. */
.update-article .update-gallery-item img {
  width: 100%;
  max-width: 100%;
  height: auto;
  aspect-ratio: auto;
  object-fit: contain;
}


/* 2026-05-20 | Build 0.238 | Public image rendering Phase B: explicit no-stretch defaults for long-form public image areas.
   Classification: article/memorial content = contain/preserve; cards, thumbnails, banners, and tiled galleries keep their existing cover/fill rules. */
.update-article .update-gallery-item img,
.legacy-gallery img {
  max-width: 100%;
  height: auto;
  object-fit: contain;
}


/* 2026-05-20 | Build 0.239 | Shared CMS media display helpers.
   These utilities centralize display intent without changing upload/storage behavior. */
.cms-media {
  max-width: 100%;
  height: auto;
}
.cms-media--contain,
.cms-media--natural {
  object-fit: contain;
}
.cms-media--cover {
  object-fit: cover;
}


@media (max-width: 760px) {
  /* Build 0.244: give mobile banners enough vertical room so title/body/buttons are not clipped. */
  .home-banner-shell { min-height: 560px; }
  .home-banner-slide { padding: 1.65rem 1.45rem 4.75rem; align-items: center; }
  .home-banner-copy h2 { font-size: clamp(2rem, 9vw, 2.85rem); line-height: 1.02; }
  .home-banner-copy .rich-text { font-size: 1rem; line-height: 1.35; }
  .home-banner-copy .btn,
  .home-banner-copy .button { margin-top: .85rem; }
  .home-banner-dots { bottom: 1.4rem; }

  .home-banner-mode-contain::before { background-position: top center; background-size: auto 46%; opacity: .72; }
  .home-banner-mode-contain .home-banner-copy { margin-left: 0; margin-top: 11.25rem; padding: 1rem; }
  .home-banner-mode-split,
  .home-banner-mode-split-right { grid-template-columns: 1fr; padding: 1rem 1rem 4.5rem; align-content: start; }
  .home-banner-mode-split-right .home-banner-split-image,
  .home-banner-mode-split-right .home-banner-copy { order: initial; }
  .home-banner-split-image { min-height: 170px; max-height: 220px; }
}

/* 2026-05-29 | Build 0.271 | Made inline identity DOB prompt stand out and avoided browser date partial-entry auto-conversion. */
/* 2026-05-29 | Build 0.269 | Keep registration language/help panel in normal scroll flow and style hidden inline identity prompt. */
.registration-layout .language-card {
  position: static;
  top: auto;
}
.application-identity-inline-panel {
  grid-column: 1 / -1;
  margin: 0.35rem 0 0.65rem;
  padding: 1rem;
  border: 1px solid rgba(151, 31, 43, 0.28);
  border-left: 5px solid var(--primary);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.88);
  box-shadow: 0 12px 30px rgba(74, 35, 25, 0.08);
}
.application-identity-inline-panel[hidden],
.application-identity-dob-request[hidden],
.application-identity-offer[hidden],
.application-identity-inline-panel [hidden] {
  display: none !important;
}
.application-identity-dob-request label {
  max-width: 260px;
}

.identity-dob-label {
  color: var(--primary);
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.025em;
}
.identity-offer-message {
  margin: 0 0 0.75rem;
  font-weight: 700;
  color: var(--ink);
}
.button-row.compact {
  gap: 0.45rem;
  flex-wrap: wrap;
}

/* 2026-05-29 | Build 0.273 | SMS consent wording for registration and inline identity text-link opt-in. */
.sms-field-note {
  display: block;
  margin-top: 0.35rem;
  font-size: 0.78rem;
  line-height: 1.35;
}
.sms-consent-checkbox,
.identity-sms-consent {
  align-items: flex-start;
  gap: 0.55rem;
  line-height: 1.4;
}
.sms-consent-checkbox {
  margin-top: 0.75rem;
  padding: 0.8rem 0.9rem;
  border: 1px solid rgba(151, 31, 43, 0.18);
  border-radius: 16px;
  background: rgba(255,255,255,0.72);
}
.identity-sms-consent {
  margin: 0 0 0.75rem;
  padding: 0.75rem 0.85rem;
  border: 1px solid rgba(151, 31, 43, 0.16);
  border-radius: 14px;
  background: rgba(151, 31, 43, 0.045);
}
.identity-sms-consent[hidden] {
  display: none !important;
}

/* 2026-06-01 | Build 0.290 | Prominent bilingual application submission success notice. */
.registration-success-panel {
  grid-column: 1 / -1;
  padding: 1.35rem 1.45rem;
  margin-bottom: 1.25rem;
  border: 2px solid rgba(31, 81, 69, 0.28);
  border-radius: 22px;
  background: rgba(255, 253, 249, 0.96);
  box-shadow: 0 18px 40px rgba(31, 81, 69, 0.14);
  outline: none;
}
.registration-success-panel[hidden] {
  display: none !important;
}
.registration-success-panel h2 {
  margin: 0.35rem 0 0.75rem;
  color: var(--forest);
  font-size: clamp(1.65rem, 5vw, 2.45rem);
  line-height: 1.08;
}
.registration-success-panel p {
  margin: 0.65rem 0;
  color: var(--ink);
  font-size: 1.05rem;
  line-height: 1.48;
}
.registration-success-panel a {
  color: var(--brand-dark);
  text-decoration: underline;
  text-underline-offset: 0.15em;
}
@media (max-width: 720px) {
  .registration-success-panel {
    padding: 1.2rem 1.05rem;
    border-radius: 18px;
  }
  .registration-success-panel p {
    font-size: 1rem;
  }
}
