:root{
  --gold:#c99735;
  --gold-soft:#f6ead0;
  --ink:#111111;
  --charcoal:#1a1c1b;
  --sage:#6f8576;
  --soft:#f6f7f4;
  --mist:#eaf0ed;
  --line:#e8e4dc;
  --muted:#646a66;
  --shadow:0 24px 70px rgba(17,17,17,.09);
}

*{box-sizing:border-box;scroll-behavior:smooth}
body{
  margin:0;
  font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;
  color:var(--ink);
  background:#fff;
  text-rendering:optimizeLegibility;
}
img{max-width:100%;display:block}
a{transition:color .2s ease,background .2s ease,border-color .2s ease,transform .2s ease}

.topbar{
  background:var(--charcoal);
  color:#eef1ed;
  font-size:.84rem;
  padding:.55rem 0;
}
.topbar-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  flex-wrap:wrap;
}
.topbar span,.topbar a{
  color:inherit;
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  text-decoration:none;
  white-space:nowrap;
}
.topbar i,.gold,.section-kicker,.socials a,.feature-icon{color:var(--gold)}

.site-nav{
  background:rgba(255,255,255,.94);
  border-bottom:1px solid rgba(232,228,220,.9);
  backdrop-filter:blur(18px);
  box-shadow:0 12px 35px rgba(17,17,17,.05);
}
.navbar{padding:.85rem 0}
.brand{
  display:flex;
  align-items:center;
  gap:.7rem;
  color:var(--ink);
  font-size:.78rem;
  font-weight:850;
  letter-spacing:0;
  line-height:1.05;
  text-transform:uppercase;
}
.brand:hover{color:var(--ink)}
.brand small{
  color:var(--muted);
  font-size:.56rem;
  font-weight:750;
  letter-spacing:0;
}
.brand-mark{
  width:48px;
  height:48px;
  border:6px solid var(--gold);
  border-right-color:var(--charcoal);
  border-radius:50%;
  display:grid;
  place-items:center;
  font-weight:900;
  letter-spacing:0;
}
.navbar-toggler{
  border:1px solid var(--line);
  border-radius:8px;
  padding:.45rem .65rem;
}
.navbar-toggler:focus{box-shadow:0 0 0 .18rem rgba(201,151,53,.18)}
.navbar-nav{gap:.2rem}
.nav-link{
  color:#222!important;
  font-size:.92rem;
  font-weight:750;
  padding:.68rem .88rem!important;
  position:relative;
}
.nav-link:after{
  content:"";
  position:absolute;
  left:.88rem;
  right:.88rem;
  bottom:.42rem;
  height:2px;
  background:var(--gold);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .24s ease;
}
.nav-link.active,.nav-link:hover{color:var(--gold)!important}
.nav-link.active:after,.nav-link:hover:after{transform:scaleX(1)}
.nav-cta{
  border:1px solid rgba(201,151,53,.45);
  border-radius:8px;
  color:var(--ink);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.45rem;
  font-weight:800;
  padding:.72rem 1rem;
  text-decoration:none;
  white-space:nowrap;
}
.nav-cta:hover{
  background:var(--ink);
  border-color:var(--ink);
  color:#fff;
  transform:translateY(-1px);
}

