/*
Theme Name: Campbells of Maidendown Archive
Theme URI: https://campbellsofmaidendown.com/
Author: Campbells of Maidendown
Description: A dark, museum-inspired genealogy theme created for the Campbells of Maidendown family archive.
Version: 2.1.0
Requires at least: 6.4
Requires PHP: 7.4
Text Domain: campbells-maidendown
*/

:root {
  --cm-bg: #13110e;
  --cm-bg-soft: #1b1814;
  --cm-panel: #211e19;
  --cm-panel-light: #2a251f;
  --cm-text: #efece6;
  --cm-muted: #b8b0a2;
  --cm-gold: #7a603e;
  --cm-gold-light: #c3a77d;
  --cm-gold-pale: #e3c99f;
  --cm-line: rgba(122, 96, 62, .48);
  --cm-shadow: 0 30px 80px rgba(0,0,0,.38);
  --cm-serif: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  --cm-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; color-scheme: dark; }
body { margin:0; color:var(--cm-text); background:radial-gradient(circle at 78% 10%,rgba(122,96,62,.12),transparent 32%),repeating-linear-gradient(90deg,transparent 0,transparent 89px,rgba(122,96,62,.035) 90px),var(--cm-bg); font-family:var(--cm-sans); font-size:16px; line-height:1.7; overflow-x:hidden; }
body::before { content:""; position:fixed; inset:0; pointer-events:none; z-index:999; opacity:.16; background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.12'/%3E%3C/svg%3E"); mix-blend-mode:soft-light; }
img { max-width:100%; height:auto; display:block; }
a { color:inherit; text-decoration:none; }
button,input,textarea,select { font:inherit; }
button,input,textarea,select,a { border-radius:0; }
:focus-visible { outline:3px solid var(--cm-gold-pale); outline-offset:3px; }
::selection { background:var(--cm-gold-light); color:var(--cm-bg); }
.screen-reader-text { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.screen-reader-text:focus { clip:auto!important; width:auto; height:auto; padding:12px 18px; margin:10px; background:var(--cm-text); color:var(--cm-bg); z-index:99999; }
.cm-honeypot { position:absolute!important; left:-9999px!important; width:1px!important; height:1px!important; overflow:hidden!important; }

/* WordPress admin bar: replaces the default blue visible to logged-in editors. */
html body.admin-bar #wpadminbar { background:#13110e!important; background-image:none!important; border-bottom:1px solid #7a603e!important; box-shadow:none!important; }
html body.admin-bar #wpadminbar #wp-toolbar,
html body.admin-bar #wpadminbar .ab-top-menu,
html body.admin-bar #wpadminbar .ab-top-secondary { background:#13110e!important; background-image:none!important; }
html body.admin-bar #wpadminbar .ab-item,
html body.admin-bar #wpadminbar a.ab-item,
html body.admin-bar #wpadminbar > #wp-toolbar span.ab-label { color:#efece6!important; }
html body.admin-bar #wpadminbar .ab-sub-wrapper { background:#211e19!important; }
html body.admin-bar #wpadminbar .ab-top-menu>li.hover>.ab-item,
html body.admin-bar #wpadminbar .ab-top-menu>li:hover>.ab-item,
html body.admin-bar #wpadminbar .ab-top-menu>li>.ab-item:focus { background:#2a251f!important; color:#e3c99f!important; }

.cm-wrap { width:min(1180px,calc(100% - 40px)); margin-inline:auto; }
.cm-wrap--wide { width:min(1500px,calc(100% - 28px)); }
.cm-section { padding:108px 0; border-top:1px solid rgba(122,96,62,.18); position:relative; }
.cm-section--compact { padding:68px 0; }
.cm-kicker { color:var(--cm-gold-light); font-size:.72rem; letter-spacing:.22em; text-transform:uppercase; font-weight:700; margin:0 0 15px; }
.cm-title { font-family:var(--cm-serif); font-size:clamp(2.55rem,6vw,5.4rem); line-height:.98; font-weight:600; margin:0; letter-spacing:-.035em; text-wrap:balance; }
.cm-title--medium { font-size:clamp(2.3rem,5vw,4.2rem); }
.cm-title--small { font-size:clamp(2rem,4vw,3.3rem); }
.cm-lead { color:var(--cm-muted); max-width:760px; font-size:1.08rem; }
.cm-lead strong { color:var(--cm-text); }
.cm-gold { color:var(--cm-gold-light); }
.cm-inline-link { color:var(--cm-gold-pale); text-decoration:underline; text-underline-offset:4px; }

.cm-update-bar { background:var(--cm-gold-pale); color:var(--cm-bg); border-bottom:1px solid #5f472e; }
.cm-update-inner { min-height:44px; display:flex; align-items:center; justify-content:center; gap:28px; font-size:.84rem; line-height:1.3; }
.cm-update-link { font-weight:800; text-transform:uppercase; letter-spacing:.09em; border-bottom:2px solid var(--cm-bg); white-space:nowrap; }
.cm-update-link:hover { opacity:.72; }
.cm-site-header { position:sticky; top:0; z-index:100; background:rgba(19,17,14,.94); backdrop-filter:blur(15px); border-bottom:1px solid rgba(122,96,62,.35); }
.admin-bar .cm-site-header { top:32px; }
.cm-header-inner { min-height:76px; display:flex; align-items:center; justify-content:space-between; gap:22px; }
.cm-brand { display:flex; align-items:center; gap:13px; min-width:0; }
.cm-brand img { width:45px; height:45px; object-fit:contain; border-radius:50%; }
.cm-brand-name { font-family:var(--cm-serif); font-size:1.28rem; font-weight:600; white-space:nowrap; }
.cm-nav { margin-left:auto; }
.cm-nav ul { display:flex; gap:22px; align-items:center; list-style:none; padding:0; margin:0; }
.cm-nav a { color:var(--cm-muted); font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; transition:color .2s ease; white-space:nowrap; }
.cm-nav a:hover,.cm-nav .current-menu-item>a { color:var(--cm-text); }
.cm-header-actions { display:flex; align-items:center; gap:10px; }
.cm-header-cta { display:inline-flex; align-items:center; min-height:40px; padding:0 14px; color:var(--cm-bg); background:var(--cm-gold-pale); font-size:.67rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; white-space:nowrap; }
.cm-header-cta:hover { background:var(--cm-text); }
.cm-menu-toggle { display:none; background:transparent; color:var(--cm-text); border:1px solid var(--cm-line); padding:9px 12px; cursor:pointer; }

.cm-hero { min-height:calc(100vh - 120px); display:grid; align-items:center; overflow:hidden; position:relative; }
.cm-hero::after { content:""; position:absolute; right:-16vw; top:-18vw; width:70vw; height:70vw; border:1px solid rgba(122,96,62,.12); border-radius:50%; box-shadow:inset 0 0 90px rgba(122,96,62,.06); }
.cm-hero-grid { display:grid; grid-template-columns:1.1fr .9fr; gap:68px; align-items:center; position:relative; z-index:2; padding:88px 0; }
.cm-hero-copy { max-width:760px; }
.cm-hero-subtitle { max-width:690px; color:var(--cm-muted); font-size:1.11rem; margin:26px 0 34px; }
.cm-button-row { display:flex; flex-wrap:wrap; gap:12px; align-items:center; margin-top:28px; }
.cm-button { display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:50px; padding:0 22px; border:1px solid var(--cm-gold-pale); color:var(--cm-bg); background:var(--cm-gold-pale); font-weight:800; letter-spacing:.1em; text-transform:uppercase; font-size:.71rem; transition:.25s ease; cursor:pointer; }
.cm-button:hover { background:var(--cm-text); border-color:var(--cm-text); color:var(--cm-bg); transform:translateY(-2px); box-shadow:0 12px 30px rgba(0,0,0,.25); }
.cm-button--secondary { color:var(--cm-text); background:transparent; border-color:var(--cm-gold); }
.cm-button--secondary:hover { background:var(--cm-gold); border-color:var(--cm-gold); color:#fff; }
.cm-button--light { background:var(--cm-bg); color:var(--cm-text); border-color:var(--cm-bg); }
.cm-button--light:hover { background:transparent; color:var(--cm-bg); border-color:var(--cm-bg); }
.cm-hero-art { min-height:520px; position:relative; display:grid; place-items:center; }
.cm-record { width:min(430px,85vw); aspect-ratio:1; border-radius:50%; background:repeating-radial-gradient(circle,#0b0a08 0 6px,#171410 7px 10px); border:1px solid rgba(122,96,62,.35); box-shadow:var(--cm-shadow); position:relative; }
.cm-record::before { content:""; position:absolute; inset:16%; border-radius:50%; background:radial-gradient(circle,var(--cm-gold) 0 8%,#3c2d1e 9% 22%,#0b0a08 23% 100%); opacity:.45; }
.cm-record-logo { position:absolute; width:58%; left:50%; top:50%; transform:translate(-50%,-50%); opacity:.68; filter:sepia(.2) brightness(.95); z-index:2; }

.cm-status-section { background:linear-gradient(90deg,rgba(122,96,62,.16),rgba(122,96,62,.035)); }
.cm-status-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:70px; align-items:center; }
.cm-status-meta { display:flex; gap:10px; flex-wrap:wrap; margin:24px 0 0; }
.cm-status-meta span { border:1px solid var(--cm-line); padding:7px 10px; color:var(--cm-gold-pale); font-size:.72rem; text-transform:uppercase; letter-spacing:.08em; }
.cm-intro-grid { display:grid; grid-template-columns:.75fr 1.25fr; gap:80px; align-items:start; }
.cm-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:52px; }
.cm-card { border:1px solid var(--cm-line); background:linear-gradient(145deg,rgba(255,255,255,.025),rgba(122,96,62,.03)); padding:22px; min-height:100%; transition:.3s ease; position:relative; overflow:hidden; }
.cm-card::after { content:""; position:absolute; inset:auto -20% -60% 20%; height:120px; background:radial-gradient(circle,rgba(122,96,62,.15),transparent 68%); }
.cm-card:hover { transform:translateY(-5px); border-color:rgba(195,167,125,.75); box-shadow:var(--cm-shadow); }
.cm-portrait { width:84px; height:104px; object-fit:cover; border:1px solid var(--cm-gold); padding:4px; background:#0b0907; margin-bottom:20px; filter:sepia(.18) contrast(1.04); }
.cm-card-label { color:var(--cm-gold-light); font-size:.63rem; letter-spacing:.18em; text-transform:uppercase; margin-bottom:7px; }
.cm-card h3 { font-family:var(--cm-serif); font-size:1.65rem; line-height:1.1; margin:0 0 12px; }
.cm-card p { color:var(--cm-muted); font-size:.92rem; margin:0; }

.cm-tree-heading { display:grid; grid-template-columns:.9fr 1.1fr; gap:72px; align-items:end; margin-bottom:34px; }
.cm-tree-showcase { background:rgba(0,0,0,.12); }
.cm-tree-frame-wrap { border:1px solid var(--cm-gold); background:#13110e; box-shadow:var(--cm-shadow); padding:8px; }
.cm-tree-frame { display:block; width:100%; height:720px; border:0; background:#13110e; }
.cm-tree-frame-wrap--full { padding:5px; }
.cm-tree-frame--full { height:min(78vh,980px); min-height:680px; }
.cm-tree-page-section { padding-top:35px; }
.cm-tree-summary { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--cm-line); border:1px solid var(--cm-line); }
.cm-tree-summary>div { background:var(--cm-panel); padding:22px; }
.cm-tree-summary strong { display:block; color:var(--cm-gold-pale); font-family:var(--cm-serif); font-size:1.35rem; }
.cm-tree-summary span { color:var(--cm-muted); font-size:.87rem; }
.cm-text-link { color:var(--cm-gold-pale); text-transform:uppercase; font-size:.67rem; letter-spacing:.15em; text-decoration:underline; text-underline-offset:5px; }
.cm-text-link--large { display:inline-block; margin-top:14px; font-size:.73rem; }

.cm-research-notice { background:linear-gradient(135deg,rgba(122,96,62,.18),rgba(19,17,14,.35)); }
.cm-notice-grid { display:grid; grid-template-columns:100px 1fr; gap:38px; align-items:start; }
.cm-notice-mark { display:grid; place-items:center; width:84px; height:84px; border:1px solid var(--cm-gold-pale); color:var(--cm-gold-pale); font-family:var(--cm-serif); font-size:3rem; }
.cm-notice-grid p:not(.cm-kicker) { max-width:860px; color:var(--cm-muted); }
.cm-ledger-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:76px; align-items:center; }
.cm-ledger-box { background:rgba(255,255,255,.045); border:1px solid rgba(255,255,255,.08); padding:32px 36px; box-shadow:var(--cm-shadow); }
.cm-ledger-row { display:grid; grid-template-columns:160px 1fr; gap:24px; padding:14px 0; border-bottom:1px solid rgba(255,255,255,.08); }
.cm-ledger-row:last-child { border-bottom:0; }
.cm-ledger-row dt { color:var(--cm-gold-light); text-transform:uppercase; font-size:.65rem; letter-spacing:.14em; font-weight:700; }
.cm-ledger-row dd { margin:0; font-size:.94rem; }
.cm-note { color:var(--cm-muted); border-left:2px solid var(--cm-gold); padding-left:16px; font-size:.86rem; margin-top:22px; }
.cm-lineage-list { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:38px; }
.cm-person { border:1px solid rgba(122,96,62,.32); padding:18px 20px; background:rgba(255,255,255,.018); }
.cm-person strong { font-family:var(--cm-serif); font-size:1.25rem; display:block; }
.cm-person span { color:var(--cm-muted); font-size:.86rem; }
.cm-timeline { position:relative; margin-top:54px; display:grid; grid-template-columns:repeat(5,1fr); gap:16px; }
.cm-timeline::before { content:""; position:absolute; left:4%; right:4%; top:19px; height:1px; background:var(--cm-line); }
.cm-era { position:relative; padding-top:55px; }
.cm-era::before { content:""; position:absolute; top:12px; left:0; width:15px; height:15px; border:1px solid var(--cm-gold); background:var(--cm-bg); border-radius:50%; }
.cm-era h3 { font-family:var(--cm-serif); margin:0 0 8px; font-size:1.35rem; }
.cm-era p { color:var(--cm-muted); font-size:.88rem; margin:0; }
.cm-homestead-grid { display:grid; grid-template-columns:1.1fr .9fr; gap:70px; align-items:center; }
.cm-map-panel { min-height:430px; border:1px solid var(--cm-line); background:linear-gradient(135deg,rgba(122,96,62,.05),transparent),repeating-linear-gradient(15deg,transparent 0 55px,rgba(122,96,62,.06) 56px); position:relative; overflow:hidden; }
.cm-map-line { position:absolute; height:1px; background:var(--cm-gold); opacity:.5; transform-origin:left center; }
.cm-map-line.one { width:72%; left:9%; top:72%; transform:rotate(-3deg); }.cm-map-line.two { width:54%; left:24%; top:38%; transform:rotate(34deg); }.cm-map-line.three { width:39%; left:42%; top:59%; transform:rotate(-54deg); }
.cm-map-pin { position:absolute; padding:7px 10px; border:1px solid var(--cm-gold); background:var(--cm-bg); color:var(--cm-text); font-size:.65rem; letter-spacing:.09em; text-transform:uppercase; }
.cm-map-pin.p1 { left:12%; top:70%; }.cm-map-pin.p2 { right:11%; top:31%; }.cm-map-pin.p3 { left:40%; top:46%; }
.cm-headstone { border:1px solid var(--cm-line); padding:10px; margin-top:24px; max-height:260px; width:100%; object-fit:cover; filter:saturate(.65) sepia(.12); }
.cm-archive-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:40px; }
.cm-archive-card { min-height:320px; padding:28px; border:1px solid var(--cm-line); display:flex; flex-direction:column; justify-content:flex-end; background-size:cover; background-position:center; position:relative; overflow:hidden; }
.cm-archive-card::before { content:""; position:absolute; inset:0; background:linear-gradient(to top,rgba(19,17,14,.98),rgba(19,17,14,.25)); }
.cm-archive-card>* { position:relative; z-index:1; }.cm-archive-card h3 { font-family:var(--cm-serif); font-size:1.75rem; margin:0 0 10px; }.cm-archive-card p { color:var(--cm-muted); margin:0 0 18px; font-size:.9rem; }

.cm-donation-card,.cm-signup-card { display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:center; border:1px solid var(--cm-line); padding:42px; background:linear-gradient(135deg,rgba(122,96,62,.12),rgba(255,255,255,.018)); }
.cm-donation-card p,.cm-signup-card p { color:var(--cm-muted); }
.cm-donation-actions { display:grid; gap:12px; }
.cm-donation-button { min-height:56px; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:0 20px; border:1px solid var(--cm-gold-pale); color:var(--cm-text); background:rgba(122,96,62,.08); font-weight:700; }
.cm-donation-button:hover { background:var(--cm-gold-pale); color:var(--cm-bg); }
.cm-signup-card { background:var(--cm-gold-pale); color:var(--cm-bg); border-color:var(--cm-gold-pale); }
.cm-signup-card .cm-kicker,.cm-signup-card p { color:#423323; }
.cm-signup-card .cm-title { color:var(--cm-bg); }
.cm-signup-form { display:grid; grid-template-columns:1fr 1.2fr auto; gap:10px; align-items:end; }
.cm-signup-form label span { display:block; font-size:.7rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; margin-bottom:4px; }
.cm-signup-form input { width:100%; min-height:50px; border:1px solid rgba(19,17,14,.42); background:rgba(255,255,255,.42); color:var(--cm-bg); padding:0 12px; outline:none; }
.cm-signup-form input:focus { border-color:var(--cm-bg); box-shadow:0 0 0 2px rgba(19,17,14,.18); }
.cm-privacy-note { font-size:.75rem; margin-bottom:0; }

.cm-contact-grid { display:grid; grid-template-columns:.82fr 1.18fr; gap:70px; align-items:start; }
.cm-form-shell { border:1px solid var(--cm-line); padding:30px; background:rgba(255,255,255,.025); }
.cm-form { display:grid; gap:18px; }
.cm-form-row { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.cm-form label { display:block; color:var(--cm-gold-light); font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; font-weight:700; }
.cm-form input,.cm-form textarea,.cm-form select { width:100%; background:#191713; color:var(--cm-text); border:1px solid var(--cm-line); padding:13px 14px; outline:none; margin-top:5px; }
.cm-form input:focus,.cm-form textarea:focus,.cm-form select:focus { border-color:var(--cm-gold-pale); box-shadow:0 0 0 2px rgba(227,201,159,.1); }
.cm-form textarea { min-height:170px; resize:vertical; }
.cm-form input[type=file] { padding:10px; color:var(--cm-muted); }
.cm-form input[type=file]::file-selector-button { border:1px solid var(--cm-gold); background:var(--cm-panel-light); color:var(--cm-text); padding:8px 12px; margin-right:12px; cursor:pointer; }
.cm-optional { color:var(--cm-muted); font-weight:400; text-transform:none; letter-spacing:0; }
.cm-field-help { color:var(--cm-muted); font-size:.76rem; margin:6px 0 0; }
.cm-check { display:grid!important; grid-template-columns:auto 1fr; gap:10px; align-items:start; color:var(--cm-muted)!important; text-transform:none!important; letter-spacing:0!important; font-weight:400!important; line-height:1.45; }
.cm-check input { width:auto; margin:4px 0 0; accent-color:var(--cm-gold-pale); }
.cm-alert { border:1px solid var(--cm-gold); padding:12px 14px; margin-bottom:18px; color:var(--cm-gold-pale); background:rgba(122,96,62,.08); }
.cm-alert--success { border-color:#79927e; color:#d7e7d9; background:rgba(67,100,72,.18); }
.cm-alert--error { border-color:#9b5a61; color:#f1c7cb; background:rgba(126,57,72,.18); }
.cm-guidance-list { display:grid; gap:14px; margin-top:30px; }
.cm-guidance-list div { border-left:2px solid var(--cm-gold); padding-left:16px; }
.cm-guidance-list strong { display:block; font-family:var(--cm-serif); color:var(--cm-text); font-size:1.25rem; }
.cm-guidance-list span { color:var(--cm-muted); font-size:.88rem; }

.cm-page-hero { padding:118px 0 76px; border-bottom:1px solid rgba(122,96,62,.22); background:linear-gradient(135deg,rgba(122,96,62,.09),transparent 55%); }
.cm-page-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:24px; margin-top:45px; }
.cm-profile { display:grid; grid-template-columns:minmax(260px,.7fr) 1.3fr; gap:58px; align-items:start; }
.cm-profile-image { border:1px solid var(--cm-line); padding:10px; background:#0b0907; }
.cm-tabs { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:28px; }.cm-tab { padding:8px 14px; border:1px solid var(--cm-line); color:var(--cm-muted); font-size:.72rem; text-transform:uppercase; letter-spacing:.1em; }.cm-tab.is-active { color:var(--cm-text); border-color:var(--cm-gold); }
.cm-filter-row { display:flex; gap:10px; flex-wrap:wrap; margin:30px 0; }.cm-filter { background:transparent; color:var(--cm-muted); border:1px solid var(--cm-line); padding:9px 13px; cursor:pointer; }.cm-filter:hover,.cm-filter.is-active { color:var(--cm-text); border-color:var(--cm-gold); }
.cm-site-footer { border-top:1px solid rgba(122,96,62,.35); padding:42px 0; color:var(--cm-muted); background:rgba(0,0,0,.12); }
.cm-footer-inner { display:grid; grid-template-columns:1.3fr auto auto; justify-content:space-between; gap:34px; align-items:center; }
.cm-footer-title { font-family:var(--cm-serif); color:var(--cm-text); font-size:1.3rem; }
.cm-footer-links { display:flex; gap:16px; flex-wrap:wrap; }
.cm-footer-links a { color:var(--cm-gold-light); font-size:.72rem; text-transform:uppercase; letter-spacing:.08em; }
[data-reveal] { opacity:0; transform:translateY(22px); transition:opacity .75s ease,transform .75s ease; }
[data-reveal].is-visible { opacity:1; transform:none; }

@media (max-width:1120px) {
  .cm-nav ul { gap:13px; }.cm-nav a { font-size:.62rem; }.cm-header-cta { display:none; }
}
@media (max-width:920px) {
  .admin-bar .cm-site-header { top:46px; }
  .cm-nav { position:absolute; left:0; right:0; top:76px; display:none; background:rgba(19,17,14,.99); border-bottom:1px solid var(--cm-line); padding:22px; margin:0; }
  .cm-nav.is-open { display:block; }.cm-nav ul { flex-direction:column; align-items:flex-start; gap:16px; }.cm-nav a { font-size:.72rem; }
  .cm-menu-toggle { display:block; }.cm-header-cta { display:inline-flex; }
  .cm-hero-grid,.cm-intro-grid,.cm-ledger-grid,.cm-homestead-grid,.cm-contact-grid,.cm-profile,.cm-status-grid,.cm-tree-heading,.cm-donation-card,.cm-signup-card { grid-template-columns:1fr; }
  .cm-hero { min-height:auto; }.cm-hero-art { min-height:360px; }.cm-cards,.cm-lineage-list,.cm-archive-grid { grid-template-columns:repeat(2,1fr); }
  .cm-timeline { grid-template-columns:1fr; }.cm-timeline::before { left:7px; right:auto; top:0; bottom:0; width:1px; height:auto; }.cm-era { padding:0 0 28px 42px; }.cm-era::before { top:5px; left:0; }
  .cm-signup-form { grid-template-columns:1fr 1fr; }.cm-signup-form .cm-button { grid-column:1/-1; }
  .cm-footer-inner { grid-template-columns:1fr; }
}
@media (max-width:782px) { .admin-bar .cm-site-header { top:46px; } }
@media (max-width:640px) {
  .cm-wrap { width:min(100% - 28px,1180px); }.cm-section { padding:76px 0; }.cm-section--compact { padding:54px 0; }
  .cm-update-inner { flex-direction:column; gap:2px; padding:9px 0; text-align:center; }.cm-update-link { margin-top:5px; }
  .cm-brand-name { font-size:1.03rem; }.cm-brand img { width:37px; height:37px; }.cm-header-inner { min-height:68px; }.cm-header-cta { display:none; }.cm-nav { top:68px; }
  .cm-hero-grid { padding:62px 0; gap:26px; }.cm-hero-art { min-height:280px; }.cm-title { font-size:clamp(2.6rem,15vw,4.2rem); }
  .cm-cards,.cm-lineage-list,.cm-archive-grid,.cm-page-grid,.cm-tree-summary { grid-template-columns:1fr; }.cm-ledger-box,.cm-form-shell,.cm-donation-card,.cm-signup-card { padding:22px; }.cm-ledger-row { grid-template-columns:1fr; gap:5px; }
  .cm-tree-frame { height:620px; }.cm-tree-frame--full { min-height:650px; height:72vh; }.cm-notice-grid { grid-template-columns:1fr; }.cm-notice-mark { width:64px; height:64px; font-size:2.3rem; }
  .cm-form-row,.cm-signup-form { grid-template-columns:1fr; }.cm-signup-form .cm-button { grid-column:auto; }
  .cm-footer-inner { grid-template-columns:1fr; align-items:start; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; scroll-behavior:auto!important; } [data-reveal] { opacity:1; transform:none; } }
