/* /project-root/css/components.css */
:root{
  --primary:#1f5aaa; --secondary:#24335f;
  --ink-900:#0b1026; --ink-700:#1c2447; --ink-500:#3c4676; --ink-300:#7e89b9;
  --paper:#ffffff; --muted:#f4f6fb;
  --success:#2e7d32;
  --radius:18px; --shadow:0 10px 30px rgba(9,12,32,.08); --container:1140px;
  --header-bg:rgba(255,255,255,.95); --header-border:#e9edf7;
  --header-h:64px; /* NEW: used to offset fixed header */
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:hidden}
body{margin:0;font-family:Montserrat,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,'Helvetica Neue',Arial,'Noto Sans',sans-serif;background:var(--paper);color:var(--ink-900);line-height:1.5;overflow-x:hidden;padding-top:var(--header-h)} /* offset for fixed header */
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
ul{margin:0;padding:0;list-style:none}
input,textarea,select,button{font:inherit}
.container{max-width:var(--container);margin-inline:auto;padding:0 20px}
::selection{background:#fff1a8;color:#0b1026}

.sr-only{position:absolute;clip:rect(0 0 0 0);clip-path:inset(50%);width:1px;height:1px;margin:-1px;overflow:hidden;border:0;padding:0;white-space:nowrap}
.muted{color:var(--ink-300)}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border:1px solid transparent;border-radius:12px;padding:.9rem 1.15rem;font-weight:700;box-shadow:var(--shadow);transition:transform .18s ease, box-shadow .18s ease, background .25s ease, color .25s ease, border-color .25s ease}
.btn:hover{transform:translateY(-2px); box-shadow:0 12px 28px rgba(0,0,0,.12)}
.btn:active{transform:translateY(0)}
.btn--primary{background:linear-gradient(135deg,var(--primary),var(--secondary));color:#fff}
.btn--ghost{background:transparent;border-color:var(--ink-300);color:var(--ink-900)}
.btn--ghost:hover{background:var(--muted)}
.btn--success{background:var(--success);color:#fff}
.btn--neutral{background:#e6ebff;color:#0b1b5e}
.btn--small,.btn--sm{padding:.55rem .9rem;border-radius:10px;font-size:.925rem}
.input{border:1px solid #dde3fb;border-radius:12px;background:#fff;color:var(--ink-900);padding:.7rem .8rem;width:100%}

/* ===== Fixed Header (always visible) ===== */
.site-header{
  position:fixed; top:0; left:0; right:0; z-index:9999;
  background:var(--header-bg);
  border-bottom:1px solid var(--header-border);
  backdrop-filter:saturate(180%) blur(8px);
}
.nav{display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:10px 0}
.brand{display:flex;align-items:center;gap:.6rem;font-weight:800}
.brand img{width:40px;height:40px;object-fit:contain}

/* Nav links + donate color */
.site-header .brand span, .site-header .nav__menu a{ color:var(--ink-900); font-weight:700; }
.site-header .nav__menu a:hover{ opacity:.85 }
.site-header .btn--primary{ color:#fff !important; } /* ensure white text */

/* Theme toggle (moon turns white in dark mode) */
.nav__toggle{display:none;background:transparent;border:0;padding:.35rem;border-radius:8px; color:var(--ink-900); }
.nav__menu ul{display:flex;align-items:center;gap:1rem}
.nav__theme{display:flex;align-items:center}
.theme-toggle{display:inline-grid;place-items:center;border:1px solid #e2e7ff;background:#f7f8ff;border-radius:10px;padding:.35rem .55rem;cursor:pointer}
.theme-ico{stroke:currentColor;fill:none;color:#1c2447;transition:transform .35s ease}
.theme-ico .sun{opacity:1;transform-origin:center;transition:opacity .25s ease}
.theme-ico .rays line{stroke:currentColor;stroke-width:1.5}
.theme-ico .moon{opacity:0;transform-origin:center;transition:opacity .25s ease;fill:currentColor;stroke:none}

/* ===== Mobile: Off-canvas Sidebar + Backdrop ===== */
@media (max-width: 880px){
  .site-header .container.nav{ padding:10px 16px; }
  .nav__toggle{display:inline-flex}

  .nav__menu{
    position:fixed; top:var(--header-h); right:0; bottom:0; left:auto;
    width:min(78vw, 300px); height:calc(100vh - var(--header-h)); overflow-y:auto;
    background:var(--paper);
    border-left:1px solid var(--header-border);
    transform:translateX(102%); opacity:0; visibility:hidden;
    transition:transform .25s ease, opacity .2s ease, visibility 0s .25s ease;
    padding:18px 20px; will-change:transform; z-index:10001;
    box-shadow:-24px 0 40px rgba(0,0,0,.18);
  }
  .nav__menu.open{transform:translateX(0); opacity:1; visibility:visible}
  .nav__menu ul{flex-direction:column;align-items:flex-start;gap:1rem; margin-top:6px;}
  .nav__menu a{display:block; padding:6px 0;}
  /* Sidebar-only donate padding */
  .nav__menu .btn{padding:.75rem 1.1rem; font-size:1rem; border-radius:12px;}

  .nav-backdrop{
    position:fixed; inset:0; background:rgba(0,0,0,.45); backdrop-filter:blur(1px);
    opacity:0; visibility:hidden; transition:opacity .2s ease; z-index:10000;
  }
  .nav-backdrop.show{opacity:1; visibility:visible}
  html.menu-open, body.menu-open{overflow:hidden}
}

/* ===== Footer (responsive) ===== */
.site-footer{margin-top:60px;background:linear-gradient(180deg,#0f1842,#111a49);color:#fff}
.footer__grid{display:grid;grid-template-columns:2fr 1fr 1fr 1.2fr;gap:2rem;padding:48px 0}
.footer__grid h4{margin:0 0 .5rem}
.footer__grid p{margin:.25rem 0 1rem}
.footer__grid a{color:#dfe6ff}
.brand--footer img{width:36px}
.social{display:flex;gap:.6rem}
.social a{display:grid;place-items:center;width:38px;height:38px;border:1px solid rgba(255,255,255,.2);border-radius:10px}
.social i{font-size:20px;color:#fff}
.newsletter{display:flex;gap:.5rem;align-items:stretch;max-width:100%}
.input--newsletter{height:44px;border-radius:12px;flex:1 1 460px;min-width:340px}
.btn--newsletter{height:44px;display:inline-flex;align-items:center;flex:0 0 auto}
.footer__legal{border-top:1px solid rgba(255,255,255,.15);padding:14px 0;background:#0d153a}
.footer__legalInner{display:flex;gap:1rem;align-items:center;justify-content:space-between}
.footer__legal p{margin:0;color:#cbd4ff}
.credit a:hover{color:#ffd75e}

@media (max-width:1100px){ .footer__grid{grid-template-columns:1fr 1fr; row-gap:2rem} }
@media (max-width:700px){
  .newsletter{flex-direction:column}
  .input--newsletter{min-width:0;flex:1 1 auto;width:100%}
}
@media (max-width:620px){ .footer__grid{grid-template-columns:1fr} }

/* Cookie Banner */
.cookie-banner{position:fixed;inset:auto 0 0 0;background:#0c1336;color:#fff;transform:translateY(110%);transition:transform .35s ease;z-index:80}
.cookie-banner.is-visible{transform:translateY(0)}
.cookie-banner__inner{display:flex;gap:1rem;align-items:center;justify-content:space-between;padding:12px 20px}
.cookie-banner .btn--ghost{border-color:#6373bf;color:#dbe3ff}
@media (max-width: 700px){ .cookie-banner__inner{flex-direction:column;align-items:flex-start} }

/* ===== Dark Theme (navbar text + icons white) ===== */
html[data-theme="dark"]{
  --paper:#0b1026; --ink-900:#e9edff; --ink-700:#c4ccff; --ink-500:#9aa6e6; --ink-300:#7a86c9;
  --muted:#0e1640; --shadow:0 10px 30px rgba(0,0,0,.35);
  --header-bg:rgba(14,22,64,.88); --header-border:#27356f;
}
html[data-theme="dark"] .site-header{background:var(--header-bg);border-bottom-color:var(--header-border)}
html[data-theme="dark"] .site-header .brand span,
html[data-theme="dark"] .site-header .nav__menu a{ color:#ffffff; }  /* crisp white links */
html[data-theme="dark"] .theme-toggle{ background:#121b4a; border-color:#2a3a72; color:#e9edff; }
html[data-theme="dark"] .theme-ico{ color:#ffffff; }                   /* moon turns white */
html[data-theme="dark"] .nav__toggle{ color:#ffffff; }                 /* hamburger white */
html[data-theme="dark"] .nav__menu,
html[data-theme="dark"] .nav__menu.open{background:#0e1640;border-left-color:#27356f}
html[data-theme="dark"] .btn--ghost{border-color:#394b8a;color:#e9edff}
html[data-theme="dark"] .site-footer{background:linear-gradient(180deg,#0a1336,#0a143d)}