.hero,.page-hero{
  color:#fff;
  overflow:hidden;
  position:relative;
}
.hero:before,.page-hero:before{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(105deg,rgba(16,16,16,.98),rgba(16,16,16,.88) 50%,rgba(16,16,16,.68)),
    url("https://images.unsplash.com/photo-1551836022-d5d88e9218df?auto=format&fit=crop&w=1800&q=80") center/cover;
  z-index:-2;
}
.hero:after,.page-hero:after{
  content:"";
  position:absolute;
  inset:auto 0 0;
  height:38%;
  background:linear-gradient(180deg,transparent,rgba(0,0,0,.38));
  z-index:-1;
}
.hero{padding:clamp(4.5rem,8vw,7.2rem) 0}
.page-hero{padding:clamp(4rem,7vw,6rem) 0}
.eyebrow,.section-kicker{
  font-size:.76rem;
  font-weight:850;
  letter-spacing:0;
  text-transform:none;
}
.page-hero h1,h2{font-family:Georgia,"Times New Roman",serif;font-weight:900;letter-spacing:0}
.hero h1{
  font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;
  font-size:4.65rem;
  font-weight:850;
  letter-spacing:0;
  line-height:1.04;
  max-width:760px;
}
.hero h1 span{
  color:var(--gold);
  display:inline;
  font-style:normal;
}
.page-hero h1{
  font-size:4.6rem;
  line-height:1;
  max-width:880px;
}
.lead{
  color:#eef1ed;
  font-size:1.08rem;
  line-height:1.72;
  max-width:680px;
}
.hero-actions{display:flex;flex-wrap:wrap;gap:.85rem}
.btn-gold,.btn-outline-gold{
  border-radius:8px;
  font-weight:850;
  padding:.9rem 1.45rem;
}
.btn-gold{
  background:var(--gold);
  border:1px solid var(--gold);
  color:#111;
}
.btn-gold:hover{
  background:#ae7f2b;
  border-color:#ae7f2b;
  color:#fff;
  transform:translateY(-2px);
}
.btn-outline-gold{
  border:1px solid rgba(255,255,255,.38);
  color:#fff;
}
.btn-outline-gold:hover{
  background:#fff;
  border-color:#fff;
  color:#111;
  transform:translateY(-2px);
}
.hero-card{
  position:relative;
  border:1px solid rgba(255,255,255,.22);
  border-radius:8px;
  padding:.7rem;
  box-shadow:0 30px 80px rgba(0,0,0,.24);
}
.hero-card:before{
  content:"";
  position:absolute;
  inset:1.35rem -1.1rem -1.1rem 1.35rem;
  border:1px solid rgba(201,151,53,.58);
  border-radius:8px;
  z-index:0;
}
.hero-photo{
  min-height:430px;
  border-radius:8px;
  background:
    linear-gradient(rgba(0,0,0,.05),rgba(0,0,0,.26)),
    url("https://images.unsplash.com/photo-1517245386807-bb43f82c33c4?auto=format&fit=crop&w=1300&q=80") center/cover;
  position:relative;
  z-index:1;
}

