
:root{
  --bg:#eeeae4;
  --text:#1f1c19;
  --muted:#6d665f;
  --saffron:#8f8578;
  --saffron-2:#b1a79b;
  --ink:#2a2623;
  --card:#e6ded3;
  --ring: rgba(143,133,120,.35);
  --radius:1.1rem;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial; background:var(--bg); color:var(--text); line-height:1.65}
img{max-width:100%;display:block}
a{color:#0b63bd;text-decoration:none}
a:hover{text-decoration:underline}
.container{width:min(1100px,92vw);margin-inline:auto}

.header{position:sticky;top:0;background:rgba(255,248,239,.92);backdrop-filter:saturate(1.4) blur(10px);z-index:50;border-bottom:1px solid #f2e2cc}
.header__inner{display:flex;align-items:center;justify-content:space-between;padding:.9rem 0}
.brand{font-weight:800;letter-spacing:.2px;color:var(--saffron)}
.nav__toggle{display:none;background:none;border:0;cursor:pointer}
.nav__bar{display:block;width:22px;height:2px;background:var(--ink);margin:5px 0;border-radius:2px}
.nav__menu{display:flex;gap:1rem;list-style:none;margin:0;padding:0;align-items:center}
.nav__menu a{padding:.45rem .7rem;border-radius:.6rem;color:var(--ink)}
.nav__menu a:hover{background:#fff2e0}
.btn{display:inline-block;padding:.72rem 1rem;border-radius:999px;border:1px solid #e8d7bf;transition:.2s box-shadow,.2s transform}
.btn:focus{outline:2px solid transparent;box-shadow:0 0 0 4px var(--ring)}
.btn--primary{background:linear-gradient(135deg,var(--saffron),var(--saffron-2));color:white;border-color:transparent;font-weight:700}
.btn--ghost{background:transparent;border-color:#e8d7bf;color:var(--ink)}
.btn--sm{padding:.5rem .75rem;font-size:.9rem}

.main{padding-top:1rem}
.hero{padding:3rem 0 2rem;border-bottom:1px solid #f2e2cc}
.hero--saffron{background:linear-gradient(180deg,#fff8ef 0,#fff2e0 60%, #fff)}
.hero__grid{display:grid;grid-template-columns:1.1fr .9fr;gap:2rem;align-items:center}
.hero h1{font-size:clamp(2rem,5vw,3rem);line-height:1.1;margin:.2rem 0;color:var(--ink)}
.hero__cta{display:flex;gap:.8rem;margin:1rem 0 2rem}
.stats{display:flex;gap:1rem;flex-wrap:wrap}
.stat{background:white;border:1px solid #f2e2cc;border-radius:var(--radius);padding:.9rem 1rem;min-width:160px}

.strip{padding:2rem 0}
.strip--alt{background:#fff}
.features{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.card{background:white;border:1px solid #f2e2cc;border-radius:var(--radius);padding:1rem}
.card--accent{border-color:#e0c39e;box-shadow:0 0 0 1px #ead4b7 inset}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem}
.cards--people .card h3{margin-bottom:.2rem}

.grid{display:grid;gap:1rem}
.grid--2{grid-template-columns:repeat(2,1fr)}

.prose h1{font-size:2rem;margin:0 0 .5rem}
.prose h2{margin:1.25rem 0 .5rem}
.prose ul{padding-left:1.2rem}
.list-unstyled{list-style:none;margin:0;padding:0}
.list{list-style:none;margin:0;padding:0}
.list--events li{display:grid;grid-template-columns:120px 1fr auto;gap:.8rem;align-items:center;padding:.7rem 0;border-bottom:1px dashed #ead4b7}
.list--events time{font-variant-numeric:tabular-nums;color:var(--muted)}

.table{width:100%;border-collapse:collapse;background:white;border:1px solid #f2e2cc;border-radius:.8rem;overflow:hidden}
.table th,.table td{padding:.7rem .75rem;border-bottom:1px solid #f2e2cc;text-align:left}
.table thead th{background:#fff5e8}

.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;background:#fff;padding:1rem;border:1px solid #f2e2cc;border-radius:1rem}


.footer {
  margin-top: 2rem;
  padding: 1.2rem 0;
  border-top: 1px solid #f2e2cc;
  background: #fff;
}
.footer__grid {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr;
  gap: 0.5rem;
  align-items: start;
}
.footer__legal {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-top: 0.8rem;
  border-top: 1px solid #f2e2cc;
  padding-top: 0.5rem;
  font-size: 0.9rem;
}

.footer__legal{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1rem;border-top:1px solid #f2e2cc;padding-top:1rem}
.social{display:flex;gap:.6rem;list-style:none;padding:0;margin:0}
.muted{color:var(--muted)}

.skip-link{position:absolute;left:-999px;top:auto;width:1px;height:1px;overflow:hidden}
.skip-link:focus{left:1rem;top:1rem;width:auto;height:auto;background:#111;color:#fff;padding:.5rem;border-radius:.4rem;z-index:1000}

form input, form textarea{width:100%;padding:.7rem .8rem;border-radius:.7rem;border:1px solid #e8d7bf;background:#fff;color:var(--ink)}
form input:focus, form textarea:focus{outline:2px solid transparent;box-shadow:0 0 0 4px var(--ring)}

@media (max-width: 900px){
  .hero__grid{grid-template-columns:1fr}
  .features{grid-template-columns:1fr}
  .grid--2{grid-template-columns:1fr}
  .footer__grid{grid-template-columns:1fr}
  .nav__toggle{display:block}
  .nav__menu{display:none;flex-direction:column;align-items:flex-start;padding:.8rem 0}
  .nav__menu.open{display:flex}
}

/* --- RVSC-CJ add-ons (logo + banner) --- */

/* Banner: center image without cropping */
.page-banner{
  width:100%;
  background:#e6ded3;
  border-bottom:1px solid #dacfbf;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:6px 0;
}
.page-banner img{
  display:block;
  height:300px;      /* controls banner height without cropping */
  max-height:30vh;
  width:auto;        /* keep original aspect ratio */
  object-fit:contain;
  object-position:center;
  margin:0 auto;
}
@media (max-width:900px){
  .page-banner img{ height:200px; max-height:32vh; }
}

/* === RVSC-CJ: compact header & footer overrides === */
.header__inner{ padding:.5rem 0 !important; }
.nav__menu{ gap:.8rem !important; }
.logo{ height:40px !important; width:auto !important; display:inline-block !important; }
.logo--sm { height:25px !important; width:auto !important; vertical-align:middle !important; }
.footer{ margin-top:1.6rem !important; padding:.8rem 0 !important; }
.footer__grid{ grid-template-columns:1.6fr 1fr 1fr !important; gap:.4rem !important; }
.footer__legal{ margin-top:.6rem !important; padding-top:.4rem !important; font-size:.85rem !important; }

/* === RVSC-CJ: 50px header logo, 25px footer logo === */
.header__inner{ padding:.6rem 0 !important; }
.logo{ height:50px !important; width:auto !important; display:inline-block !important; }
.logo--sm { height:25px !important; width:auto !important; vertical-align:middle !important; }
.footer{ margin-top:1.5rem !important; padding:1rem 0 !important; font-size:.9rem !important; }
.footer__grid{ grid-template-columns:1.6fr 1fr 1fr !important; gap:.5rem !important; align-items:start !important; }
.footer__legal{ margin-top:.6rem !important; padding-top:.5rem !important; border-top:1px solid #e8d7bf !important; font-size:.85rem !important; }

/* Footer logo set to 50px */
.footer .brand .logo--sm{ height:50px !important; width:auto !important; }

.footer{ padding:1.1rem 0 !important; }

.list--events .actions{display:flex;gap:.5rem;flex-wrap:wrap}


.hero__title {
  text-align: center;
  font-size: 2.5rem;      /* adjust as needed */
  line-height: 1.2;       /* tighter spacing looks cleaner */
  margin-bottom: 1rem;
}

@media (min-width: 900px) {
  .hero__title {
    font-size: 3rem;
  }
}

.hero--saffron {
  background: linear-gradient(180deg, #fdf8f3 0%, #f5eee6 100%);
}

.hero__title { text-align:center; line-height:1.2; margin: .5rem 0 1rem; }
.hero__subtitle { text-align:center; font-size:1.1rem; margin-bottom:1.2rem; }
.hero__cta { display:flex; justify-content:center; }

/* Center hero text */
.hero__text {
  text-align: center;
  max-width: 800px;        /* keeps text nicely readable on large screens */
  margin: 0 auto;          /* centers the block itself */
}

.hero__subtitle {
  font-size: 1.1rem;
  line-height: 1.6;
  margin-bottom: 1.5rem;
}

.hero__grid {
  grid-template-columns: 1fr;   /* one full-width column */
  justify-items: center;        /* center content horizontally */
}

/* Center header logo and navigation */
.header__inner {
  justify-content: center !important;      /* centers everything horizontally */
  gap: 2rem;                               /* adds space between logo and menu */
}

.nav__menu {
  justify-content: center;
}

/* Optional: make logo and menu stack vertically on small screens */
@media (max-width: 900px) {
  .header__inner {
    flex-direction: column;
    gap: 0.5rem;
  }
}

/* === Mobile: hamburger top-right layout === */
@media (max-width: 900px) {
  .header__inner {
    position: relative;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
  }

  /* Move the toggle to the top-right corner */
  .nav__toggle {
    display: block;
    position: absolute;
    top: 1rem;
    right: 1rem;
    background: none;
    border: none;
    cursor: pointer;
    z-index: 1000; /* keeps it above other elements */
  }

  /* style the three bars */
  .nav__bar {
    display: block;
    width: 24px;
    height: 2px;
    margin: 5px 0;
    background-color: var(--ink);
    border-radius: 2px;
  }

  /* hide the menu by default on mobile */
  .nav__menu {
    display: none;
    flex-direction: column;
    background: #fff8ef;
    width: 100%;
    padding: 0.8rem 1rem;
    border-top: 1px solid #f2e2cc;
  }

  /* show when JS toggles the .open class */
  .nav__menu.open {
    display: flex;
  }
}

