@import url('https://fonts.googleapis.com/css2?family=Oswald:wght@400;500;600;700&family=IBM+Plex+Sans:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500;600&display=swap');

:root{
  --ink:#EDE8DC; --ink-dim:#A69C8C; --ink-faint:#6E6656;
  --canvas:#141210; --canvas2:#0D0B0A; --panel:#1B1815;
  --line:#3A352E; --gold:#C9A227; --gold-bright:#E4C155; --red:#8B2635; --green:#4A7C59;
  --mono:'IBM Plex Mono',monospace; --sans:'IBM Plex Sans',sans-serif; --display:'Oswald',sans-serif;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{background:var(--canvas); color:var(--ink); font-family:var(--sans); line-height:1.5;}
a{color:inherit;}
.wrap{max-width:1180px; margin:0 auto; padding:0 28px;}
img{max-width:100%; display:block;}

/* NAV */
nav.site-nav{
  position:sticky; top:0; z-index:50;
  background:rgba(20,18,16,0.92); backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
nav.site-nav .wrap{display:flex; align-items:center; justify-content:space-between; height:76px;}
.nav-brand{display:flex; align-items:center; gap:12px; text-decoration:none;}
.nav-brand img{height:42px; width:auto;}
.nav-brand span{font-family:var(--display); text-transform:uppercase; font-size:16px; letter-spacing:0.04em; font-weight:600;}
.nav-links{display:flex; align-items:center; gap:30px; font-family:var(--mono); font-size:12px; letter-spacing:0.06em; text-transform:uppercase;}
.nav-links a{color:var(--ink-dim); text-decoration:none; transition:color .15s;}
.nav-links a:hover, .nav-links a.active{color:var(--gold-bright);}
.nav-cta{
  background:var(--gold); color:#141210; padding:10px 20px; border-radius:3px;
  font-family:var(--display); font-weight:600; text-transform:uppercase; letter-spacing:0.03em;
  font-size:13px; text-decoration:none; white-space:nowrap;
}
.nav-cta:hover{background:var(--gold-bright);}
@media(max-width:760px){.nav-links{display:none;}}

/* SHARED TYPE */
.eyebrow{
  font-family:var(--mono); font-size:11px; letter-spacing:0.16em; text-transform:uppercase;
  color:var(--gold); margin-bottom:14px; display:flex; align-items:center; gap:10px;
}
.eyebrow::before{content:''; width:24px; height:1px; background:var(--gold);}
.eyebrow.center{justify-content:center;}
.eyebrow.center::before{display:none;}
h1,h2,h3,h4{font-family:var(--display); text-transform:uppercase; font-weight:700; line-height:1.05;}

/* BUTTONS */
.btn-primary{
  background:var(--gold); color:#141210; padding:15px 30px; border-radius:3px;
  font-family:var(--display); font-weight:600; text-transform:uppercase; letter-spacing:0.03em;
  font-size:14.5px; text-decoration:none; display:inline-block; transition:background .15s; border:none; cursor:pointer;
}
.btn-primary:hover{background:var(--gold-bright);}
.btn-secondary{
  border:1px solid var(--line); color:var(--ink); padding:14px 28px; border-radius:3px;
  font-family:var(--display); font-weight:600; text-transform:uppercase; letter-spacing:0.03em;
  font-size:14.5px; text-decoration:none; display:inline-block; transition:border-color .15s, color .15s; background:transparent; cursor:pointer;
}
.btn-secondary:hover{border-color:var(--gold); color:var(--gold-bright);}
.btn-sm{padding:9px 16px; font-size:12px;}
.btn-danger{border-color:var(--red); color:#D4707E;}
.btn-danger:hover{border-color:#D4707E; color:#f0a0ab;}

/* SECTIONS */
section{padding:80px 0;}
.section-head{max-width:640px; margin-bottom:44px;}
.section-head h2{font-size:clamp(28px,3.6vw,42px); margin-bottom:16px;}
.section-head p{color:var(--ink-dim); font-size:15.5px; line-height:1.65;}

/* FOOTER */
footer.site-footer{padding:56px 0 40px 0; border-top:1px solid var(--line);}
.footer-grid{display:flex; justify-content:space-between; align-items:flex-start; flex-wrap:wrap; gap:32px; margin-bottom:36px;}
.footer-brand{display:flex; align-items:center; gap:12px;}
.footer-brand img{height:34px;}
.footer-brand span{font-family:var(--display); text-transform:uppercase; font-size:15px; letter-spacing:0.04em;}
.footer-links{display:flex; gap:40px; flex-wrap:wrap;}
.footer-col h5{font-family:var(--mono); font-size:10.5px; text-transform:uppercase; letter-spacing:0.08em; color:var(--gold); margin-bottom:12px;}
.footer-col a{display:block; font-size:13.5px; color:var(--ink-dim); text-decoration:none; margin-bottom:8px;}
.footer-col a:hover{color:var(--gold-bright);}
.footer-bottom{
  border-top:1px solid var(--line); padding-top:22px;
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px;
  font-family:var(--mono); font-size:11px; color:var(--ink-faint);
}

/* CARDS (events, stats etc reused across pages) */
.card-grid{display:grid; gap:1px; background:var(--line); border:1px solid var(--line);}
.stat-card{background:var(--canvas2); padding:34px 26px;}
.stat-num{font-family:var(--display); font-size:clamp(28px,3.6vw,40px); color:var(--gold-bright); font-weight:700; margin-bottom:6px;}
.stat-label{font-family:var(--mono); font-size:11.5px; color:var(--ink-dim); text-transform:uppercase; letter-spacing:0.03em;}

.event-tag{
  display:inline-block; background:var(--red); color:var(--ink); font-family:var(--mono);
  font-size:10.5px; letter-spacing:0.1em; text-transform:uppercase; padding:6px 14px; border-radius:20px;
}

/* ============ ADMIN ============ */
.admin-shell{display:flex; min-height:100vh;}
.admin-sidebar{
  width:240px; flex:0 0 240px; background:var(--canvas2); border-right:1px solid var(--line);
  padding:26px 20px; position:sticky; top:0; height:100vh;
}
.admin-sidebar .brand{display:flex; align-items:center; gap:10px; margin-bottom:34px;}
.admin-sidebar .brand img{height:36px;}
.admin-sidebar .brand span{font-family:var(--display); text-transform:uppercase; font-size:14px; letter-spacing:0.03em;}
.admin-nav a{
  display:block; padding:11px 14px; margin-bottom:4px; border-radius:4px;
  font-family:var(--mono); font-size:12.5px; text-transform:uppercase; letter-spacing:0.04em;
  color:var(--ink-dim); text-decoration:none;
}
.admin-nav a:hover{background:var(--panel); color:var(--ink);}
.admin-nav a.active{background:var(--panel); color:var(--gold-bright); border-left:2px solid var(--gold);}
.admin-nav .divider{height:1px; background:var(--line); margin:16px 0;}
.admin-main{flex:1; padding:40px 44px; max-width:1200px;}
.admin-top{display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:32px; flex-wrap:wrap; gap:16px;}
.admin-top h1{font-size:26px;}
.admin-top p{color:var(--ink-dim); font-size:13.5px; margin-top:6px;}

.admin-card{border:1px solid var(--line); border-radius:6px; background:var(--panel); padding:26px 28px; margin-bottom:20px;}
.admin-card h3{font-size:16px; margin-bottom:16px; letter-spacing:0.01em;}

.form-row{display:grid; grid-template-columns:repeat(2,1fr); gap:16px; margin-bottom:14px;}
.form-row.single{grid-template-columns:1fr;}
.form-row.triple{grid-template-columns:repeat(3,1fr);}
@media(max-width:640px){.form-row,.form-row.triple{grid-template-columns:1fr;}}
label{display:block; font-family:var(--mono); font-size:10.5px; letter-spacing:0.06em; text-transform:uppercase; color:var(--ink-dim); margin-bottom:6px;}
input[type=text],input[type=date],input[type=number],input[type=email],input[type=password],select,textarea{
  width:100%; background:var(--canvas); border:1px solid var(--line); color:var(--ink);
  font-family:var(--sans); font-size:14px; padding:10px 12px; border-radius:3px; outline:none;
}
input:focus,select:focus,textarea:focus{border-color:var(--gold);}
textarea{resize:vertical; min-height:80px;}
select{appearance:none; background-image:linear-gradient(45deg,transparent 50%,var(--ink-dim) 50%),linear-gradient(135deg,var(--ink-dim) 50%,transparent 50%); background-position:calc(100% - 18px) center,calc(100% - 13px) center; background-size:5px 5px,5px 5px; background-repeat:no-repeat;}
input[type=file]{width:100%; background:var(--canvas); border:1px solid var(--line); color:var(--ink-dim); font-family:var(--sans); font-size:12.5px; padding:9px 10px; border-radius:3px;}

.admin-table{width:100%; border-collapse:collapse; font-size:13.5px;}
.admin-table th{
  text-align:left; font-family:var(--mono); font-size:10.5px; text-transform:uppercase; letter-spacing:0.05em;
  color:var(--ink-dim); padding:10px 12px; border-bottom:1px solid var(--line);
}
.admin-table td{padding:12px; border-bottom:1px solid var(--line); vertical-align:middle;}
.admin-table tr:hover td{background:rgba(255,255,255,0.02);}

.badge{font-family:var(--mono); font-size:10.5px; text-transform:uppercase; letter-spacing:0.04em; padding:4px 10px; border-radius:20px; display:inline-block;}
.badge-published{background:rgba(74,124,89,0.18); color:#7FBF94;}
.badge-draft{background:rgba(166,156,140,0.15); color:var(--ink-dim);}
.badge-pending{background:rgba(201,162,39,0.15); color:var(--gold-bright);}
.badge-approved{background:rgba(74,124,89,0.18); color:#7FBF94;}
.badge-rejected{background:rgba(139,38,53,0.18); color:#D4707E;}

.flash{padding:14px 18px; border-radius:4px; font-size:13.5px; margin-bottom:22px; font-family:var(--mono);}
.flash-ok{background:rgba(74,124,89,0.14); border:1px solid var(--green); color:#9FDDB1;}
.flash-err{background:rgba(139,38,53,0.14); border:1px solid var(--red); color:#f0a0ab;}

.photo-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(120px,1fr)); gap:12px; margin-top:14px;}
.photo-thumb{position:relative; border:1px solid var(--line); border-radius:4px; overflow:hidden; aspect-ratio:1;}
.photo-thumb img{width:100%; height:100%; object-fit:cover;}
.photo-thumb form{position:absolute; top:4px; right:4px;}
.photo-thumb button{background:rgba(20,18,16,0.85); border:1px solid var(--red); color:#D4707E; font-size:10px; padding:3px 6px; border-radius:3px; cursor:pointer; font-family:var(--mono);}

@media(max-width:900px){
  .admin-shell{flex-direction:column;}
  .admin-sidebar{width:100%; flex:none; height:auto; position:relative;}
  .admin-main{padding:26px 20px;}
}