.section{padding:clamp(4rem,7vw,6.4rem) 0}
.bg-soft{background:var(--soft)}
h2{
  font-size:3.1rem;
  line-height:1.06;
}
.section-text{
  color:var(--muted);
  line-height:1.8;
}
.section-text.mx-auto,.lead.mx-auto{max-width:720px}
.card-rich{
  background:#fff;
  border:1px solid var(--line);
  border-radius:8px;
  height:100%;
  padding:1.65rem;
  position:relative;
  overflow:hidden;
  transition:border-color .25s ease,box-shadow .25s ease,transform .25s ease;
}
.card-rich.bg-soft{background:var(--soft)}
.card-rich:after{
  content:"";
  position:absolute;
  right:1.25rem;
  top:1.25rem;
  width:34px;
  height:2px;
  background:rgba(201,151,53,.48);
}
.card-rich:hover{
  border-color:rgba(201,151,53,.45);
  box-shadow:var(--shadow);
  transform:translateY(-6px);
}
.feature-icon{
  background:var(--gold-soft);
  border-radius:8px;
  display:inline-grid;
  font-size:1.55rem;
  height:52px;
  margin-bottom:1.15rem;
  place-items:center;
  width:52px;
}
.service-card{
  background:linear-gradient(180deg,#fff,#fbfaf7);
  color:var(--ink);
}
.service-card p{color:var(--muted)}
.service-card a{
  align-items:center;
  display:inline-flex;
  gap:.35rem;
}
.service-card:hover a{transform:translateX(4px)}
.stat{
  background:#fff;
  border:1px solid var(--line);
  border-radius:8px;
  height:100%;
  padding:1.4rem;
}
.stat strong{
  color:var(--charcoal);
  display:block;
  font-family:Georgia,serif;
  font-size:2.7rem;
  line-height:1;
}
.stat p{color:var(--muted);margin:.55rem 0 0}
.team-img{
  aspect-ratio:4/3;
  height:auto;
  object-fit:cover;
  width:100%;
  filter:saturate(.92);
}
.team-card{padding:0}
.team-card:after{display:none}
.team-card .role{
  color:var(--gold);
  font-size:.78rem;
  font-weight:850;
  letter-spacing:0;
  text-transform:uppercase;
}
.gallery-grid{
  display:grid;
  gap:1.25rem;
  grid-template-columns:repeat(3,minmax(0,1fr));
}
.gallery-item{
  background:#fff;
  border:1px solid var(--line);
  border-radius:8px;
  overflow:hidden;
  transition:border-color .25s ease,box-shadow .25s ease,transform .25s ease;
}
.gallery-item:hover{
  border-color:rgba(201,151,53,.45);
  box-shadow:var(--shadow);
  transform:translateY(-6px);
}
.gallery-item img{
  aspect-ratio:4/3;
  height:auto;
  object-fit:cover;
  width:100%;
}
.gallery-item div{padding:1.25rem}
.gallery-item p{color:var(--muted);line-height:1.7;margin:0}
.event-card{
  align-items:flex-start;
  display:flex;
  gap:1.15rem;
}
.event-date{
  background:var(--charcoal);
  border-radius:8px;
  color:#fff;
  flex:0 0 72px;
  overflow:hidden;
  text-align:center;
}
.event-date span{
  background:var(--gold);
  color:#111;
  display:block;
  font-size:.8rem;
  font-weight:850;
  padding:.32rem;
}
.event-date strong{
  display:block;
  font-size:2rem;
  line-height:1;
  padding:.65rem .35rem;
}
.event-meta{
  color:var(--muted);
  display:flex;
  flex-wrap:wrap;
  gap:.45rem 1rem;
  line-height:1.6;
  margin:.6rem 0 1rem;
}
.event-meta i{color:var(--gold);margin-right:.25rem}
.job-label{
  color:var(--gold);
  font-size:.82rem;
  font-weight:850;
  margin-bottom:.45rem;
  text-transform:uppercase;
}
.process-step{
  align-items:flex-start;
  display:flex;
  gap:1rem;
}
.step-no{
  background:var(--charcoal);
  border:4px solid var(--gold-soft);
  border-radius:50%;
  color:#fff;
  display:grid;
  flex:0 0 52px;
  font-weight:900;
  height:52px;
  place-items:center;
  width:52px;
}
.cta{
  background:
    linear-gradient(105deg,rgba(17,17,17,.96),rgba(17,17,17,.9)),
    url("https://images.unsplash.com/photo-1552664730-d307ca884978?auto=format&fit=crop&w=1500&q=80") center/cover;
  color:white;
}
.cta .lead{margin-bottom:1.4rem}
.footer{
  background:#0b0c0c;
  color:#aeb6b0;
  padding:3.5rem 0 1.5rem;
}
.footer a{
  color:#e5e7e4;
  text-decoration:none;
}
.footer a:hover{color:var(--gold)}
.socials a{
  border:1px solid rgba(201,151,53,.42);
  border-radius:50%;
  display:grid;
  height:40px;
  place-items:center;
  text-decoration:none;
  width:40px;
}
.socials a:hover{
  background:var(--gold);
  color:#111;
  transform:translateY(-2px);
}
.form-control,.form-select{
  border:1px solid var(--line);
  border-radius:8px;
  padding:.9rem 1rem;
}
.form-control:focus,.form-select:focus{
  border-color:var(--gold);
  box-shadow:0 0 0 .2rem rgba(201,151,53,.16);
}
.admin-body{
  background:
    linear-gradient(180deg,#f8f8f5 0,#f3f5f1 42%,#f7f7f4 100%);
  min-height:100vh;
}
.admin-shell{min-height:100vh}
.admin-nav{
  background:rgba(255,255,255,.94);
  border-bottom:1px solid rgba(232,228,220,.9);
  box-shadow:0 16px 45px rgba(17,17,17,.05);
  padding:.9rem 0;
  position:sticky;
  top:0;
  z-index:20;
}
.admin-nav .container{
  align-items:center;
  display:flex;
  gap:1rem;
  justify-content:space-between;
}
.admin-links{
  display:flex;
  flex-wrap:wrap;
  gap:.5rem;
  justify-content:flex-end;
}
.admin-links a{
  border:1px solid var(--line);
  border-radius:8px;
  color:var(--ink);
  font-weight:800;
  padding:.55rem .85rem;
  text-decoration:none;
}
.admin-links a:hover,.admin-links a.active{
  background:var(--ink);
  border-color:var(--ink);
  color:#fff;
  transform:translateY(-1px);
}
.admin-main{padding:2.8rem 0 4rem}
.admin-page-head{
  align-items:flex-end;
  display:flex;
  gap:1.5rem;
  justify-content:space-between;
  margin-bottom:1.5rem;
}
.admin-page-head h1{
  font-size:2.35rem;
  font-weight:850;
  margin:0;
}
.admin-user-pill{
  align-items:center;
  background:#fff;
  border:1px solid var(--line);
  border-radius:8px;
  color:var(--muted);
  display:inline-flex;
  gap:.55rem;
  padding:.7rem .9rem;
}
.admin-user-pill i{color:var(--gold)}
.admin-hero{
  align-items:center;
  background:
    linear-gradient(115deg,rgba(17,17,17,.96),rgba(17,17,17,.9)),
    url("https://images.unsplash.com/photo-1497366754035-f200968a6e72?auto=format&fit=crop&w=1600&q=80") center/cover;
  border-radius:8px;
  color:#fff;
  display:flex;
  gap:1.5rem;
  justify-content:space-between;
  overflow:hidden;
  padding:2rem;
}
.admin-hero h2{
  font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;
  font-size:2rem;
  font-weight:850;
  margin-bottom:.45rem;
}
.admin-hero .section-text{color:#dfe5df;max-width:680px}
.admin-stats-grid{
  display:grid;
  gap:1rem;
  grid-template-columns:repeat(3,minmax(0,1fr));
  margin-bottom:1.5rem;
}
.admin-stat-card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:8px;
  color:var(--ink);
  display:grid;
  gap:.45rem;
  min-height:210px;
  padding:1.35rem;
  position:relative;
  text-decoration:none;
  transition:border-color .25s ease,box-shadow .25s ease,transform .25s ease;
}
.admin-stat-card:hover{
  border-color:rgba(201,151,53,.48);
  box-shadow:var(--shadow);
  color:var(--ink);
  transform:translateY(-5px);
}
.admin-stat-icon{
  align-items:center;
  background:var(--gold-soft);
  border-radius:8px;
  color:var(--gold);
  display:inline-flex;
  font-size:1.55rem;
  height:58px;
  justify-content:center;
  width:58px;
}
.admin-stat-value{
  font-size:2.65rem;
  font-weight:850;
  line-height:1;
}
.admin-stat-label{
  color:var(--muted);
  font-size:1.02rem;
}
.admin-stat-action{
  align-items:center;
  color:var(--gold);
  display:inline-flex;
  font-weight:850;
  gap:.35rem;
  margin-top:auto;
}
.admin-panel{
  background:#fff;
  border:1px solid var(--line);
  border-radius:8px;
  height:100%;
  padding:1.4rem;
}
.admin-action-list{
  display:grid;
  gap:.75rem;
}
.admin-action-list a{
  align-items:center;
  background:var(--soft);
  border:1px solid transparent;
  border-radius:8px;
  color:var(--ink);
  display:flex;
  gap:.8rem;
  padding:.9rem 1rem;
  text-decoration:none;
}
.admin-action-list a:hover{
  background:#fff;
  border-color:rgba(201,151,53,.45);
  box-shadow:0 14px 35px rgba(17,17,17,.06);
  color:var(--ink);
}
.admin-action-list i{color:var(--gold);font-size:1.1rem}
.admin-card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:8px;
  box-shadow:0 18px 55px rgba(17,17,17,.06);
  padding:1.4rem;
}
.admin-table{
  background:#fff;
  border:1px solid var(--line);
  border-radius:8px;
  overflow:hidden;
}
.admin-table table{margin:0}
.admin-thumb{
  aspect-ratio:4/3;
  border-radius:8px;
  object-fit:cover;
  width:92px;
}
.status-pill{
  border-radius:8px;
  display:inline-flex;
  font-size:.78rem;
  font-weight:850;
  padding:.35rem .55rem;
}
.status-pill.on{background:#e6f4ec;color:#17663a}
.status-pill.off{background:#f4e8e6;color:#872919}
.inline-actions{
  display:flex;
  flex-wrap:wrap;
  gap:.4rem;
}
.inline-actions form{display:inline}
.login-wrap{
  display:grid;
  min-height:100vh;
  place-items:center;
  padding:1.25rem;
}
.login-card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:8px;
  box-shadow:var(--shadow);
  max-width:430px;
  padding:1.6rem;
  width:100%;
}

.reveal-ready{
  opacity:0;
  transform:translateY(18px);
  transition:opacity .7s cubic-bezier(.22,1,.36,1),transform .7s cubic-bezier(.22,1,.36,1);
  transition-delay:var(--reveal-delay,0ms);
  will-change:opacity,transform;
}
.reveal-ready.is-visible{
  opacity:1;
  transform:none;
}

@media(max-width:991px){
  .topbar{display:none}
  .navbar{padding:.7rem 0}
  .navbar-collapse{
    border-top:1px solid var(--line);
    margin-top:.75rem;
    padding-top:.75rem;
  }
  .navbar-nav{align-items:stretch!important;text-align:left!important}
  .nav-link{border-radius:8px}
  .nav-link:after{display:none}
  .nav-link.active,.nav-link:hover{background:var(--soft)}
  .nav-cta{margin-top:.7rem;width:100%}
  .hero{text-align:center}
  .hero h1,.lead{margin-left:auto;margin-right:auto}
  .hero-actions{justify-content:center}
  .hero-card{margin-top:1rem}
  .hero-card:before{display:none}
  .hero-photo{min-height:320px}
  .hero h1{font-size:3.75rem}
  .page-hero h1{font-size:3.7rem}
  h2{font-size:2.65rem}
  .gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .admin-nav .container,.admin-page-head,.admin-hero{
    align-items:flex-start;
    flex-direction:column;
  }
  .admin-links{justify-content:flex-start}
  .admin-stats-grid{grid-template-columns:1fr}
}

@media(max-width:1199px){
  .navbar-collapse{
    border-top:1px solid var(--line);
    margin-top:.75rem;
    padding-top:.75rem;
  }
  .navbar-nav{align-items:stretch!important;text-align:left!important}
  .nav-link{border-radius:8px}
  .nav-link:after{display:none}
  .nav-link.active,.nav-link:hover{background:var(--soft)}
  .nav-cta{margin-top:.7rem;width:100%}
}

@media(max-width:575px){
  .brand{font-size:.72rem;letter-spacing:0}
  .brand-mark{width:42px;height:42px;border-width:5px}
  .hero{padding:3.8rem 0}
  .page-hero{padding:3.5rem 0}
  .section{padding:3.4rem 0}
  .eyebrow,.section-kicker{letter-spacing:0}
  .btn-gold,.btn-outline-gold{width:100%}
  .hero-photo{min-height:260px}
  .hero h1{font-size:2.8rem}
  .page-hero h1{font-size:2.65rem}
  h2{font-size:2.15rem}
  .stat strong{font-size:2.25rem}
  .gallery-grid{grid-template-columns:1fr}
  .event-card{display:block}
  .event-date{margin-bottom:1rem;width:72px}
  .process-step{display:block}
  .step-no{margin-bottom:1rem}
}

@media(prefers-reduced-motion:reduce){
  *{scroll-behavior:auto!important}
  .reveal-ready{
    opacity:1!important;
    transform:none!important;
    transition:none!important;
  }
}
