/* FAMES MANAGEMENT — black theme for the public website & invitation pages.
   Loaded after base.css + site.css; only applies to <body class="theme-dark">. */
body.theme-dark {
  color-scheme: dark;
  --bg: #0B0C0C;              /* page */
  --surface: #151716;         /* cards, panels */
  --surface-2: #1D201F;       /* raised / hover */
  --line: #2A2E2C;
  --ink: #FFFFFF;             /* headings, frames */
  --ink-700: #E5E7E6;
  --charcoal: #DCE0DE;        /* body text (14.6:1) */
  --muted: #9BA39F;           /* secondary text (7.6:1) */
  --mint: var(--surface); --sage: var(--surface); --sand: var(--surface);   /* no pastels */
  --accent: #3DCB7F;          /* emerald on black (10:1); buttons use black text on it */
  --accent-700: #2FA866;
  --accent-50: rgba(61, 203, 127, .12);
  --accent-bright: #3DCB7F;
  --wa: #3DCB7F;
  --sage-ink: #7FE0AA; --mint-ink: #7FE0AA; --sand-ink: #E7C27A;
  --danger: #FF8A80; --danger-bg: #2A1513;
  --shadow-sm: none;
  --shadow: 0 10px 30px -12px rgba(0, 0, 0, .8);
  --shadow-lg: 0 30px 60px -24px rgba(0, 0, 0, .9);
  --focus: 0 0 0 3px var(--bg), 0 0 0 5px var(--accent);
  background: var(--bg); color: var(--charcoal);
}
.theme-dark ::selection { background: var(--accent); color: #0B0C0C; }

/* Buttons: white primary, emerald with black text, outline */
.theme-dark .btn { --fg: #0B0C0C; }
.theme-dark .btn-primary { --bg: #FFFFFF; --fg: #0B0C0C; }
.theme-dark .btn-primary:hover { --bg: var(--accent); --fg: #0B0C0C; }
.theme-dark .btn-ghost { --bg: transparent; --fg: #fff; border-color: rgba(255,255,255,.55); }
.theme-dark .btn-ghost:hover { --bg: rgba(255,255,255,.08); border-color: #fff; }
.theme-dark .btn-soft { --bg: var(--surface-2); --fg: #fff; }
.theme-dark .btn-light { --bg: #fff; --fg: #0B0C0C; }
.theme-dark .btn-whatsapp { --bg: var(--wa); --fg: #0B0C0C; }
.theme-dark .btn-whatsapp:hover { --bg: #fff; }
.theme-dark .skip-link, .theme-dark .skip-link:focus { color: #0B0C0C; }

/* Surfaces that were white or pastel */
.theme-dark .card, .theme-dark .portfolio-card { background: var(--surface); border-color: var(--line); box-shadow: none; }
.theme-dark .section-tint, .theme-dark .steps-wrap { background: var(--surface); border: 1px solid var(--line); }
.theme-dark .steps li { background: var(--surface-2); }
.theme-dark .steps li:hover { background: #242826; }
.theme-dark .float-card { background: var(--surface-2); border: 1px solid var(--line); }
.theme-dark .icon-badge, .theme-dark .icon-badge.sm, .theme-dark .service-text .icon-badge { background: var(--surface-2); color: var(--accent); }
.theme-dark .icon-badge.wa { background: var(--wa); color: #0B0C0C; }
.theme-dark .tone-lavender, .theme-dark .tone-sage, .theme-dark .tone-peach { background-color: var(--surface-2); }
.theme-dark .tag, .theme-dark .tag-peach, .theme-dark .tag-sage { background: transparent; color: var(--accent); border: 1px solid rgba(61,203,127,.45); }
.theme-dark .notice { background: var(--surface); border: 1px solid var(--line); color: var(--charcoal); }
.theme-dark .company-logo { border-color: var(--line); }
.theme-dark .company-initials { color: #0B0C0C; }

/* Header & nav */
.theme-dark .site-header { background: rgba(11, 12, 12, .86); }
.theme-dark .site-header.is-scrolled { box-shadow: 0 1px 0 var(--line); }
.theme-dark .site-nav a:not(.btn) { color: var(--charcoal); }
.theme-dark .site-nav a:not(.btn):hover, .theme-dark .site-nav a[aria-current="page"] { background: var(--surface-2); color: #fff; }
.theme-dark .site-nav a[aria-current="page"] { box-shadow: inset 0 -2px 0 var(--accent); }
.theme-dark .nav-toggle { background: var(--surface-2); }
.theme-dark .nav-toggle span:not(.sr-only) { background: #fff; }
@media (max-width: 900px) { .theme-dark .site-nav { background: var(--bg); border-bottom: 1px solid var(--line); } }

/* Logo: the black artwork becomes white on black */
.theme-dark .logo-img { filter: invert(1); mix-blend-mode: screen; }
.theme-dark .site-footer .brand-footer { background: none; padding: 0; }

/* Typography accents */
.theme-dark .eyebrow { color: var(--muted); }
.theme-dark .eyebrow .dot { background: var(--accent); box-shadow: 14px 0 0 rgba(255,255,255,.55), 28px 0 0 rgba(255,255,255,.22); }
.theme-dark .lead { color: var(--charcoal); }
.theme-dark a.link-arrow, .theme-dark .prose a { color: var(--accent); }

/* Photo placeholders: neutral charcoal instead of pastel tints */
.theme-dark .photo-ph { color: var(--muted); border-color: rgba(255,255,255,.16); }
.theme-dark .photo-ph::before { background: radial-gradient(circle at 20% 15%, rgba(255,255,255,.05), transparent 45%); }
.theme-dark .ph-chip { background: rgba(255,255,255,.08); color: var(--charcoal); }
.theme-dark .ph-text { background: rgba(231, 194, 122, .1); outline-color: rgba(231, 194, 122, .5); color: var(--sand-ink); }

/* Lists, pills, filters */
.theme-dark .checklist svg { background: var(--accent); color: #0B0C0C; }
.theme-dark .filter-pill { background: transparent; border-color: var(--line); color: var(--charcoal); }
.theme-dark .filter-pill:hover { border-color: var(--accent); color: #fff; }
.theme-dark .filter-pill[aria-current="page"] { background: #fff; border-color: #fff; color: #0B0C0C; }
.theme-dark .social a { background: var(--surface-2); color: #fff; }
.theme-dark .social a:hover { background: var(--accent); color: #0B0C0C; }
.theme-dark .step-n { color: var(--accent); opacity: .8; }

/* Phone mock-up on the home page */
.theme-dark .phone-mock { background: #000; border: 1px solid var(--line); }
.theme-dark .phone-inner { background: var(--surface); }
.theme-dark .phone-cover { background: linear-gradient(135deg, #1D201F, #0F3D25 70%, #167A43); }
.theme-dark .phone-title { color: #fff; }
.theme-dark .choice, .theme-dark .phone-stepper { background: var(--surface-2); border-color: var(--line); color: var(--charcoal); }
.theme-dark .choice.on { background: rgba(61,203,127,.14); color: var(--accent); border-color: var(--accent); }
.theme-dark .phone-btn { background: #fff; color: #0B0C0C; }

/* Call-to-action band & footer */
.theme-dark .cta-band { background: var(--surface); border: 1px solid var(--line); }
.theme-dark .cta-band::after { background: radial-gradient(circle, rgba(61,203,127,.22), transparent 70%); }
.theme-dark .site-footer { background: #050606; border-top: 1px solid var(--line); }
.theme-dark .site-footer .social a { background: var(--surface-2); }
.theme-dark .site-footer .social a:hover { background: var(--accent); color: #0B0C0C; }

/* Forms */
.theme-dark label, .theme-dark legend { color: #fff; }
.theme-dark input, .theme-dark select, .theme-dark textarea { background: var(--surface-2); color: #fff; border-color: #3A3F3C; }
.theme-dark input:hover, .theme-dark select:hover, .theme-dark textarea:hover { border-color: #59605C; }
.theme-dark input:focus, .theme-dark select:focus, .theme-dark textarea:focus { border-color: var(--accent); box-shadow: 0 0 0 3px rgba(61,203,127,.25); }
.theme-dark ::placeholder { color: #7D8581; }
.theme-dark .alert-error { background: var(--danger-bg); color: #FFB4AB; border-color: #5C2620; }
.theme-dark .alert-info { background: #121A24; color: #B9D3F0; border-color: #24364D; }
.theme-dark .alert-success { background: rgba(61,203,127,.1); color: var(--sage-ink); border-color: rgba(61,203,127,.35); }
.theme-dark .alert-warn { background: #241E0E; color: #F1D27A; border-color: #4D3F17; }

/* Status pills (dark variants, still icon + text) */
.theme-dark .s-attending { background: rgba(61,203,127,.12); color: #7FE0AA; border-color: rgba(61,203,127,.4); }
.theme-dark .s-declined { background: rgba(255,138,128,.1); color: #FFB4AB; border-color: rgba(255,138,128,.35); }
.theme-dark .s-pending { background: rgba(231,194,122,.1); color: #F1D27A; border-color: rgba(231,194,122,.35); }
.theme-dark .s-checked { background: var(--accent); color: #0B0C0C; }
.theme-dark .s-neutral { background: var(--surface-2); color: var(--charcoal); border-color: var(--line); }
.theme-dark .s-demo { background: #241E0E; color: #F1D27A; border-color: #4D3F17; }

/* Invitation pages */
.theme-dark.page-invite { background: var(--bg); }
.theme-dark .demo-banner { background: #241E0E; color: #F1D27A; border-bottom-color: #4D3F17; }
.theme-dark .invite-details li { background: var(--surface-2); }
.theme-dark .invite-note { background: var(--surface-2); }
.theme-dark .choice-ui { background: var(--surface-2); border-color: var(--line); color: #fff; }
.theme-dark .choice-card input[value="attending"]:checked + .choice-ui { background: rgba(61,203,127,.14); border-color: var(--accent); color: var(--accent); }
.theme-dark .choice-card input[value="declined"]:checked + .choice-ui { background: rgba(231,194,122,.12); border-color: var(--sand-ink); color: var(--sand-ink); }
.theme-dark .qr { border-color: var(--line); }   /* QR stays black-on-white so phones can scan it */
.theme-dark .code { color: var(--accent); }
